我有一个需求:控制 js properties 里定义的类型,比如:某一类脚本只能定义控件类型的,另一类脚本只能定义数值类的。
有两种方法:
1、在IDE内限制,目前不知道怎么弄,如果有办法,希望贵团队告知我,谢谢
2、得到 properties 属性,遍历里面的定义,如果有不合法的则报错,对于这种方法,我在代码里获得的 properties 的属性始终为 undefined ,怎么才能正确的获取到呢?
3、如果有其他方法能满足这个需求,也请告知我一下,谢谢
我有一个需求:控制 js properties 里定义的类型,比如:某一类脚本只能定义控件类型的,另一类脚本只能定义数值类的。
有两种方法:
1、在IDE内限制,目前不知道怎么弄,如果有办法,希望贵团队告知我,谢谢
2、得到 properties 属性,遍历里面的定义,如果有不合法的则报错,对于这种方法,我在代码里获得的 properties 的属性始终为 undefined ,怎么才能正确的获取到呢?
3、如果有其他方法能满足这个需求,也请告知我一下,谢谢
IDE 不太好控制引擎层面的逻辑
目前没有公有的 API 来完成这件事情,但私有 API 也不会有大改,你可以试着这样遍历:
var Attr = cc.Class.Attr;
var DELIMETER = Attr.DELIMETER;
var props = klass.__props__; // klass 是你定义的 CCClass
var attrs = Attr.getClassAttrs(klass);
for (var p = 0; p < props.length; p++) {
var key = props[p]; // 遍历 properties
var type = attrs[key + DELIMETER + 'type']; // 获得 type 中定义的值类型
var ctor = attrs[key + DELIMETER + 'ctor']; // 值类型是 Object 时还可以获得构造函数
}