您的位置:首页 > 职场人生

常用事件方法及技巧(八) -- EventDispatcher类

2010-08-21 20:56 253 查看
EventDispatcher类是用来管理侦听器函数的,这个大家都知道。但EventDispatcher类常用的五个方法,大家是否都会用呢?

1. addEventListener 和 removeEventListener

这两个是最常用的了。我们对于不再需要的侦听,要及时的remove掉,这样可以释放内存,优化运行速度。尤其是在大规模的工程中,及时的从内存中清除不必要的元件,这个是非常重要的,可千万不要忽视。

2. hasEventListener 和 willTrigger

发觉网上很多的说明文件,都是直接照搬帮助文件,真想不通这样的文章有什么用。题外话,有感而发而已,下面进入正题。

按照惯例,我还是举个例子来说明,舞台布置如下图(很熟悉吧,哈哈,我都是这样测试的)





添入代码如下:

function p1(event:MouseEvent):void

{

trace("t1:"+event.type);

}

t1.addEventListener(MouseEvent.MOUSE_DOWN, p1);

trace(t1.t2.hasEventListener(MouseEvent.MOUSE_DOWN));

trace(t1.t2.willTrigger(MouseEvent.MOUSE_DOWN));

运行后,返回:

false

true

分析结果如下:

hasEventListener检测目标对象是否注册特定侦听器,因此返回false。

willTrigger不仅检测目标对象,还检测目标对象的父对象,由于t1注册了侦听器,因此返回true。

顺便说句废话:这两个方法都是检测当前状态,所以如果放到注册侦听器的语句之前,返回的都是false。

3. dispatchEvent

这个方法提供了一个自定义侦听事件的接口。帮助文档上只有简单的说明,没有提供相关实例。

不过这个方法属于较为高端的用法,毕竟AS3.0自带了那么多方法和事件,大多数情况,都足够用了。

这篇文章,我先不具体介绍这个方法的使用实例了。相关文章,我会单独再写一篇博文的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息