假若继承了Button组件,并且把ClickEvent的默认值重写了,则在编辑器里不会显示给EventHandler设置的值
没太理解你说的继承 Button 组件是什么意思。
能不能描述一下具体的实现方式或者操作步骤?
MyButton继承了Button,将clickEvents的override设为true,并且将default设为
function() {
var handler = new cc.Component.EventHandler();
handler.component = 'MyButton';
handler.handler = 'onMyButtonClicked';
var ar = [];
ar.push(handler);
return ar;
}
然后在onLoad里去设置handler.target = this.node
然后在编辑器里看没有任何效果,只有一个没初始化的cc.Component.EventHandler
还是感觉晕晕的。你提到的 onLoad 函数是 MyButton 的 onLoad?
编辑器中没看到效果,是说某个节点挂载了 MyButton 组件,但是 clickEvents 属性并没有像预期的一样有初始化?
是否可以提供一下示例代码,我们研究看看。
没那么复杂,我的意思就是clickEvents已经在代码里设置过三围(target,component,handler)了,但在编辑器里没有显示这个三围,依然只能看到
,还必须得靠手动去编辑
问下你的 MyButton 组件是否开启了在编辑器中执行?如果没有开启的话,onLoad 函数在编辑器中并不会执行。
开启方法参考这个帖子:http://forum.cocos.com/t/component-editmode/37527/2
对头,这就是个点
不过我发现另外一个问题,如果executeInEditMode设为true了,那么这个组件每次在编辑模式下onLoad之前都不会把值还原成默认值,比如你在onLoad里把某个number型的属性++,会发现这个值都次编译后都会+1,完全停不下来
这个应该是属性值被序列化到了 json 文件中。所以每次加载进来之后又调用了 onLoad 处理。所以每次都会增加。