一、环境
mac:10.12.2
CocosCreator:1.5.1
二、JS原生的enum
JS没有enum类型的数据,如果想定义枚举,则:
可以定义一个对象这样来定义枚举,
LoginType = {
UserName : 0,
Quick : 1,
};
但是,这样的对象,可以在脚本里用,但是,如果希望通过CocosCreator里的编辑器来设置值的话,就行不通了。
三、CocosCreator里的enum
CocosCreator里这样定义枚举:
LoginType = cc.Enum({
UserName : 0,
Quick : 1,
});
定义了之后,如果需要在编辑器设置值,就需要在properties里定义属性:
properties: {
// foo: {
// default: null, // The default value will be used only when the component attaching
// to a node for the first time
// url: cc.Texture2D, // optional, default is typeof default
// serializable: true, // optional, default is true
// visible: true, // optional, default is true
// displayName: 'Foo', // optional
// readonly: false, // optional, default is false
// },
// ...
test : {
default : LoginType.UserName,
type : cc.Enum(LoginType)
}
},
上面的定义才是正确的。
如果是把default一开始定义成null,则编辑器会显示为以下图片:
但是如果一开始default定义成枚举的一个成员,之后再把default定义成null,则不会出现上图的情况。
所以,明显的,在枚举里,把default定义成null,是不规范的。