Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ArmatureDisplay

DragonBones 骨骼动画

Armature Display 具有对骨骼数据的引用并且存储了骨骼实例的状态, 它由当前的骨骼动作,slot 颜色,和可见的 slot attachments 组成。
多个 Armature Display 可以使用相同的骨骼数据,其中包括所有的动画,皮肤和 attachments。

Hierarchy

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

Properties

Private __prefab

__prefab: CompPrefabInfo | null = null

Protected _accTime

_accTime: number = 0

Protected _animationIndexValue

_animationIndexValue: DefaultAnimsEnum = 0

Protected _animationName

_animationName: string = ""

_armature

_armature: Armature | null = null

Protected _armatureCache

_armatureCache: ArmatureCache | null = null

Protected _armatureKey

_armatureKey: string = ""

_armatureName

_armatureName: string = ""

Protected _assembler

_assembler: IAssembler | null = null

Protected _blendHash

_blendHash: number = 0

Protected _blendState

_blendState: BlendState = new BlendState()

Protected _cacheMode

_cacheMode: AnimationCacheMode = AnimationCacheMode.REALTIME

_cacheModeEnum

_cacheModeEnum: any

Protected _cachedSockets

_cachedSockets: Map<string, BoneIndex> = new Map()

Protected _color

_color: Color = Color.WHITE.clone()

_curFrame

_curFrame: ArmatureFrame | null = null

Protected _customMaterial

_customMaterial: Material | null = null

Protected _debugBones

_debugBones: boolean = false

_debugDraw

_debugDraw: Graphics | null = null

Protected _defaultArmatureIndexValue

_defaultArmatureIndexValue: DefaultArmaturesEnum = DefaultArmaturesEnum.default

Protected _defaultCacheModeValue

_defaultCacheModeValue: AnimationCacheMode = AnimationCacheMode.REALTIME

Protected _delegateSrc

_delegateSrc: Node | null = null

Protected _displayProxy

_displayProxy: CCArmatureDisplay | null = null

_dragonAsset

_dragonAsset: DragonBonesAsset | null = null

_dragonAtlasAsset

_dragonAtlasAsset: DragonBonesAtlasAsset | null = null

Protected _dstBlendFactor

_dstBlendFactor: BlendFactor = BlendFactor.ONE_MINUS_SRC_ALPHA

_enableBatch

_enableBatch: boolean = false

Private _enabled

_enabled: boolean = true

Protected _enumAnimations

_enumAnimations: any = Enum({})

Protected _enumArmatures

_enumArmatures: any = Enum({})

Protected _eventTarget

_eventTarget: EventTarget

Protected _factory

_factory: CCFactory | null = null

Protected _frameCache

_frameCache: AnimationCache | null = null

Private _id

_id: string = idGenerator.getNewId()

For internal usage.

Private _inited

_inited: any

Protected _instanceMaterialType

_instanceMaterialType: InstanceMaterialType = InstanceMaterialType.ADD_COLOR_AND_TEXTURE

Protected _lastParent

_lastParent: Node | null = null

Protected materialCache

materialCache: {} = {} as any

Type declaration

Protected _materialInstances

_materialInstances: (null | MaterialInstance)[] = []

Protected _materials

_materials: (null | Material)[] = []

Protected _meshRenderDataArray

_meshRenderDataArray: ArmatureDisplayMeshData[] = []

_meshRenderDataArrayIdx

_meshRenderDataArrayIdx: number = 0

Protected _models

_models: Model[] = []

Protected _name

_name: string

_objFlags

_objFlags: number

Protected _playCount

_playCount: number = 0

Protected _playTimes

_playTimes: number = -1

Protected _playing

_playing: boolean = false

Protected _postAssembler

_postAssembler: IAssembler | null = null

Protected _preCacheMode

_preCacheMode: number = -1

Protected _renderData

_renderData: RenderData | null = null

Protected _renderDataFlag

_renderDataFlag: boolean = true

Protected _renderFlag

_renderFlag: boolean = true

Private sceneGetter

sceneGetter: null | (() => RenderScene) = null

Protected _socketNodes

_socketNodes: Map<string, Node> = new Map()

Protected _sockets

_sockets: DragonBoneSocket[] = []

Protected _srcBlendFactor

_srcBlendFactor: BlendFactor = BlendFactor.SRC_ALPHA

Protected _timeScale

_timeScale: number = 1

Protected _visFlags

_visFlags: number = Layers.Enum.NONE

attachUtil

attachUtil: AttachUtil

node

node: Node = NullNode

该组件被附加到的节点。组件总会附加到一个节点。

example
import { log } from 'cc';
log(comp.node);

playTimes

playTimes: number = -1

播放默认动画的循环次数 -1 表示使用配置文件中的默认值; 0 表示无限循环 >0 表示循环次数

property

{Number} playTimes

default

-1

premultipliedAlpha

premultipliedAlpha: boolean = false

是否启用贴图预乘。 当图片的透明区域出现色块时需要关闭该选项,当图片的半透明区域颜色变黑时需要启用该选项。

property

{Boolean} premultipliedAlpha

default

false

stencilStage

stencilStage: Stage = Stage.DISABLED

组件模板缓冲状态 (注意:请不要直接修改它的值)

Static AnimationCacheMode

AnimationCacheMode: AnimationCacheMode = AnimationCacheMode

Static Assembler

Assembler: IAssemblerManager | null = null

渲染数据组装器

Static BlendState

BlendState: BlendFactor = BlendFactor

混合模式枚举类型

see

BlendFactor

Static PostAssembler

PostAssembler: IAssemblerManager | null = null

后置渲染数据组装器

Static system

system: null = null

Accessors

scriptAsset

  • get scriptAsset(): null

animationIndex

  • get animationIndex(): <None>
  • set animationIndex(value: <None>): void

defaultArmatureIndex

  • get defaultArmatureIndex(): default
  • set defaultArmatureIndex(value: default): void

defaultCacheMode

isOnLoadCalled

  • get isOnLoadCalled(): number

animationName

  • get animationName(): string
  • set animationName(value: string): void

armatureName

  • get armatureName(): string
  • set armatureName(name: string): void

blendHash

  • get blendHash(): number

color

  • get color(): Readonly<Color>
  • set color(value: {}): void

customMaterial

  • get customMaterial(): null | Material
  • set customMaterial(val: null | Material): void

debugBones

  • get debugBones(): boolean
  • set debugBones(value: boolean): void

delegateSrc

  • set delegateSrc(value: Node): void

dragonAsset

  • 骨骼数据包含了骨骼信息(绑定骨骼动作,slots,渲染顺序, attachments,皮肤等等)和动画但不持有任何状态。
    多个 ArmatureDisplay 可以共用相同的骨骼数据。

    property

    {DragonBonesAsset} dragonAsset

    Returns null | DragonBonesAsset

  • 骨骼数据包含了骨骼信息(绑定骨骼动作,slots,渲染顺序, attachments,皮肤等等)和动画但不持有任何状态。
    多个 ArmatureDisplay 可以共用相同的骨骼数据。

    property

    {DragonBonesAsset} dragonAsset

    Parameters

    Returns void

dragonAtlasAsset

dstBlendFactor

enabled

  • get enabled(): boolean
  • set enabled(value: boolean): void

enabledInHierarchy

  • get enabledInHierarchy(): boolean

isValid

  • get isValid(): boolean
  • 表示该对象是否可用(被 destroy 后将不可用)。
    当一个对象的 destroy 调用以后,会在这一帧结束后才真正销毁。
    因此从下一帧开始 isValid 就会返回 false,而当前帧内 isValid 仍然会是 true。
    如果希望判断当前帧是否调用过 destroy,请使用 isValid(obj, true),不过这往往是特殊的业务需求引起的,通常情况下不需要这样。

    default

    true

    readonly
    example
    import { Node, log } from 'cc';
    const node = new Node();
    log(node.isValid);    // true
    node.destroy();
    log(node.isValid);    // true, still valid in this frame
    // after a frame...
    log(node.isValid);    // false, destroyed in the end of last frame

    Returns boolean

material

materials

meshRenderDataArray

name

  • get name(): string
  • set name(value: string): void

renderData

  • get renderData(): null | RenderData

sharedMaterial

sharedMaterials

  • get sharedMaterials(): (null | Material)[]
  • set sharedMaterials(val: (null | Material)[]): void

socketNodes

  • get socketNodes(): Map<string, Node>

sockets

srcBlendFactor

timeScale

  • get timeScale(): number
  • set timeScale(value: number): void

uuid

  • get uuid(): string

visibility

  • get visibility(): number
  • set visibility(val: number): void

Methods

preload

  • __preload(): void

Protected attachToScene

  • _attachToScene(): void

buildArmature

  • _buildArmature(): void

Protected canRender

  • _canRender(): boolean

Protected checkAndUpdateRenderData

  • _checkAndUpdateRenderData(): void

Protected clearMaterials

  • _clearMaterials(): void

collectModels

  • _collectModels(): Model[]

destroyImmediate

  • _destroyImmediate(): void

destruct

  • _destruct(): void
  • Clear all references in the instance.

    NOTE: this method will not clear the getter or setter functions which defined in the instance of CCObject. You can override the _destruct method if you need, for example: _destruct: function () { for (var key in this) { if (this.hasOwnProperty(key)) { switch (typeof this[key]) { case 'string': this[key] = ''; break; case 'object': case 'function': this[key] = null; break; } } }

    Returns void

Protected detachFromScene

  • _detachFromScene(): void

emitCacheCompleteEvent

  • _emitCacheCompleteEvent(): void

Protected flushAssembler

  • _flushAssembler(): void

Optional Private getLocalBounds

  • getLocalBounds(out_rect: Rect): void
  • 如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB), 以便编辑器的场景视图可以正确地执行点选测试。

    Parameters

    • out_rect: Rect

      The rect to store the result bounding rect

    Returns void

Private getRenderScene

  • _getRenderScene(): RenderScene

indexBoneSockets

  • _indexBoneSockets(): void

init

  • _init(): void

instantiate

  • instantiate(cloned: any): any

Protected nodeStateChange

offSyncTransform

  • _offSyncTransform(): void

Protected onMaterialModified

  • onMaterialModified(index: number, material: Material | null): void

onPreDestroy

  • _onPreDestroy(): void

Protected onRebuildPSO

  • onRebuildPSO(index: number, material: Material | null): void

onSyncTransform

  • _onSyncTransform(): void

Protected onVisibilityChange

  • onVisibilityChange(val: any): void

parseDragonAtlasAsset

  • _parseDragonAtlasAsset(): void

Protected postCanRender

  • _postCanRender(): void

Protected postRender

  • postRender(render: Batcher2D): void

refresh

  • _refresh(): void

Protected render

  • render(ui: Batcher2D): void

updateAnimEnum

  • _updateAnimEnum(): void

updateArmatureEnum

  • _updateArmatureEnum(): void

updateBatch

  • _updateBatch(): void

updateBlendFunc

  • _updateBlendFunc(): void

updateCacheModeEnum

  • _updateCacheModeEnum(): void

Protected updateColor

  • _updateColor(): void

updateDebugDraw

  • _updateDebugDraw(): void

updateMaterial

  • _updateMaterial(): void

Protected updateSocketBindings

  • _updateSocketBindings(): void

validateRender

  • _validateRender(): boolean

Private verifySockets

addComponent

  • addComponent<T>(classConstructor: Constructor<T>): T | null
  • addComponent(className: string): Component | null

addEventListener

  • addEventListener(eventType: any, listener: any, target: any): void
  • 添加 DragonBones 事件监听器。

    method

    addEventListener

    Parameters

    • eventType: any
    • listener: any

      The callback that will be invoked when the event is dispatched.

    • target: any

    Returns void

armature

  • armature(): null | Armature

buildArmature

destroy

  • destroy(): boolean

destroyRenderData

  • destroyRenderData(): void

disableRender

  • disableRender(): void

getAnimationNames

  • getAnimationNames(armatureName: string): string[]

getArmatureKey

  • getArmatureKey(): string
  • 缓存龙骨数据的key值,换装的时会使用到该值,作为dragonbonesName使用

    method

    getArmatureKey

    example

    let factory = dragonBones.CCFactory.getInstance(); let needChangeSlot = needChangeArmature.armature().getSlot("changeSlotName"); factory.replaceSlotDisplay(toChangeArmature.getArmatureKey(), "armatureName", "slotName", "displayName", needChangeSlot);

    Returns string

getArmatureNames

  • getArmatureNames(): string[]

getBlendState

getComponent

  • getComponent<T>(classConstructor: Constructor<T>): T | null
  • getComponent(className: string): Component | null
  • 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
    传入参数也可以是脚本的名称。

    example
    // get custom test calss.
    var test = node.getComponent("Test");

    Type parameters

    Parameters

    • classConstructor: Constructor<T>

      The class of component to be retrieved or to be created

    Returns T | null

  • 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
    传入参数也可以是脚本的名称。

    example
    // get custom test calss.
    var test = node.getComponent("Test");

    Parameters

    • className: string

      A string for the class name of the component

    Returns Component | null

getComponentInChildren

  • getComponentInChildren<T>(classConstructor: Constructor<T>): T | null
  • getComponentInChildren(className: string): Component | null

getComponents

  • getComponents<T>(classConstructor: Constructor<T>): T[]
  • getComponents(className: string): Component[]

getComponentsInChildren

  • getComponentsInChildren<T>(classConstructor: Constructor<T>): T[]
  • getComponentsInChildren(className: string): Component[]

getMaterial

  • getMaterial(idx: number): Material | null

getMaterialForBlend

getMaterialInstance

  • getMaterialInstance(idx: number): Material | null

getRenderMaterial

  • getRenderMaterial(index: number): Material | null

initFactory

  • initFactory(): void

invalidAnimationCache

  • invalidAnimationCache(): void

isAnimationCached

  • isAnimationCached(): boolean

Protected Optional lateUpdate

  • lateUpdate(dt: number): void
  • 如果该组件启用,则每帧调用 LateUpdate。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Parameters

    • dt: number

      the delta time in seconds it took to complete the last frame

    Returns void

markForUpdateRenderData

  • markForUpdateRenderData(enable?: boolean): void

off

  • off(eventType: string, listener: any, target: any): void
  • 移除 DragonBones 事件监听器,与 removeEventListener 作用相同。

    method

    off

    Parameters

    • eventType: string
    • listener: any
    • target: any

    Returns void

on

  • on(eventType: string, listener: any, target: any): void
  • 添加 DragonBones 事件监听器,与 addEventListener 作用相同。

    method

    on

    Parameters

    • eventType: string
    • listener: any

      The callback that will be invoked when the event is dispatched.

    • target: any

    Returns void

onDestroy

  • onDestroy(): void

onDisable

  • onDisable(): void

onEnable

  • onEnable(): void

Optional onFocusInEditor

  • onFocusInEditor(): void

onLoad

  • onLoad(): void

Optional onLostFocusInEditor

  • onLostFocusInEditor(): void

onRestore

  • onRestore(): void

once

  • once(eventType: string, listener: any, target: any): void
  • 添加 DragonBones 一次性事件监听器,回调会在第一时间被触发后删除自身。

    method

    once

    Parameters

    • eventType: string
    • listener: any

      The callback that will be invoked when the event is dispatched.

    • target: any

    Returns void

playAnimation

  • playAnimation(animName: string, playTimes?: undefined | number): null | AnimationState
  • 播放指定的动画. animName 指定播放动画的名称。 playTimes 指定播放动画的次数。 -1 为使用配置文件中的次数。 0 为无限循环播放。

    0 为动画的重复次数。

    Parameters

    • animName: string
    • Optional playTimes: undefined | number

    Returns null | AnimationState

postUpdateAssembler

  • postUpdateAssembler(render: Batcher2D): void
  • 后置渲染数据组装程序,它会在所有子节点的渲染数据组装完成后被调用。 它可能会组装额外的渲染数据到顶点数据缓冲区,也可能只是重置一些渲染状态。 注意:不要手动调用该函数,除非你理解整个流程。

    Parameters

    • render: Batcher2D

    Returns void

querySocketPathByName

  • querySocketPathByName(name: string): string[]

querySockets

  • querySockets(): string[]

removeEventListener

  • removeEventListener(eventType: any, listener: any, target: any): void

requestMeshRenderData

requestRenderData

  • requestRenderData(): RenderData

Optional resetInEditor

  • resetInEditor(): void

resetRenderData

  • resetRenderData(): void

schedule

  • schedule(callback: any, interval?: number, repeat?: number, delay?: number): void
  • 调度一个自定义的回调任务。
    如果回调任务已调度,那么将不会重复调度它,只会更新时间间隔参数。

    example
    import { log } from 'cc';
    this.schedule((dt) => void log(`time: ${dt}`), 1);

    Parameters

    • callback: any

      The callback function of the task

    • Default value interval: number = 0

      The time interval between each invocation

    • Default value repeat: number = legacyCC.macro.REPEAT_FOREVER

      The repeat count of this task, the task will be invoked (repeat + 1) times, use macro.REPEAT_FOREVER to repeat a task forever

    • Default value delay: number = 0

      The delay time for the first invocation, Unit: s

    Returns void

scheduleOnce

  • scheduleOnce(callback: any, delay?: number): void
  • 调度一个只运行一次的回调任务,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。

    method

    scheduleOnce

    see

    schedule

    example
    import { log } from 'cc';
    this.scheduleOnce((dt) => void log(`time: ${dt}`), 2);

    Parameters

    • callback: any

      The callback function of the task

    • Default value delay: number = 0

      The delay time for the first invocation, Unit: s

    Returns void

setAnimationCacheMode

  • 若想切换渲染模式,最好在设置'dragonAsset'之前,先设置好渲染模式,否则有运行时开销。 若在编辑中设置渲染模式,则无需担心设置次序的问题。

    method

    setAnimationCacheMode

    example

    armatureDisplay.setAnimationCacheMode(dragonBones.ArmatureDisplay.AnimationCacheMode.SHARED_CACHE);

    Parameters

    Returns void

setBlendHash

  • setBlendHash(): void

setMaterial

  • setMaterial(material: Material | null, index: number): void

setMaterialInstance

  • setMaterialInstance(index: number, matInst: Material | null): void

Protected Optional start

  • start(): void
  • 如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Returns void

Private syncTransform

  • syncTransform(): void

unschedule

  • unschedule(callback_fn: any): void

unscheduleAllCallbacks

  • unscheduleAllCallbacks(): void

update

  • update(dt: any): void

updateAnimationCache

  • updateAnimationCache(animName: string): void
  • 更新某个动画缓存, 预计算动画中所有帧数据,由于在单帧计算所有数据,所以较消耗性能。 若想更新缓存,可使用 invalidAnimationCache 方法,具有较高性能。

    method

    updateAnimationCache

    Parameters

    • animName: string

    Returns void

updateAssembler

  • updateAssembler(render: Batcher2D): void
  • 渲染数据组装程序,这个方法会在所有子节点数据组装之前更新并组装当前组件的渲染数据到 UI 的顶点数据缓冲区中。 一般在 UI 渲染流程中调用,用于组装所有的渲染数据到顶点数据缓冲区。 注意:不要手动调用该函数,除非你理解整个流程。

    Parameters

    • render: Batcher2D

    Returns void

updateBlendHash

  • updateBlendHash(): void

Protected updateMaterial

  • updateMaterial(): void

Static deferredDestroy

  • _deferredDestroy(): void

Generated using TypeDoc