10.3.2 事件调度

上一篇 / 下一篇  2009-04-11 16:44:30

使用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:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

关于作者