例如通过 aNode.setData( 'datakeyName', { xxx } ) 给该节点附带自定义数据,
再通过 aNode.getData('datakeyName') 获得该节点的附带数据。
这块 Phaser 是有的,会很方便记录一些节点数据信息。
例如通过 aNode.setData( 'datakeyName', { xxx } ) 给该节点附带自定义数据,
再通过 aNode.getData('datakeyName') 获得该节点的附带数据。
这块 Phaser 是有的,会很方便记录一些节点数据信息。
这是ts也可以直接aNode: any,aNode.metaData = {},或者直接aNode[“metaData”] = {},我也写了个BaseComponent里onLoad就this.metaData = {},一切继承Component的去继承BaseCompoennt 
那为什么不能更规范一点 给它挂个脚本上去呢
我知道的,就是麻烦,要是有官方方法支持会方便和规范很多
官方直接支持的话直接调用节点方法就行了,而不是自己搞脚本挂上去。
而且官方如果有方法才是最规范的,避免每人各自一套实现。
一点都不规范,你这样做的话,谁都不知道谁又偷偷存了啥,这种操作属于纯给项目挖坑
按你这么说,H5 的 dataset 也是个不规范的 API 了。
用attr加呗
现在你也能加啊 node[“datakeyName”] = {}就行
declare module “cc” {
interface Node {
dataKeyName: { attr0: string }
}
}
都是脚本语言了 还不是想怎么干 就怎么干
官方:你自己搞,我可没空
不是 不懂就问 怎么就解决方案了
今天看到这个
属性配置函数。在 attrs 的所有属性将被设置为节点属性。
var attrs = { mykey: 0, mynum: 100 };
node.attr(attrs);
下面这样的添加 编辑器 不会爆红
const nodeAttrs = new WeakMap<cc.Node, { mykey?: number; mynum?: number }>();
nodeAttrs.set(this.sprite_splash2, { mykey: 0, mynum: 100 });
const attrs = nodeAttrs.get(this.sprite_splash2);
if (attrs) {
console.log(attrs.mykey);
console.log(attrs.mynum);
}
https://docs.cocos.com/creator/2.4/api/zh/classes/Node.html#attr
好言相劝,你如果开发H5是用dataset存储数据,也是够奇葩的