您的位置:首页 > 移动开发 > Cocos引擎

自定义事件(2016.6.23)

2016-06-23 08:23 281 查看
关于自定义事件就是类与类之间的传递参数。或者是这个方法体想要引用另一个方法体的内容。就可以在一个方法体中抛出一个自定事件。在另一个方法体中接收。

ps:自定义事件满足的是 好莱坞原则 只有是层级高 的抛出事件,层级低的接收事件。否则就会出现问题。

抛出自定义事件:

cc.eventManager.dispatchCustomEvent(USER_CLICK_SHRED_EVENT, temp1.money)

ps:USER_CLICK_SHRED_EVENT 是在类外定义的一个全局变量 。也就是这个事件的名称

var USER_CLICK_SHRED_EVENT = “USER_CLICK_SHRED_EVENT”;

temp1.money是你在一个类中要传到另一个类里的对象。

在你需要接收的类或者方法体中想要接受上面自定义事件抛出的对象 就是必须在这个类或者方法体中添加自定义事件的侦听。

自定义事件的侦听:cc.eventManager.addCustomListener(USER_CLICK_SHRED_EVENT,function(event){

var data = event.getUserData();

cc.log(‘获得了数据’,data)

})

ps:USER_CLICK_SHRED_EVENT这个就是自定义事件的名称。用于区分接收的是哪一个自定义事件抛出的对象。

function(event){

var data = event.getUserData();

cc.log(‘获得了数据’,data)

}

是一个方法体,其中event就是接收到上面自定义事件抛出的对象

var data = event.getUserData();

这句话就是获得传来对象的数据。 然后就可以用传来的对象做自己想做的事情。对于类与类之间的结藕有很好的作用。并且非常的好用。

对于自定义事件唯一的缺点就是 每次使用自定义事件之后都要给事件移除。否则就会消化大量的电脑资源。

ps:自定义事件的移除

onExit:function(){

cc.eventManager.removeCustomListeners(USER_CLICK_SHRED_EVENT)

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos-js