
最近做的农场游戏,一些界面变动(金币变动,或者一些操作等)都是通过查找节点得到挂载的脚本组件来控制界面的内容显示,而creator的监听和发射事件都是基于节点的.突发奇想会不会有全局的观察者模式来处理事件的监听和发射.
于是在论坛收到了jare回答的问题.根据回答就尝试了一下.于是有了本文的介绍,以便后来者方便使用.
首先把NotificationCenter做成全局的js脚本.这样就支持全局调用了.
在用到的地方之间require这个脚本文件,然后使用on或emit即可.
var NotificationCenter = new cc.EventTarget(); /* //说明xxxxxxxx */ module.exports = NotificationCenter;
/**
* 支持emit on off事件
* on监听事件
* //监听notification事件
* NotificationCenter.on('notification', function (event) {
* console.log(event.detail.msg);//这里的msg为emit事件派发数据的key
* console.log(event.detail.body);//这里的body为emit事件派发数据的key
* console.log(event.detail.test);//这里的test为emit事件派发数据的key
* }.bind(this));
*
* emit派发事件
* //发射notification事件
* NotificationCenter.emit('notification',{
* msg: 'Hello, this is Cocos Creator',//这里的msg为on事件监听数据的key
* body:"你好啊",//这里的body为on事件监听数据的key
* test:12,//这里的test为on事件监听数据的key
*
* //关闭notification事件
* NotificationCenter.off('notification');
*
* 说明:此处把NotificationCenter设置为全局的数据,用到的地方需要require本文件
* 例如:var NotificationCenter = require("NotificationCenter");
* 需要监听xxxxx事件的可以在start或onLoad函数里使用on进行监听.
* 需要发送事件的时候直接调用emit事件,第二个参数可以带数据
*
* 注意:在使用本事件的js脚本挂载的节点必须是可见的(node.active = true).否则事件是无法on监听的.
*/
大概就是这个样子,这里只是简单的使用,还有优化的地方.这里不过感觉用起来不是很顺手,因为引用该文件的脚本所在节点如果不显示则无法正确的执行.
大家优化后可以分享出来到论坛https://www.27ki.com/forum-81-1.html by:闭眼就天黑
本文地址:https://www.byjth.com/ccc/130.html
版权声明:若无注明,本文皆为“闭眼就天黑专栏_技术博客_个人学习总结”原创,转载请保留文章出处。
- 再次理解creator坐标系,修复运行会提示警告的问题
- creator开发常见问题汇总(不定时更新)
- 微信小游戏内长按识别小程序码方案【转】
- creator屏蔽多点触摸代码参考
- creator发布今日头条(抖音/西瓜/皮皮虾)小游戏一些注意事项
- creator2.1以上更高版本一些api的变动记录
- CocosCreator简单使用全局观察者模式进行节点事件派送与监听
- CocosCreator使用json配置文件以及json文件读取
- creator2.1物理引擎学习笔记
- (cocos2dx资源加密)cocoscreator资源加密方案
版权所有:《闭眼就天黑专栏_技术博客_个人学习总结》 => 《CocosCreator简单使用全局观察者模式进行节点事件派送与监听》
本文地址:https://www.byjth.com/ccc/130.html
除非注明,文章均为 《闭眼就天黑专栏_技术博客_个人学习总结》 原创,欢迎转载!转载请注明本文地址,谢谢。