DataManagerPlugin

.Data. DataManagerPlugin

数据组件提供了一种方法来存储特定于游戏对象,系统或插件的数据. 然后,您可以搜索,查询并检索数据.父节点必须扩展事件发射器, 或者有一个名为 `events` 的属性作为它的实例.

Constructor

new DataManagerPlugin(scene)

Since:
  • 3.0.0
Parameters:
Name Type Description
scene Phaser.Scene 对此数据管理器所属场景的引用.

Extends

Members

count :number

Since:
  • 3.0.0
Inherited From:
返回此数据管理器中的条目总数.
Type:
  • number

events :Phaser.Events.EventEmitter

Since:
  • 3.0.0
Inherited From:
数据管理器的事件发射器.
Type:

freeze :boolean

Since:
  • 3.0.0
Inherited From:
获取或设置此数据管理器的冻结状态. 冻结的数据管理器将阻止所有创建新值或更新现有值的尝试.
Type:
  • boolean

list :Object.<string, *>

Since:
  • 3.0.0
Inherited From:
Default Value:
  • {}
数据列表.
Type:
  • Object.<string, *>

parent :*

Since:
  • 3.0.0
Inherited From:
此数据管理器所属的对象.
Type:
  • *

scene :Phaser.Scene

Since:
  • 3.0.0
对此数据管理器所属场景的引用.
Type:

systems :Phaser.Scenes.Systems

Since:
  • 3.0.0
场景系统参考.
Type:

values :Object.<string, *>

Since:
  • 3.10.0
Inherited From:
Default Value:
  • {}
公共价值清单.您可以用它来访问您存储的任何内容 在这个数据管理器中.例如,如果您设置一个名为 `gold` 的值,您可以 通过以下方式访问: ```javascript this.data.values.gold; ``` 也可以直接修改: ```javascript this.data.values.gold += 1000; ``` 这样做将从该数据管理器的父级发出一个 `setdata` 事件. 不要直接修改此对象.直接向该对象添加属性不会 发出任何事件.第一次创建新项目时,请始终使用 `DataManager.set` .
Type:
  • Object.<string, *>

Methods

destroy()

Since:
  • 3.5.0
Overrides:
拥有这个插件的场景正在被破坏. 我们需要关闭并删除所有外部引用.

each(callback, contextopt, …argsopt) → {this}

Since:
  • 3.0.0
Inherited From:
将所有数据项传递给给定的回调.
Parameters:
Name Type Attributes Description
callback DataEachCallback 要调用的函数.
context * <optional>
执行回调时用作 `this` 的值.
args * <optional>
<repeatable>
在游戏对象,密钥和数据之后,将传递给回调的附加参数.
Returns:
此数据管理器对象.
Type
this

get(key) → {*}

Since:
  • 3.0.0
Inherited From:
检索给定键的值,如果不存在,则为未定义. 您也可以通过 `values` 对象访问值.例如,如果您有一把名为 `gold` 的钥匙,您可以选择: ```javascript this.data.get('gold'); ``` 或者直接访问该值: ```javascript this.data.values.gold; ``` 您还可以传入一个键数组,在这种情况下,将返回一个值数组: ```javascript this.data.get([ 'gold', 'armor', 'health' ]); ``` 这种方法对于在ES6中析构数组很有用.
Parameters:
Name Type Description
key string | Array.<string> 要检索的值的键或键数组.
Returns:
属于给定键或值数组的值,其顺序将与输入数组匹配.
Type
*

getAll() → {Object.<string, *>}

Since:
  • 3.0.0
Inherited From:
检索新对象中的所有数据值.
Returns:
所有数据值.
Type
Object.<string, *>

has(key) → {boolean}

Since:
  • 3.0.0
Inherited From:
确定给定的键是否在此数据管理器中设置. 请注意,这些键区分大小写,并且必须是有效的JavaScript对象属性字符串. 这意味着键 `Gold` 和 `gold` 在数据管理器中被视为两个唯一的值.
Parameters:
Name Type Description
key string 检查的关键.
Returns:
如果键存在,则返回 `true` ,否则返回 `false` .
Type
boolean

inc(key, dataopt) → {Phaser.Data.DataManager}

Since:
  • 3.23.0
Inherited From:
增加给定键的值.如果密钥在数据管理器中不存在,则从0开始增加. 首次设置该值时,会发出 `setdata` 事件.
Parameters:
Name Type Attributes Description
key string | object 增加价值的关键.
data * <optional>
给定键要增加的值.
Fires:
Returns:
此数据管理器对象.
Type
Phaser.Data.DataManager

merge(data, overwriteopt) → {this}

Since:
  • 3.0.0
Inherited From:
将键值对的给定对象合并到该数据管理器中. 任何新创建的值都将发出一个 `setdata` 事件.任何更新的值(参见 `overwrite` 参数) 将发出 `changedata` 事件.
Parameters:
Name Type Attributes Default Description
data Object.<string, *> 要合并的数据.
overwrite boolean <optional>
true 是否覆盖现有数据.默认为真.
Fires:
Returns:
此数据管理器对象.
Type
this

pop(key) → {*}

Since:
  • 3.0.0
Inherited From:
检索与给定 `key` 相关联的数据,将其从该数据管理器中删除,然后返回.
Parameters:
Name Type Description
key string 要检索和删除的值的键.
Fires:
Returns:
给定键的值.
Type
*

query(search) → {Object.<string, *>}

Since:
  • 3.0.0
Inherited From:
向数据管理器查询与给定正则表达式匹配的键值.
Parameters:
Name Type Description
search RegExp 正则表达式对象.如果传递了一个非RegExp对象obj,那么它会通过使用新的RegExp(obj)隐式转换为RegExp.
Returns:
匹配搜索字符串的键值.
Type
Object.<string, *>

remove(key) → {this}

Since:
  • 3.0.0
Inherited From:
移除给定键的值. 如果在此数据管理器中找到该密钥,它将从内部列表中删除,并显示一个 发出 `removedata` 事件. 您也可以传入一个键数组,在这种情况下,数组中的所有键都将被移除: ```javascript this.data.remove([ 'gold', 'armor', 'health' ]); ```
Parameters:
Name Type Description
key string | Array.<string> 要移除的键或要移除的键数组.
Fires:
Returns:
此数据管理器对象.
Type
this

reset() → {this}

Since:
  • 3.0.0
Inherited From:
删除此数据管理器中的所有数据并将其解冻.
Returns:
此数据管理器对象.
Type
this

set(key, data) → {this}

Since:
  • 3.0.0
Inherited From:
为给定键设置一个值.如果密钥在数据管理器中不存在,则创建它. ```javascript data.set('name', 'Red Gem Stone'); ``` 您也可以传入键值对对象作为第一个参数: ```javascript data.set({ name: 'Red Gem Stone', level: 2, owner: 'Link', gold: 50 }); ``` 要重新获得一个值,您可以调用 `get` : ```javascript data.get('gold'); ``` 或者,您可以通过 `values` 属性直接访问该值,它的工作方式与任何其他变量一样: ```javascript data.values.gold += 50; ``` 首次设置该值时,会发出 `setdata` 事件. 如果该键已经存在,则会发出一个 `changedata` 事件,以及一个以该键命名的事件. 例如,如果您更新了一个名为 `PlayerLives` 的现有键,那么它将发出事件 `zchangedata-Playerleves` . 无论您是使用此方法设置值,还是直接使用 `values` 设置器,都会发出这些事件. 请注意,数据键区分大小写,并且必须是有效的JavaScript对象属性字符串. 这意味着键 `Gold` 和 `gold` 在数据管理器中被视为两个唯一的值.
Parameters:
Name Type Description
key string | object 要为其设置值的键.或一个对象或键值对.如果一个对象的参数被忽略.
data * 为给定键设置的值.如果提供一个对象作为键,则忽略该参数.
Fires:
Returns:
此数据管理器对象.
Type
this

setFreeze(value) → {this}

Since:
  • 3.0.0
Inherited From:
冻结或解冻此数据管理器.冻结的数据管理器将阻止所有尝试 创建新值或更新现有值.
Parameters:
Name Type Description
value boolean 是否冻结或解冻数据管理器.
Returns:
此数据管理器对象.
Type
this

toggle(key) → {Phaser.Data.DataManager}

Since:
  • 3.23.0
Inherited From:
切换给定键的布尔值.如果该键在数据管理器中不存在,则从假切换. 首次设置该值时,会发出 `setdata` 事件.
Parameters:
Name Type Description
key string | object 切换值的键.
Fires:
Returns:
此数据管理器对象.
Type
Phaser.Data.DataManager