2010-11-04 77 views
2

根據閃存文檔:EXIT_FRAME冒泡?

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/Event.html#

Event.EXIT_FRAME常量定義 一個 exitFrame事件對象的類型屬性的值。

注意:此事件既不具有 「捕獲階段」也不這意味着事件偵聽器必須 可以直接添加到任何潛在 目標的「泡沫相」, ,目標是否是 顯示列表上或不。

調用gotoAndStop上的DisplayObject的EXIT_FRAME事件引發它的容器中,似乎有沒有辦法阻止它的孩子時,但是。

例如:

 private function init(e:Event = null):void 
    { 
    removeEventListener(Event.ADDED_TO_STAGE, init); 
    // entry point 
    c = new Circle2(); 
    addChild(c); 

    this.addEventListener(Event.ENTER_FRAME, enterFrame); 
    this.addEventListener(Event.EXIT_FRAME, exitFrame); 
    } 

    private function enterFrame(e:Event):void 
    { 
    trace("enter frame"); 
    c.setPercent(5); // this calls gotoAndStop() 
    } 

    private function exitFrame(e:Event):void 
    { 
    trace("exit frame"); 
    } 

輸出是:

輸入幀

出口幀

出口幀

在CIRCLE2構造我已經試過這

this.addEventListener(Event.EXIT_FRAME, function(e:Event):void 
{ 
e.stopPropagation(); 
}); 
+0

我在AS3中有相同的行爲 - Flash CC Pro。我正在嘗試檢測事件處理程序中的情況,以便在運行真實代碼之前停止執行... – jacmkno 2014-03-19 18:28:52

回答

0

你可以嘗試使用capture phase,然後調用stopPropagation進去。

this.addEventListener(Event.EXIT_FRAME, function(e:Event):void 
{ 
    e.stopPropagation(); 
}, true); 

注意真正在的addEventListener結束。

+0

感謝您的回答,但不幸的是沒有任何區別。 – 2010-11-05 13:01:04

+0

@ChrisPorter你有沒有找到這個解釋?我正在嘗試完全相同的情況;幾個EXIT_FRAME沒有對應的ENTER_FRAME。謝謝! – Jotakun 2013-10-23 14:06:00