2011-06-10 61 views
0

我想創建多個addEventListener,但我不知道如何。正如你可以在下面的代碼中看到的 - 我不明白我需要寫什麼寫在哪裏????????以產生多種功能(如onClick1,onClick2,onClick3等...)as3 |試圖添加多個「onClick」事件 - 我該怎麼做?

for (i=0; i < numberOfResults; i++) 
{ 
    videoResults[i] = new Object(); 
    videoResults[i].movie = new MovieClip(); 
    stage.addChild(videoResults[i].movie); 
    videoResults[i].movie.addEventListener("click",?????????); 
    function ?????????(event) 
    { 

    } 

} 

我需要做什麼?

+0

在這種情況下,我想你應該解釋一下你的最終目標是什麼(即爲什麼。你是否想要創建所有這些監聽器函數),以便我們可以解釋實現該目標的更好方法。在循環內創建函數是個不錯的主意,所以我們需要更高層次的理解你正在嘗試做什麼。 – jhocking 2011-06-10 17:34:08

回答

2

你不想在for循環中寫一個函數。做這樣的事情:

for (i=0; i < numberOfResults; i++) 
{ 
    videoResults[i] = new Object(); 
    videoResults[i].movie = new MovieClip(); 
    stage.addChild(videoResults[i].movie); 
    videoResults[i].movie.addEventListener(MouseEvent.MOUSE_DOWN, myMadeUpCallbackEvent);  
} 


function myMadeUpCallbackEvent(evt:MouseEvent):void 
{ 
    //In order to be able to tell which clip has called this callback, you can compare the properties of evt.currentTarget. The evt is the Event object cast into a reference. evt.currentTarget is the target or object that called the event. So you can do something like this: 
    trace(MovieClip(evt.currentTarget).name); to get the unique name of the caller 
} 

您可能感興趣的閃存免費視頻教程網站:

http://gotoandlearn.com/

+0

非常感謝!但我仍然不明白如何連接點。假設我點擊第N個影片剪輯 - 我想添加以下行:videoResults [N] .isItclicked = true;我需要做什麼,我在這裏錯過了什麼? – Alon 2011-06-10 17:22:18

+0

這個問題可能需要一個複雜的答案和很多討論,這將導致遠離原始問題主題。我認爲最好的是給我提供一個鏈接,指導如何在Flash AS3中創建帶有播放列表的視頻播放器。任何新問題都可以作爲獨立的問題發佈,只是爲了保持問題和答案的清晰。 http://www.republicofcode.com/tutorials/flash/as3xmlvideoplayer/ – 2011-06-10 17:22:24

+0

使用字典而不是數組來存儲點擊結果。字典可以使用任何對象(例如,MovieClip)作爲關鍵字,而不僅僅是數字。 – jhocking 2011-06-10 17:36:50