“The Event Flow”的版本间的差异

来自Blueidea
跳转至: 导航搜索
(以内容“Category:FlashPlatform Event 關於 ActionScript3 事件流。 ==用這個模型來說明ActionScript3事件流機制== ==實現圖示結構的代碼= 這個例...”创建新页面)
 
=實現圖示結構的代碼
第5行: 第5行:
 
==用這個模型來說明ActionScript3事件流機制==
 
==用這個模型來說明ActionScript3事件流機制==
  
==實現圖示結構的代碼=
+
==實現圖示結構的代碼==
 
這個例子用於創建如上圖中所示的結構。</br>
 
這個例子用於創建如上圖中所示的結構。</br>
 
我們為A,B,C1,C2分別加入了監聽,並且多給B分配了一個監聽。
 
我們為A,B,C1,C2分別加入了監聽,並且多給B分配了一個監聽。

2011-04-14T18:03:09的版本


關於 ActionScript3 事件流。

用這個模型來說明ActionScript3事件流機制

實現圖示結構的代碼

這個例子用於創建如上圖中所示的結構。</br> 我們為A,B,C1,C2分別加入了監聽,並且多給B分配了一個監聽。

package {
  import flash.display.Sprite;
  import flash.display.StageAlign;
  import flash.display.StageScaleMode;
  import flash.events.Event;
  public class Test extends Sprite {
    //==========================================================================
    //  Constructor
    //==========================================================================
    /** Constructor */
    public function Test() {
      // init
      const A:Sprite = new Sprite();
      const B:Sprite = new Sprite();
      const C1:Sprite = new Sprite();
      const C2:Sprite = new Sprite();
      B.addChild(C1);
      B.addChild(C2);
      A.addChild(B);
      stage.addChild(A);
      // add event listeners
      A.addEventListener("myEvent", A_listener);
      B.addEventListener("myEvent", B_listener1);
      B.addEventListener("myEvent", B_listener2);
      C1.addEventListener("myEvent", C1_listener);
      C1.addEventListener("myEvent", C2_listener);
      // dispatch event
      // ${1}
    }
    //==========================================================================
    //  Event listeners
    //==========================================================================
    private function A_listener(event:Event):void {
      trace("A處捕獲");
    }
    private function B_listener1(event:Event):void {
      trace("B處捕獲(優先)");
    }
    private function B_listener2(event:Event):void {
      trace("B處捕獲");
    }
    private function C1_listener(event:Event):void {
      trace("C1處捕獲");
    }
    private function C2_listener(event:Event):void {
      trace("C2處捕獲");
    }
  } // <- end class ->
}