加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

starling教程-事件模型(Event model )

发布时间:2020-12-15 07:11:36 所属栏目:百科 来源:网络整理
导读:所有的Starling对象都是EventDispatcher的子类。就像是用本地的EventDispatcher一样,所有的Starling对象都有注册和移除监听的api。 ?? addEventListener : Registers a listener to a specific event. ?? hasEventListener : Tests if there is a listener

所有的Starling对象都是EventDispatcher的子类。就像是用本地的EventDispatcher一样,所有的Starling对象都有注册和移除监听的api。

?? addEventListener : Registers a listener to a specific event.
?? hasEventListener : Tests if there is a listener for a specific event.
?? removeEventListener : Removes the event listener.
?? removeEventListeners : Removes all the listeners registered to a specific event or all of them.

注意这个新增的非常有用的api:removeEventListeners。当你想移除掉注册到一个事件的所有监听时,通过给这个方法传入事件的类型就可以轻松做到:

1 button.removeEventListeners(Event.TRIGGERED);

当你需要移除所有监听的时候(不论是事件类型都释放掉),在你需要释放对象地方调用removeEventListeners方法,不要传参:

1 button.removeEventListeners ();

注意,在我们之前用到的removeChild方法的第二个参数dispose,在其内部实现的时候就是给每个child使用了和上面相同的api。

?

事件的传播机制(Event?propagation?)

从教程的一开始我们就知道了,Starling在Stage3D的基础上重建了显示列表的概念。更好的消息是在Starling中你也可以使用到强大的事件传播机制。并且事件机制在某些情况下能减少注册和移除监听的操作,从而使你的代码更简洁。

对于flash本地事件机制不是很了解的童鞋,可以从下面的连接获得更多信息(其实直接去看api的说明就好了s):

http://www.adobe.com/devnet/actionscript/articles/event_handling_as3.html

这里有一点说明:和flash本地的事件机制有一点区别,starling中的事件只支持冒泡阶段,没有捕获阶段的概念。在下一个例子中我们会补充说明它是怎么工作的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读