2009-08-30 55 views
0

的想法是訪問MC的與sequ​​antial實例名稱, 例如階段:MC1,MC2,...閃光 - AS3並行埃維爾在AS2

現在,在AS2我會做:這[「mc」+ i] (其中「i」表示1-3之間的數字)

我將如何在as3中執行此類操作?

在此先感謝

+0

示例代碼甚至不使用 「EVAL」。你可以在AS3中運行它而不需要改變任何東西。 – fenomas 2009-09-01 06:54:08

回答

1

如果MC1,MC2,位於您的FLA的最頂層,並且沒有其他剪輯波紋管他們(例如MC1有了深度(指數)1,MC2具有指數2等) 你可以使用getChildAt();

for(var i:int = 1 ; i < 3 ; i++){ 
var clip:MovieClip = MovieClip(getChildAt(i)); 
} 

,如果你不知道的深度管理,僅舉短片(如果他們在舞臺上,給他們實例名稱,如果他們在運行時創建,使用name屬性(mc1.name = 'MC1'))

,並使用getChildByName(),讓他們

for(var i:int = 1 ; i < 3 ; i++){ 
var clip:MovieClip = MovieClip(getChildByName('mc'+i)); 
trace(' got clip named: ' + clip.name); 
} 

我敢肯定有很多resouces如果你只是谷歌AS2 AS3遷移

1

這個[ 「MC」 + 1]的作品爲了我。

我做了一個名爲MC1,MC2和MC3 3個影片剪輯,並將它們放置在x = 100,200,和300

for (var i:int = 1; i <= 3; ++i) { 
    var mymc:MovieClip = this["mc" + i]; 
    trace(mymc + ".x = " + mymc.x) 
} 

打印出

[object MovieClip].x = 100 
[object MovieClip].x = 200 
[object MovieClip].x = 300 
0

this["mc" + i]將工作,如果mc1this對象所屬的類的實例變量。可以使用方括號語法來代替AS3中的點語法(儘管不建議這樣做,因爲它會將編譯器錯誤轉化爲運行時錯誤)。

下面的語句是等價的:

this.mc1.width = 100; 
this["mc1"].width = 100;