Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Animation

动画组件管理一组动画状态,控制它们的播放。 为了方便,动画组件还存储了一组动画剪辑。 每个剪辑都会独自创建一个关联的动画状态对象。 动画组件具有事件特性,它会派发一系列播放状态相关的事件。 参考 EventType

Hierarchy

Index

Properties

Protected _clips

_clips: (null | AnimationClip)[] = []

Protected _crossFade

_crossFade: CrossFade = new CrossFade()

Protected _defaultClip

_defaultClip: AnimationClip | null = null

Private _hasBeenPlayed

_hasBeenPlayed: boolean = false

Whether if crossFade() or play() has been called before this component starts.

Protected _nameToState

_nameToState: Record<string, AnimationState> = createMap(true)

playOnLoad

playOnLoad: boolean = false

是否在组件开始运行时自动播放默认剪辑。 注意,若在组件开始运行前调用了 crossFadeplay(),此字段将不会生效。

Static EventType

EventType: EnumAlias<typeof EventType> = EventType

Accessors

clips

defaultClip

  • en

    获取或设置默认剪辑。 设置时,若指定的剪辑不在 this.clips 中则会被自动添加至 this.clips

    en

    获取或设置默认剪辑。 设置时,若指定的剪辑不在 this.clips 中则会被自动添加至 this.clips

    see

    playOnLoad

    Returns null | AnimationClip

  • en

    获取或设置默认剪辑。 设置时,若指定的剪辑不在 this.clips 中则会被自动添加至 this.clips

    en

    获取或设置默认剪辑。 设置时,若指定的剪辑不在 this.clips 中则会被自动添加至 this.clips

    see

    playOnLoad

    Parameters

    Returns void

Methods

Protected createState

Protected doCreateState

Private getStateByNameOrDefaultClip

  • getStateByNameOrDefaultClip(name?: undefined | string): any

Private removeStateOfAutomaticClip

Private syncAllowLastFrameEvent

  • _syncAllowLastFrameEvent(): void

Private syncDisallowLastFrameEvent

  • _syncDisallowLastFrameEvent(): void

addClip

createState

  • 使用指定的动画剪辑创建一个动画状态。 若指定名称的动画状态已存在,已存在的动画状态将先被设为停止并被覆盖。

    Parameters

    • clip: AnimationClip

      The animation clip

    • Optional name: undefined | string

      The animation state name, if absent, the default clip's name will be used

    Returns AnimationState

    The animation state created

crossFade

  • crossFade(name: string, duration?: number): void
  • en

    Smoothly switch to play specified animation state.

    zn

    平滑地切换到指定动画状态。

    Parameters

    • name: string

      The name of the animation to switch to

    • Default value duration: number = 0.3

      The duration of the cross fade, default value is 0.3s

    Returns void

getAnimationState

getState

off

  • off(type: EventType, callback?: undefined | ((...any: any[]) => void), thisArg?: any): void
  • 取消注册动画事件回调。

    example
    // unregister event to all animation
    animation.off('play', this.onPlay, this);

    Parameters

    • type: EventType

      The event type to unregister

    • Optional callback: undefined | ((...any: any[]) => void)

      The callback to unregister

    • Optional thisArg: any

    Returns void

on

  • on<TFunction>(type: EventType, callback: TFunction, thisArg?: any, once?: undefined | false | true): any
  • 注册动画事件回调。 回调的事件里将会附上发送事件的 AnimationState。 当播放一个动画时,会自动将事件注册到对应的 AnimationState 上,停止播放时会将事件从这个 AnimationState 上取消注册。

    example
    onPlay: function (type, state) {
        // callback
    }
    // register event to all animation
    animation.on('play', this.onPlay, this);

    Type parameters

    • TFunction: (...any: any[]) => void

    Parameters

    • type: EventType

      The event type to listen to

    • callback: TFunction

      The callback when event triggered

    • Optional thisArg: any
    • Optional once: undefined | false | true

    Returns any

    The registered callback

onDestroy

  • onDestroy(): void

onDisable

  • onDisable(): void

onEnable

  • onEnable(): void

onLoad

  • onLoad(): void

once

  • once<TFunction>(type: EventType, callback: TFunction, thisArg?: any): any

pause

  • pause(): void

play

  • play(name?: undefined | string): void
  • 立即切换到指定动画状态。

    Parameters

    • Optional name: undefined | string

      The name of the animation to be played, if absent, the default clip will be played

    Returns void

removeClip

  • removeClip(clip: AnimationClip, force?: undefined | false | true): void
  • 从动画列表中移除指定的动画剪辑,
    如果依赖于 clip 的 AnimationState 正在播放或者 clip 是 defaultClip 的话,默认是不会删除 clip 的。
    但是如果 force 参数为 true,则会强制停止该动画,然后移除该动画剪辑和相关的动画。这时候如果 clip 是 defaultClip,defaultClip 将会被重置为 null。

    deprecated

    please use removeState

    Parameters

    • clip: AnimationClip
    • Optional force: undefined | false | true

      If force is true, then will always remove the clip and any animation states based on it.

    Returns void

removeState

  • removeState(name: string): void

resume

  • resume(): void

start

  • start(): void

stop

  • stop(): void

Generated using TypeDoc