AnimationManager

.Animations. AnimationManager

动画经理. 动画由全局动画管理器管理.这是一个单独的类 负责创建动画并将其相应的数据传送给所有游戏对象. 与插件不同,它是由游戏实例拥有的,而不是场景. 精灵和其他游戏对象从动画管理器获得他们需要的数据.

Constructor

new AnimationManager(game)

Since:
  • 3.0.0
Parameters:
Name Type Description
game Phaser.Game 相位器的参考.游戏实例.

Extends

Members

(protected) anims :Phaser.Structs.Map.<string, Phaser.Animations.Animation>

Since:
  • 3.0.0
动画管理器中注册的动画. 应使用动画管理器的#add#create方法修改此地图.
Type:

(protected) game :Phaser.Game

Since:
  • 3.0.0
相位器的参考.游戏实例.
Type:

globalTimeScale :number

Since:
  • 3.0.0
Default Value:
  • 1
动画管理器的全局时间刻度. 这将缩放两帧之间的时间增量,从而影响动画管理器的时间速度.
Type:
  • number

mixes :Phaser.Structs.Map.<string, Phaser.Animations.Animation>

Since:
  • 3.50.0
动画混合时间列表. 有关更多详细信息,请参见#setMix方法.
Type:

name :string

Since:
  • 3.0.0
该动画管理器的名称.
Type:
  • string

paused :boolean

Since:
  • 3.0.0
Default Value:
  • false
动画管理器是否与其所有动画一起暂停.
Type:
  • boolean

(protected) textureManager :Phaser.Textures.TextureManager

Since:
  • 3.0.0
对纹理管理器的引用.
Type:

Methods

add(key, animation) → {this}

Since:
  • 3.0.0
将现有动画添加到动画管理器中.
Parameters:
Name Type Description
key string 动画应该添加到的键.动画将随之更新.必须是唯一的.
animation Phaser.Animations.Animation 应该添加到动画管理器的动画.
Fires:
Returns:
这个动画管理器.
Type
this

addListener(event, fn, contextopt) → {this}

Since:
  • 3.0.0
Inherited From:
为给定事件添加侦听器.
Parameters:
Name Type Attributes Default Description
event string | symbol 事件名称.
fn function 侦听器函数.
context * <optional>
this 用来调用侦听器的上下文.
Returns:
`this`.
Type
this

addMix(animA, animB, delay) → {this}

Since:
  • 3.50.0
在两个动画之间添加混合. 混合允许您指定动画配对之间的唯一延迟. 当在一个游戏对象上玩动画甲时,如果你接着玩动画乙,和甲 混音存在,它会等待指定的延迟结束后再播放动画b. 这允许您定制不同类型动画之间的平滑,例如 例如在空闲和行走状态之间,或者在跑步和点火状态之间混合. 请注意,只有使用 `Sprite.play` 方法时,才会应用混合.如果你选择使用 `playAfterRepeat` or `playAfterDelay` instead, those will take priority and the mix 将不使用延迟. 要更新现有的混合,只需用新的延迟调用此方法. 要删除混音配对,请参见 `removeMix` 方法.
Parameters:
Name Type Description
animA string | Phaser.Animations.Animation 动画的基于字符串的键或实例.
animB string | Phaser.Animations.Animation 动画B的基于字符串的键或实例.
delay number 从动画A转换到动画B时等待的延迟(以毫秒为单位).
Returns:
这个动画管理器.
Type
this

boot()

Since:
  • 3.0.0
游戏启动后注册事件监听器.
Listens to Events:

create(config) → {Phaser.Animations.Animation|false}

Since:
  • 3.0.0
创建新的动画并将其添加到动画管理器中. 动画是全球性的.一旦创建,您可以在游戏的任何场景中使用它们.它们不是场景特定的. 如果给出一个无效的密钥,这个方法将返回 `false` . 如果您传递动画管理器中已经存在的动画的关键点,该动画将被返回. 只有当密钥有效且尚未使用时,才会创建全新的动画. 如果您希望重用现有的密钥,请先调用 `AnimationManager.remove`,然后调用此方法.
Parameters:
Name Type Description
config Phaser.Types.Animations.Animation 动画的配置设置.
Fires:
Returns:
已创建的动画,如果该键已在使用中,则为 `false` .
Type
Phaser.Animations.Animation | false

createFromAseprite(key, tagsopt) → {Array.<Phaser.Animations.Animation>}

Since:
  • 3.50.0
从加载的无菌JSON文件创建一个或多个动画. Aseprite是一个强大的动画精灵编辑器和像素艺术工具. 你可以在https://www.aseprite.org/找到更多的细节 要在无菌状态下导出兼容的JSON文件,请执行以下操作: 1. 转到文件-导出精灵工作表 2. 在**布局* *选项卡上: 2a.将 `Sheet type` 设置为 `Packed` 2b.将 `Constraints` 设置为 `None` 2c.选中`合并副本`复选框 3. 在**雪碧* *标签上: 3a.将 `Layers` 设置为 `Visible layers` 3b.将 `Frames` 设置为 `All frames` ,除非您只想导出标签子集 4. 在**边框* *选项卡上: 4a.检查 `Trim Sprite` 和 `Trim Cells` 选项 4b.确保 `Border Padding` , `Spacing` 和 `Inner Padding` 都> 0(通常1就够了) 5. 在**输出* *选项卡上: 5a.检查`输出文件`,给你的图像一个名称,并确保你选择`png文件`作为文件类型 5b.检查 `JSON Data` ,并为您的JSON文件命名 5c.JSON数据类型可以是散列或数组,Phaser不介意. 5d.确保在元选项中选中了`Tags` 5e.在 `Item Filename` 输入框中,确保它只显示 `{frame}` 而不显示其他内容. 6. 单击导出 这是用无菌1.2.25测试的. 这将导出一个png和json文件,您可以使用Aseprite Loader加载,即.: ```javascript function preload () { this.load.path = 'assets/animations/aseprite/'; this.load.aseprite('paladin', 'paladin.png', 'paladin.json'); } ``` 加载后,您可以在场景中使用 `atlas` 键调用此方法: ```javascript this.anims.createFromAseprite('paladin'); ``` JSON中定义的任何动画现在都可以在Phaser中使用,你可以播放它们 通过他们的标签名.例如,如果你的无菌时间线上有一个名为 `War Cry` 的动画, 你可以在相位器中使用标签名来播放它: ```javascript this.add.sprite(400, 300).play('War Cry'); ``` 调用此方法时,您可以选择提供一个标记名数组,并且只提供那些动画 将被创建.例如: ```javascript this.anims.createFromAseprite('paladin', [ 'step', 'War Cry', 'Magnum Break' ]); ``` 这将只创建定义的3个动画.请注意,标记名称区分大小写.
Parameters:
Name Type Attributes Description
key string 加载的Aseprite地图集的关键.它必须在调用此方法之前加载.
tags Array.<string> <optional>
标签名称的数组.如果提供,将只创建在此数组中找到的动画.
Returns:
已成功创建的动画实例的数组.
Type
Array.<Phaser.Animations.Animation>

destroy()

Since:
  • 3.0.0
Overrides:
销毁此动画管理器,并清除动画定义和对其他对象的引用. 这个方法不应该直接调用.它将被自动调用,作为对相位器中 `destroy` 事件的响应.游戏实例.

emit(event, …argsopt) → {boolean}

Since:
  • 3.0.0
Inherited From:
调用为给定事件注册的每个侦听器.
Parameters:
Name Type Attributes Description
event string | symbol 事件名称.
args * <optional>
<repeatable>
将传递给事件处理程序的附加参数.
Returns:
`true` 如果事件有侦听器,则为 `false` .
Type
boolean

eventNames() → {Array.<(string|symbol)>}

Since:
  • 3.0.0
Inherited From:
返回一个数组,列出发射器已注册侦听器的事件.
Returns:
Type
Array.<(string|symbol)>

exists(key) → {boolean}

Since:
  • 3.16.0
检查给定的键是否已经在动画管理器中使用. 动画是全球性的.在一个场景中创建的关键点可以在游戏中的任何其他场景中使用.它们不是场景特定的.
Parameters:
Name Type Description
key string 要检查的动画的键.
Returns:
如果动画已经存在于动画管理器中,则为 `true` 如果该键可用,则为 `false` .
Type
boolean

fromJSON(data, clearCurrentAnimationsopt) → {Array.<Phaser.Animations.Animation>}

Since:
  • 3.0.0
从JSON对象加载动画管理器的动画和设置.
Parameters:
Name Type Attributes Default Description
data string | Phaser.Types.Animations.JSONAnimations | Phaser.Types.Animations.JSONAnimation 要解析的JSON对象.
clearCurrentAnimations boolean <optional>
false 如果设置为 `true` ,将删除当前动画 `anims.clear()`.如果设置为 `false` (默认),将添加 `data` 中的动画.
Returns:
一个数组,包含作为此调用的结果而创建的所有动画对象.
Type
Array.<Phaser.Animations.Animation>

generateFrameNames(key, configopt) → {Array.<Phaser.Types.Animations.AnimationFrame>}

Since:
  • 3.0.0
生成Phaser.Types.Animations.AnimationFrame的数组.纹理键和配置对象中的对象. 根据给定的Phaser.Types.Animations.GenerateFrameNames. 这是一个辅助方法,旨在使您更容易从纹理图谱中提取所有的帧名称. 如果您正在使用精灵表,请改为使用 `generateFrameNumbers` 方法. 示例: 如果你有一个纹理图册,叫做 `gems` ,它包含6个帧,叫做 `ruby_0001` , `ruby_0002` ,等等, 然后可以使用: `this.anims.generateFramenames(`gems` ,{ prefix: `ruby_` ,end: 6,zeroPad: 4 })`.调用此方法. `end` 值告诉它查找6个帧,递增编号,都以前缀 `ruby_` 开始. `zeroPad` 值告诉它有多少个零填充数字.要使用此方法创建动画,您可以执行以下操作: ```javascript this.anims.create({ key: 'ruby', repeat: -1, frames: this.anims.generateFrameNames('gems', { prefix: 'ruby_', end: 6, zeroPad: 4 }) }); ``` 详情请看动画例子.
Parameters:
Name Type Attributes Description
key string 包含动画帧的纹理的关键点.
config Phaser.Types.Animations.GenerateFrameNames <optional>
动画帧名称的配置对象.
Returns:
Type
Array.<Phaser.Types.Animations.AnimationFrame>

generateFrameNumbers(key, config) → {Array.<Phaser.Types.Animations.AnimationFrame>}

Since:
  • 3.0.0
生成Phaser.Types.Animations.AnimationFrame的数组.纹理键和配置对象中的对象. 根据给定的Phaser.Types.Animations.GenerateFrameNumbers. 如果你使用的是纹理贴图,请使用 `generateFrameNames` 方法. 这是一个辅助方法,旨在使您更容易从精灵表中提取帧. 如果你使用的是纹理贴图,请使用 `generateFrameNames` 方法. 示例: 如果您加载了一个名为 `explosion` 的精灵表,并且它包含12个帧,那么您可以使用以下命令调用此方法: `this.anims.generateFrameNumbers('explosion', { start: 0, end: 11 })`. 11的 `end` 值告诉它在添加第12帧后停止,因为它从零开始. 要使用此方法创建动画,您可以执行以下操作: ```javascript this.anims.create({ key: 'boom', frames: this.anims.generateFrameNames('explosion', { start: 0, end: 11 }) }); ``` 请注意, `start` 是可选的,如果动画从第0帧开始,则不需要包含它. 要反向指定动画,请交换 `start` 和 `end` 值. 如果帧不是连续的,您可以传递一组帧号,例如: `this.anims.generateFrameNumbers('explosion', { frames: [ 0, 1, 2, 1, 2, 3, 4, 0, 1, 2 ] })` 更多详细信息,请参见动画示例和 `GenerateFrameNumbers` 配置文档.
Parameters:
Name Type Description
key string 包含动画帧的纹理的关键点.
config Phaser.Types.Animations.GenerateFrameNumbers 动画帧的配置对象.
Returns:
Type
Array.<Phaser.Types.Animations.AnimationFrame>

get(key) → {Phaser.Animations.Animation}

Since:
  • 3.0.0
获取动画.
Parameters:
Name Type Description
key string 要检索的动画的键.
Returns:
动画.
Type
Phaser.Animations.Animation

getMix(animA, animB) → {number}

Since:
  • 3.50.0
返回两个动画之间的混合延迟. 如果没有设置混合,此方法将返回零. 如果您希望创建或更新新的混音,请调用 `addMix` 方法. 如果您想删除一个混合,调用 `removeMix` 方法.
Parameters:
Name Type Description
animA string | Phaser.Animations.Animation 动画的基于字符串的键或实例.
animB string | Phaser.Animations.Animation 动画B的基于字符串的键或实例.
Returns:
混音持续时间,如果不存在混音,则为零.
Type
number

listenerCount(event) → {number}

Since:
  • 3.0.0
Inherited From:
返回监听给定事件的侦听器数量.
Parameters:
Name Type Description
event string | symbol 事件名称.
Returns:
侦听器的数量.
Type
number

listeners(event) → {Array.<function()>}

Since:
  • 3.0.0
Inherited From:
返回为给定事件注册的侦听器.
Parameters:
Name Type Description
event string | symbol 事件名称.
Returns:
注册的听众.
Type
Array.<function()>

off(event, fnopt, contextopt, onceopt) → {this}

Since:
  • 3.0.0
Inherited From:
移除给定事件的侦听器.
Parameters:
Name Type Attributes Description
event string | symbol