2010-05-25 126 views
0

我目前正試圖通過一個數組和一個循環做出動態菜單。所以當有人點擊數組中的第一個項目「menu_bag_mc」時,它將鏈接到內容「menu_bag_mc_frame」(或某個名字,這個名字將是這個數組唯一的),這是另一個將加載的動畫片段。下面是我的代碼至今:從數組動作創建變量3

//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. 
//I tried the next line out, but it doesn't really work. 
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)); 
    } 
//Here is where the variable would go, to add a child directly related 
//to whichever array item was clicked (here, "framevar") 
MovieClip(root).addChild (framevar); 
MovieClip(root).addChild (closeBtn); 
} 
else { 
MovieClip(root).addChild (framevar); 
MovieClip(root).addChild (closeBtn); 
MovieClip(root).gotoAndPlay(806); 
} 
} 

有沒有辦法從數組做出了獨特的可變(不管它是什麼),這樣我可以命名後,一個movieclip所以它會加載新的影片剪輯?謝謝

回答

0

什麼是你的「menuList」數組組成?字符串?參考影片剪輯?或者是其他東西?我會認爲它是一個字符串數組。

請記住,addChild方法需要一個Class的實例,而不是一個Class的名稱。

我不知道我明白你在做什麼,但我假設你正在試圖創建一個你不知道名稱的類的實例(你需要根據什麼生成名稱按鈕被點擊)。我可能會這樣做:

var menuList:Array = ["foo1", "foo2", "foo3"]; 
var className:String = menuList[i] + "_frame"; 

var frameVarClass:Class = flash.utils.getDefinitionByName(className) as Class; 
var framevar:MovieClip = new frameVarClass() as MovieClip; 
MovieClip(root).addChild(framevar); 

這是做什麼是生成您需要的類的名稱,並將其存儲在className變量。然後給名稱getDefinitionByName返回一個類。然後,我們創建該類的實例(framevar)並將其轉換爲MovieClip。然後,我們將這個新的MovieClip添加到根。

+0

這些是我得到的以下錯誤: 1120:訪問未定義的屬性i。/1118:將靜態類型的對象隱式強制爲可能無關類型的類。這是指第三行代碼,frameVarClass – steve 2010-05-26 03:30:13

+0

我認爲很明顯,menuList引用MovieClips,因爲我說一個示例項目是「menu_bag_mc」,並說當你點擊每個數組項時,它應該鏈接到一個「movieclip這將加載。「不過,下次我會更具體。 – steve 2010-05-26 03:40:07

+0

我剛更新了那一行。它現在應該工作。我只是想知道menuList包含什麼類型,因爲你說menuList [i] + =「_frame」。您無法將字符串添加到MovieClip。 – 2010-05-26 04:40:09