company logo
advertisement for deep fried Twinkies


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, listenerContextpriorityargs)

参数意思:函数  函数和THIS指代的对象,优先度(越高越先),传的参数,可以依次添加很多个参数,直接,,,,就可以

signal.addOnce(listener, listenerContextpriorityargs)  只使用一次

移除事件监听器

signal.remove(listener, context)

signal.removeAll(context)   移除全部

分发事件

signal.dispatch(params)

销毁Signal对象

signal.dispose()

之后不会再分发任何事件,占用的内存也会被释放

其它一些重要的系统事件

太多,手册里也没有找到,直接截图了

360截图20160703092116506.jpg

360截图20160530101428129.jpg

光影魔术手拼图12.jpg

2、Phaser中的用户交互管理对象

   Phaser.Input对象是Phaser中的用户交互管理对象,它负责管理所有Phaser中的用户交互管理事件,包括鼠标事件、键盘事件以及触摸事件等等。

手册:http://www.swjxzy.com/phaserZF/docs/Phaser.Input.html

Pointer对像:

360截图20160703095612572.jpg

鼠标对像

360截图20160703095745560.jpg

360截图20160703095832690.jpg

键盘对像

360截图20160703095947804.jpg

360截图20160703100107171.jpg

例子:

360截图20160703100443837.jpg