处理事件

 

每一个组件在用户与它交互时都会广播事件。例如,当用户单击一个 Button 时,它会调度 MouseEvent.CLICK 事件;当用户选择 List 中的一个项目时,List 会调度 Event.CHANGE 事件。当组件发生重要事情时也会引发事件,例如,当 UILoader 实例完成内容加载时,会生成一个 Event.COMPLETE 事件。若要处理事件,您需要编写在该事件被触发时需要执行的 ActionScript 代码。

组件的事件包括该组件所继承的任何类的事件。这意味着,所有 ActionScript 3.0 用户界面组件都从 UIComponent 类继承事件,因为它是 ActionScript 3.0 用户界面组件的基类。若要查看某一组件广播的事件的列表,请参阅《ActionScript 3.0 语言和组件参考》中该组件的类条目中的“事件”部分。

有关 ActionScript 3.0 中事件处理的完整说明,请参阅《ActionScript 3.0 编程》

关于事件侦听器

以下要点适用于 ActionScript 3.0 组件的事件处理:

  • 所有事件均由组件类的实例广播。组件实例为“广播器”。

  • 通过调用组件实例的 addEventListener() 方法,可以注册事件的“侦听器”。例如,下面这行代码向 Button 实例 aButton 添加了一个 MouseEvent.CLICK 事件的侦听器:

    aButton.addEventListener(MouseEvent.CLICK, clickHandler);

    addEventListener() 方法的第二个参数注册在该事件发生时要调用的函数的名称,即 clickHandler。此函数也称作“回调函数”。

  • 您可以向一个组件实例注册多个侦听器。

    aButton.addEventListener(MouseEvent.CLICK, clickHandler1); 
    aButton.addEventListener(MouseEvent.CLICK, clickHandler2);
  • 也可以向多个组件实例注册一个侦听器。

    aButton.addEventListener(MouseEvent.CLICK, clickHandler1); 
    bButton.addEventListener(MouseEvent.CLICK, clickHandler1);
  • 会将一个事件对象传递给该事件处理函数,该对象包含有关该事件类型和广播该事件的实例的信息。有关详细信息,请参阅关于事件对象

  • 在应用程序终止或您使用 removeEventListener() 显式删除侦听器之前,侦听器会一直保持活动状态。例如,下面这行代码删除 aButtonMouseEvent.CLICK 事件的侦听器:

    aButton.removeEventListener(MouseEvent.CLICK, clickHandler);

    关于事件对象

    事件对象继承自 Event 对象类,它的一些属性包含了有关所发生事件的信息,其中包括提供事件基本信息的 targettype 属性:

属性

描述

类型

表示事件类型的字符串。

target

对广播事件的组件实例的引用。

   如果事件具有其它属性,则会在《ActionScript 3.0 语言和组件参考》中该事件的类描述中列出这些属性。

   事件对象是自动生成的,当事件发生时会将它传递给事件处理函数。

  您可以在该函数内使用事件对象来访问所广播的事件的名称,或者访问广播该事件的组件的实例名称。您可以从实例名称访问其它组件属   性。例如,下面的代码使用 evtObj 事件对象的 target 属性来访问 aButtonlabel 属性并将它显示在“输出”面板中:

 import fl.controls.Button; 
import flash.events.MouseEvent; 
 
var aButton:Button = new Button(); 
aButton.label = "Submit"; 
addChild(aButton); 
aButton.addEventListener(MouseEvent.CLICK, clickHandler); 
 
function clickHandler(evtObj:MouseEvent){ 
trace("The " + evtObj.target.label + " button was clicked"); 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值