Flex中事件的初探
????????在flex中,Event是一个比较神奇,而且是我们必须经常打交道的一个类,黑羽大哥的一句话很经典:平生不识Event,就称闪客也枉然,说明了Event在Flash和Flex中的地位。 ????????那么这个非常重要的东西,该如何去应用呢?在这之前,我们要清楚一个事情,那就是Event是Object这个伟大父亲的220多个孩子之一,也就是说,它是直接继承于Object的。可是我们知道这有什么用处呢,嘿~,用处大啦,因为这代表了Event的贵族气质,即:在Event中,级别高的控件触发的事件,在级别低的控件中是无法被监听到的,怎么样,够高傲了吧。 ????????在flex中,事件分成了两类,一个是系统事件,一个自定义事件。系统事件是包含鼠标点击,焦点获得等等。自定义,顾名思义,是自己定义的事件啦,但是要注意,自定义的事件必须要继承于Event这个类,否则,listener是不会搭理你滴~。那么自定义事件该如何定义呢,下面有一个例子,会对你有帮助。
?
import
?flash.events.Event;
? ? public class ?MyEvent? extends ?Event ? {?????? ?????public?function?MyEvent?(type:String,?nextPage:String,?bubbles:Boolean?=?false,?cancelable:Boolean?)?{ ?????????super(type,?bubbles,?cancelable); ?????}?? ?} ????????有了自定义事件,那么我们的下一个问题就来啦,自定义事件有了,那么该如何触发,又如何监听呢,别着急啦~~,下面就说。 ?function?addEventListener(eventName:String,?
//
事件的KEY
?????????????????????????????listener:Function,??? 事件的方法 ?????????????????????????????useCapture:Boolean = false 确定侦听器是运行于捕获阶段、目标阶段还是上浮阶段。 ?????????????????????????????priority:Integer 0 优先级 ?????????????????????????????useWeakReference:Boolean ?是否设定为弱引用 ?????????????????????????????): testMs.addEventListener(MouseEvent.CLICK,changeVboxLabel);,
<
mx:Panel
>
???? mx:HBox ???????? mx:VBox ???????????????? mx:Button? /> </ ????????priority:Integer=0,优先级,监听是有优先级的,那么通过这个字段,我们可以轻松的改变监听的优先级,是不是很方便,默认的时候为0; ????????useWeakReference:Boolean=false // 是否设定为弱引用 这个参数的意思是,在该监听不使用的时候,是否允许垃圾回收器,将该监听回收。这个很重要,因为addEventListener有点类似千年老龟,生命周期比较长,如果没有被回收掉,会一直占着系统资源的。 ????????最后有一点,要非常注意,在UI的监听执行完毕后,一定要将该监听移除removeEventListener,否则,即使UI被移除掉,监听也不会被销毁。这个比较重要,因为一些看起来比较诡异的错误,大部分是因为这个导致的。 ????????现在来解惑先前的埋伏下的悬念: ????????bubbles:Boolean = false:这个事件是否参与上浮阶段 ????????cancelable:Boolean = false // 确定是否可以取消 Event 对象 ????????所以,在application中,触发的事件,它的底层,是无法监听到的,收笔回家~ 转自:http://www.blogjava.net/rainwindboys/archive/2008/08/07/220687.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |