2009-10-07 51 views
0
package classes.events 
{ 
    import flash.events.Event; 

    public class ASSEvent extends Event 
    { 
     public static const ALERT:String = " Add Alert"; 

     public function ASSEvent(type:String, bubbles:Boolean=true,cancelable:Boolean=false) 
     { 
      super(type, bubbles, cancelable); 
     } 



    } 
} 

这里是什么类型,泡沫和可取消保留以及为什么我们使用它......任何人都可以解释这整个代码。我需要了解Flex中的自定义事件

public function ASSEvent(type:String, bubbles:Boolean=true,cancelable:Boolean=false) 
      { 
       super(type, bubbles, cancelable); 
      } 
+0

ASSEvent?什么事件! – Amarghosh 2009-10-08 04:25:28

回答

3

bubblestrue,而该事件由它也将被从UI元素的父派遣了一个UI元素调度,那么它的父,依此类推,直到它到达顶部或监听通话stopPropagation()stopImmediatePropagation()在事件。如果您只在非UI类上分派事件,请将气泡设置为false。

cancelabletrue它基本上意味着您期望侦听器可能呼叫preventDefault()。您可以致电isDefaultPrevented()查看是否有人取消了该活动。例如,您可能会创建一个“applied_data”事件并允许侦听器取消它,以防止调用代码实际应用数据。如果事件不是逻辑上可取消的,则将其设置为false。

请注意,如果您实施自定义事件,则必须覆盖clone()方法。

有关Event类别的更多信息,请参阅Adobe docs

0

类型字段是事件的名称。通常,您可以使用Event或MouseEvent或KeyboardEvent类(或许多其他类)中的常量,但您也可以创建自己的。您应该使用静态常量,但尽管您可以使用任何字符串来表示一个,但请尝试将它们保留为camelCase,并省略诸如。的字符。和其他标点符号。原因是,虽然使用addEventListener的工作原理相同,但您可以使用事件的名称在MXML中定义事件侦听器......如果您有点和东西,这将不起作用。

如果您希望事件传播UI元素链,则应将bubbles字段设置为true。例如,如果一个按钮触发事件,则其中的Canvas将获取事件,并将其事件传递给HBox,依此类推。当您想要捕获组件子项中可能发生的事件时,这很方便,例如鼠标点击或键盘单击。这就是为什么你可以在Application.application.stage上放置这样的监听器并捕获你的应用程序获得的每个keyDown。

可取消字段使您可以调用事件的preventDefault()以取消默认逻辑。例如,这可能包括在TextField中输入一个字符。如果你想做你自己的默认处理,调用addEventListener(),优先级为EventPriority.DEFAULT_HANDLER ...然后,可以创建其他监听器,如果他们调用preventDefault(),可以使你不检查你想要的功能isDefaultPrevented()。