求救大佬,枚举类型的遍历?

我想遍历枚举里所有的对象,有啥办法呢?
cc.Enum.getList这方法我用了不知道为啥长度一直为0。。。

比如:

cc.Enum.getList(cc.Node.EventType);

如果我自己要定义一个枚举类型,在其他的类里面任何地方都想遍历呢?我该怎么做呢?

感谢大大们,刚开始接触 0.0

因为 cc.Node.EventType 里面定义是值是字符串, 所以无法定义为 Enum,导致你获取为空。

你可以通过 Object.keys(cc.Node.EventType) 来获取 keys ,这样就能获取到长度了

定义一个头,一个尾,++循环

如果我在当前类里面定义一个枚举对象,是可以遍历的,但如果我想有个专门的枚举类,然后别的地方去遍历呢?好像一直都是为0,我该怎么写呢?

能否看一下你如何定义枚举的

var aa = cc.Enum({
aa : “aa”,
bb : “bb”,
});

这是在一个a.js的文件里面的,感谢~

楼上我提到了,定义 Enum 的数值不能是字符串,不然获取到的长度是为 0 的,

你直接定义对象就行了

var aa = {
   aa: "aa",
   bb: "bb"
}

var keys = Object.keys(aa);

keys.length 

额,我好像看到源码里面是这样的?

/**

  • !#en The event type supported by Node
  • !#zh Node 支持的事件类型
  • @class Node.EventType
  • @static
  • @namespace Node
    */
    var EventType = cc.Enum({
    });
    有点疑惑。。

还有就是,这样在a.js里面是可以获取到了,但如果我想在b.js里面Object.keys(aa);呢?我该怎样去写比较规范呢?

源码这里会进行修复,cc.Enum 只支持数值为数字的 枚举

你就用 Object.keys(aa); 获取 keys 吧

辛苦了,感谢~