ActionScript 3.0 事件处理模型

ActionScript 3.0 引入了单个事件处理模型,替换以前版本的 ActionScript 中存在的不同事件处理机制。该新事件模型基于文档对象模型 (DOM) 第 3 级事件规范。

对于使用 ActionScript 2.0 addListener() 方法的开发人员来说,了解 ActionScript 2.0 事件侦听器模型和 ActionScript 3.0 事件模型之间的差别可能会有所帮助。下面的列表描述了这两种事件模型之间的一些主要区别:

  • 若要在 ActionScript 2.0 中添加事件侦听器,在某些情况下使用 addListener() ,其他情况下则使用 addEventListener() ,而在 ActionScript 3.0 中,所有情况下都使用 addEventListener()

  • ActionScript 2.0 中没有事件流,这意味着 addListener() 方法只能在广播事件的对象上进行调用,而在 ActionScript 3.0 中, addEventListener() 方法可以在作为事件流一部分的任意对象上进行调用。

  • 在 ActionScript 2.0 中,事件侦听器可以是函数、方法或对象,而在 ActionScript 3.0 中,只有函数或方法可以是事件侦听器。

  • ActionScript 3.0 中不再支持 on( event ) 语法,因此无法将 ActionScript 事件代码附加到影片剪辑。只能使用 addEventListener() 添加事件侦听器。

    下面的示例(侦听名为 aButton 的 Button 组件上的 MouseEvent.CLICK 事件)演示基本的 ActionScript 3.0 事件处理模型:

    aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
    function clickHandler(event:MouseEvent):void { 
    trace("clickHandler detected an event of type: " + event.type);  
    trace("the event occurred on: " + event.target.name);  
    }

    有关 ActionScript 3.0 事件处理的详细信息,请参阅 《ActionScript 3.0 编程》 。有关 ActionScript 3.0 组件事件处理的详细信息,请参阅 处理事件