flex控件对象、RemoteObject等都有一个共同的方法addEventListener。
addEventListener方法如下:
public function addEventListener(type:String, listener:Function,
useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
{
eventDispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
@param type:String 触发事件的类型,flex预定义的事件类型和处理方式。
@param listener:Function 事件触发时的回调函数。
@param useCapture:Boolean 事件处理的顺序
@param priority:int 事件优先权,我的理解是如果添加了多个listener则按照priority的顺序执行:(没多大用
@param useWeakReference:Boolean 是否设为弱引用
重点讲进后面三个参数。
useCapture 参数只有用实例才能表达清楚。
useCapture例:
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute” applicationComplete=”init()”>
<mx:HBox id=”hbox” >
<mx:Button id=”button” label=”click”/>
</mx:HBox>
<mx:Script>
import mx.controls.*;
public function init():void
{
// 注意:这里的useCapture:Boolean值应加到一个包含内部元素的控件上,这样才能让flex运行时识别事件顺序的范围!!!
// 由于 flex的Alert控件是重叠方式显示,所以最外一层才是最后弹出的一层
hbox.addEventListener(MouseEvent.CLICK,hboxClick,true);
button.addEventListener(MouseEvent.CLICK,buttonClick);
}
public function hboxClick(e:MouseEvent):void
{
Alert.show(”外HBox事件。”);
}
public function buttonClick(e:MouseEvent):void
{
Alert.show(”内Button事件。”);
}
</mx:Script>
</mx:Application>
原文地址:http://blog.sina.com.cn/s/blog_5c4558600100d39q.html ......