2010-07-27 74 views
0

問題:什麼是var animals的正面:Pets = new Pets(); ??清除類(new ClassName())

腳本:

package { 

    import flash.events.MouseEvent; 

    public class Pets { 

    public function Pets() { 
     // constructor code 
     my_btn.addEventListener(MouseEvent.CLICK, onClick) 
    } 

    private function onClick(e:MouseEvent) { 
     trace(Start); 
    } 
    } 
} 

問題:從另一個類 當我打電話寵物類(新寵物()); ,它的運行的類和的addEventListener工作正常,但:

第一次:跟蹤結果

開始

第二回:跟蹤結果

開始
開始

第三次:跟蹤結果

開始
開始
開始

除了....

感謝lotttt

+0

我看不出你發佈的代碼有什麼問題,或許問題在於你沒有發佈的代碼?實際上,我看到一些小問題:在addEventListener行後面需要分號,並且Start應該在trace語句中加引號,但我認爲這不一定會導致您的問題。 – 2010-07-27 15:20:57

回答

2

假設my_btn是一個實例舞臺上的一個按鈕,每當你創建一個新的實例Pets你被添加將新的MouseEvent.CLICK事件處理程序添加到同一個my_btn實例。

有幾種不同的方法可以解決這個問題,但這取決於你想如何工作。如果您只想要一個my_btn實例存在,則在Pets類之外添加MouseEvent.CLICK處理程序(並且只添加一次)。如果每個Pets實例都需要它自己的按鈕,那麼您需要爲每個Pets實例實例化一個新實例my_btn(目前看起來您在所有Pets實例中引用了同一個實例my_btn)。