10.3.2 事件调度
使用MXML语句添加的事件监听函数无法指定优先级别,只能采用默认的优先级别0。 |
10.3.2 事件调度
事件监听器创建完成之后,需要对事件进行调度和发送。在前面示例中,都是使用Flex组件来直接触发事件。除了这种方式之外,还可以在ActionScript. 3.0代码中,手动派发事件。
在ActionScript. 3.0中,可以使用EventDispatcher类的dispatchEvent()方法来手动发送事件。dispatchEvent()方法的语法定义如下所示:
public function dispatchEvent(event:Event):Boolean
参数event表示调度到事件流中的Event对象。如果正在重新调度事件,则会自动创建此事件的一个克隆。在调度了事件后,其target属性将无法更改。
dispatchEvent()方法返回一个布尔值,如果成功调度了事件,则值为true。值为false则表示调度失败或对事件调用了preventDefault()方法。
下面创建一个使用dispatchEvent()方法发送事件的示例,如代码10.3所示:
代码10.3 手动发送事件
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initapp()">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
//初始化程序
public function initapp():void
{
//添加事件监听
this.addEventListener(Event.COMPLETE,completehandler);
//事件调度
this.dispatchEvent(new Event(Event.COMPLETE));
}
//结果处理函数
public function completehandler(e:Event):void
{
Alert.show("程序加载完成!");
}
]]>
</mx:Script>
</mx:Application>
在上述代码中,首先创建了一个程序初始化函数initapp()。在函数中,首先添加事件监听器,然后使用dispatchEvent()方法发送事件。最后创建事件监听处理函数。运行程序,程序加载完成后,效果如图10-6所示:
图10-6 手动发送事件效果
TAG:






