我試過了一切。數組是非常簡單的,所以我不知道爲什麼這不起作用:陣列將無法使用actionscript 3
var menuList:Array = [menu_bag_mc,menu_chips_mc,menu_coke_mc,menu_cup_mc,menu_deodorant_mc,menu_fork_mc,menu_knife_mc,menu_lighter_mc,menu_milk_mc,menu_pill_mc,menu_rings_mc,menu_shampoo_mc,menu_spoon_mc,menu_straw_mc,menu_toothbrush_mc,menu_trashbag_mc,menu_water_mc];
function captureAllClicks(event:MouseEvent):void
{
trace(menuList.indexOf(event.target));
}
stage.addEventListener(MouseEvent.CLICK, captureAllClicks);
每當我點擊任何舞臺上的項目(全部給上面列出的實例名稱的每一個補間包含一個按鈕的movieclip)我得到-1的痕跡。爲什麼?!
EDIT2
需要做些什麼:
for each (var mc:MovieClip in menuList) mc.addEventListener(MouseEvent.CLICK, createContent);
//right here, i need to make a variable that I can put in the "addchild" so that
//for every one of the list items clicked, it adds a movieclip child with
//the same name (such as menu_bag_mc from above) with "_frame" appended.
var framevar:MovieClip = menuList[i] += "_frame";
function createContent(event:MouseEvent):void {
if(MovieClip(root).currentFrame == 850) {
while(MovieClip(root).numChildren > 1)
{
MovieClip(root).removeChild(MovieClip(root).getChildAt(MovieClip(root).numChildren - 1));
}
MovieClip(root).addChild (framevar);
MovieClip(root).addChild (closeBtn);
}
else {
MovieClip(root).addChild (framevar);
MovieClip(root).addChild (closeBtn);
MovieClip(root).gotoAndPlay(806);
}
}
如果我不能做一個變量,有沒有點整「爲每個」你們放在一起聲明...不是真的任何指向一個數組,因爲我仍然需要爲每個單獨的代碼創建20行代碼。如果你不能從數組中創建變量,有一個數組有什麼意義?
這很好。你能解釋一下mouseChildren嗎? 我將在這些列表項目中的每一個上運行一個函數,那麼您認爲這樣做會更好嗎? – steve 2010-05-25 14:50:02
我編輯了上面的代碼,顯示了我已經對所有項目執行此功能的新代碼,並且我得到了正確的參數。你列出的「每個」都更好嗎?此外,有沒有辦法獲得每個列表項的實際名稱?所以我可以用它作爲新函數中的變量... – steve 2010-05-25 14:57:34
詳細說明...說函數中的參數是addChild(menu_bag_mc_frame);'有沒有辦法(如menuList [i])來訪問一個變量並追加「_frame」?那麼在每個函數上,它會從庫中加載一個新項目? – steve 2010-05-25 15:00:34