Phaser 事件系统
学习笔记:来自极客学院的视频教程,建议大家去听,月会员才30元,很多优秀人做的视频教程,不限时间,还可以下载资料和老师直接提问,真是物美价优。
事件系统是非常重要的,没有事件系统的应用不会是一个好应用。
1 Phaser中的事件系统— Phaser.Signal对象介绍
手册:http://www.swjxzy.com/phaserZF/docs/Phaser.Signal.html
Phaser中的事件系统是由Phaser.Signal对象来实现的。
每一个Siganl对象都代表着一类事件,当这个事件发生时,所有监听了这个Signal对象的事件监听器都会收到事件发生的信号,从而可以执行相应的动作。正如signal的所代表的字面意思一样,Signal对象就像一个信号发射器,当有需要时就把信号发射出去。我们需要多少种不同的信号,就可以创建多少个Signal对象。同时我们可以控制谁需要接收这个信号,从而在游戏对象之间建立起一种低耦合的通信机制。
Signal对象的创建
var signal = new Phaser.Signal()
添加事件监听器
signal.add(listener, listenerContext, priority, args)
参数意思:函数 函数和THIS指代的对象,优先度(越高越先),传的参数,可以依次添加很多个参数,直接,,,,就可以
signal.addOnce(listener, listenerContext, priority, args) 只使用一次
移除事件监听器
signal.remove(listener, context)
signal.removeAll(context) 移除全部
分发事件
signal.dispatch(params)
销毁Signal对象
signal.dispose()
之后不会再分发任何事件,占用的内存也会被释放
其它一些重要的系统事件
太多,手册里也没有找到,直接截图了
2、Phaser中的用户交互管理对象
Phaser.Input对象是Phaser中的用户交互管理对象,它负责管理所有Phaser中的用户交互管理事件,包括鼠标事件、键盘事件以及触摸事件等等。
手册:http://www.swjxzy.com/phaserZF/docs/Phaser.Input.html
Pointer对像:
鼠标对像
键盘对像
例子: