2010-02-01 42 views
0

我正在將一箇舊的AS2項目移植到AS3,並遇到問題。我嘗試了一些不同的東西,但沒有成功。使用數組動態添加庫中的兒童

在AS2動態附加一個MC從庫我有時會使用一個數組。該數組將保持鏈接引用,就像這樣;

var mc:String = state_ar[currentState]; 
this.container.attachMovie(mc,mc,this.getNextHighestDepth()); 
targetMC = this.container[mc]; 

我如何在AS3中做到這一點?

回答

2

你會做使用getDefinition()getDefinitionByName()

退房this answer代碼,你的情況聽起來頗爲相似。

注意:唯一的區別是你可能會使用MovieClips,而不是圖像,所以你不需要構造函數中的0,0參數。

1

我不太確定這是你在問什麼,但我會給它一個鏡頭。

//New array to store Movie Clips references  
var myArray:Array = new Array(); 
//Create a movie clip 
var movieClip:MovieClip = new MovieClip(); 
//Add it to the array for reference 
myArray.push(movieClip); 
//Put it on the stage 
this.addChild(movieClip); 

您仍然可以使用數組來存儲對象的引用,並且可以直接引用它們。


在AS3在庫中的影片剪輯將有一個類名,因此,如果您在名爲MYMOVIE庫中有一個MC,你會用它添加在AS3:

var myMovie:MyMovie = new MyMovie(); 
addChild(myMovie); 
+0

對不起, 我沒有解釋自己很好。該數組用於存儲(在AS2中調用的)鏈接。例如 ; 我在我的圖書館有3個不同的影片剪輯,每個都有自己不同的鏈接ID。 我創建一個數組; state_ar = ['link_1','link_2','link_3']; 然後引用數組中的索引; var linkageID:String = state_ar [0], 然後附上電影; attachMovie(linkageID,linkageID,this.getNextHighestDepth())。 – Cam 2010-02-01 01:13:30

+0

As3是面向對象的,所以你通過實例化來創建和添加動畫片段,看看我的編輯代碼。希望有所幫助。 – TripWired 2010-02-01 01:26:54

+0

感謝您的回覆TripWired,但問題指的是別的。 – Cam 2010-02-01 01:33:40

1

答案;

var mc:String = state_ar[currentState]; 
var classReference:Class = getDefinitionByName(mc) as Class; 
var tempMC:Object = new classReference(); 
this.container.addChild(tempMC) 

感謝喬治