·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]关于AS3.0事件Event类属性的全面介绍(2)

时间:2012-09-25 10:42CuPlayer
eventPhase 属性 您可以通过调查任何事件对象的 eventPhase 属性来确定事件阶段。eventPhase 属性包含一个无符号整数值,该值代表三个事件流阶段中的一个阶段。Flash Player API 定义了单独的 EventPhase 类,该类

eventPhase 属性
  您可以通过调查任何事件对象的 eventPhase 属性来确定事件阶段。eventPhase 属性包含一个无符号整数值,该值代表三个事件流阶段中的一个阶段。Flash Player API 定义了单独的 EventPhase 类,该类包含三个对应于三个无符号整数值的常量,如以下摘录代码中所示:

  1. package flash.events  
  2. {  
  3. public final class EventPhase  
  4. {  
  5. public static const CAPTURING_PHASE:uint = 1;  
  6. public static const AT_TARGET:uint = 2;  
  7. public static const BUBBLING_PHASE:uint = 3;  
  8. }  

  这些常数对应于 eventPhase 属性的三个有效值。使用这些常数可以使您的代码可读性更好。例如,如果要确保仅当事件目标在目标阶段中时才调用名为 myFunc() 的函数,您可以使用以下代码来测试此条件:

  1. if (event.eventPhase == EventPhase.AT_TARGET)  
  2. {  
  3. myFunc();  //极酷播放器提示:测试函数


target 属性
  target 属性包含对作为事件目标的对象的引用。在某些情况下,这很简单,例如当麦克风变为活动状态时,事件对象的目标是 Microphone 对象。但是,如果目标在显示列表中,则必须考虑显示列表层次结构。例如,如果用户在包括重叠的显示列表对象的某一点输入一个鼠标单击,则 Flash Player 始终会选择距离舞台层次最深的对象作为事件目标。
  对于复杂的 SWF 文件,特别是那些通常使用更小的子对象来修饰按钮的 SWF 文件,target 属性可能并不常用,因为它通常指向按钮的子对象,而不是按钮。在这些情况下,常见的做法是将事件侦听器添加到按钮并使用 currentTarget 属性,因为该属性指向按钮,而target 属性可能指向按钮的子对象。

currentTarget 属性
  currentTarget 属性包含对当前正在处理事件对象的对象的引用。您并不知道哪个节点当前正在处理您要检查的事件对象,虽然这似乎很奇怪,但请记住,您可以向该事件对象的事件流中的任何显示对象添加侦听器函数,并且可以将侦听器函数放在任何位置。而且,可以将相同的侦听器函数添加到不同的显示对象。随着项目大小和复杂性的增加, currentTarget属性会变得越来越有用。

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器