2010-12-13 94 views
0

我有以下功能:傳遞參數與事件偵聽

private function createContent(slideData:Object):void 
    { 
    transitions = new Transitions(); 
    if (slide){ 
    transitions.applyTransition(slide); 
    transitions.addEventListener(Transitions.TRANSITION_COMPLETE, completeHandler); 

    } 
    slide = new Slide(slideData); 
    addChild(slide); 
    transitions.applyTransition(slide); 
    } 
    private function completeHandler(e:Event):void{ 
    removeChild(slide); 
    } 

我派遣的第一功能的事件,當談到在completeHandler我想刪除從第一功能的幻燈片,但它不是認可。我怎樣才能傳遞與eventlistener的幻燈片,所以我可以刪除它在completeHandler?(我有幻燈片的幾個實例,所以我必須通過它有正確的實例)。 任何人都可以幫助我?

+5

http://stackoverflow.com/a/13488640 – 2012-11-23 09:38:10

回答

0

如果您願意,可以使用幻燈片的name屬性。

(雖然沒有描述如何&,其中滑動實際上宣告 - 精靈,MC等)

使用name屬性:

設置幻燈片爲slide.name = "instanceName"(在你的第一個功能)

獲取幻燈片作爲getChildByName("instanceName")(在你的第二個功能)


另外,您還可以:

  • 設置幻燈片作爲類成員,通過 的 類中的所有功能進行訪問。
  • 將每張幻燈片的參考添加到 一個數組可用作類 成員的所有功能。
4

下面是將幻燈片傳遞給事件偵聽器的幾種方法。

  • 1 /作爲事件

    //Assuming that: 
    // 1/ you create a custom Event class that takes two parameters 
    // type: String 
    // slide:Slide 
    // 2/ that you have assigned the slide object to a variable in the 
    // applyTransition method , which you can then assign to the event 
    transitions.dispatchEvent(new TransitionEvent( 
              Transitions.TRANSITION_COMPLETE , slide)); 
    
  • 2 /的屬性作爲調度

    //Assuming that: 
    // you assign the slide object to a variable in the 
    // applyTransition method 
    private function completeHandler(e:Event):void{ 
        var target:Transitions = event.currentTarget as Transitions; 
        removeChild(target.slide); 
    } 
    
0

如果變量不是動態的,你能的屬性可能使用匿名函數來傳遞變量。

transitions.addEventListener(Transitions.TRANSITION_COMPLETE, function (evt:Event) { 
    completeHandler(evt, variable1, variable2); 
}); 

function completeHandler(evt, catch1, catch2) { 
    //do stuff 
}