Flex Event总结

 更新时间:2009年12月17日 22:24:26   作者:  
对于学习flex event的朋友是个不错的参考。

1.不[S1]是所有的事件都有三个阶段:Capture,Target,Bubbling。
事件只有在DisplayObject才上有Capturing和Bubbling阶段。

2.Target是派发该事件的对象。CurrentTarget是监听了该事件并正在处理该事件的对象。

3.Capturing[S2]流程:StageàSystemManageràApplicationà…à派发该事件的父对象。

4.Bubbling[S3]流程:派发该事件的父对象à…àApplicationàSystemManageràStage。

5.在mxml标签中定义的事件监听器是无法用removeEventListener()去掉的,并且无法设置useCapture和priority属性。

6.用removeEventListener()去掉未添加的事件器时是不会报错的,所有无需用hasEventListener()判断,但添加时需要判断,否则可能会添加多次。

7.Priority越大的监听器,越先执行。

8.weakRef[S4]对于非内嵌函数没用。

9.一个对象可以给同一个事件多个监听器:

假如按添加顺序是eventListener1,eventListener2和eventListener3。eventListener1没有调stopPropagation()和stopImmediatePropagation()方法。假设eventListener2调了其中[S5]的stopPropatation(),则eventListener3还会继续执行。但如果eventListener2调的是stopImmediatePropagation(),则eventListener3不会继续执行。

10.removeEventListener()只能一次去掉一个监听器,为同一个事件添加了几个监听器就需要调几次removeEventListener(),而且参数要相符[S6]。

11.hasEventListener()与willTrigger()的区别是:hasEventListener()只检查它所属的对象,而willTrigger[S7]()检查整个事件流以查找由type参数指定的事件。

12.keyCode[S8]对应的是key在键盘上的键值,是一个数字;charCode对应的是该key在当前字符集中的值,也是一个数字。因此就有下面的情况发生:1和!的keyCode是一样的,但他们的charCode是不一样的。


[S1]事件只有在DisplayObject才上有Capturing和Bubbling阶段。

[S2]从根节点到叶节点的父对象

[S3]从叶节点的父对象到根节点

[S4]如果设为true,只有内嵌函数可能会被垃圾回收器处理。

[S5]指stopPropagation()和stopImmediatePropagation()

[S6]use_capture

[S7]包括检查所有的父对象。

[S8]keyCode和keyChar都是KeyBoardEvent的属性。

相关文章

最新评论