的想法是訪問MC的與sequantial實例名稱, 例如階段:MC1,MC2,...閃光 - AS3並行埃維爾在AS2
現在,在AS2我會做:這[「mc」+ i] (其中「i」表示1-3之間的數字)
我將如何在as3中執行此類操作?
在此先感謝
的想法是訪問MC的與sequantial實例名稱, 例如階段:MC1,MC2,...閃光 - AS3並行埃維爾在AS2
現在,在AS2我會做:這[「mc」+ i] (其中「i」表示1-3之間的數字)
我將如何在as3中執行此類操作?
在此先感謝
如果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遷移
這不是所以極其簡單了,因爲在AS2 ......你必須使用DisplayObjectContainer::getChildByName
,所以像
好運氣,然後...;)
這個[ 「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
this["mc" + i]
將工作,如果mc1
是this
對象所屬的類的實例變量。可以使用方括號語法來代替AS3中的點語法(儘管不建議這樣做,因爲它會將編譯器錯誤轉化爲運行時錯誤)。
下面的語句是等價的:
this.mc1.width = 100;
this["mc1"].width = 100;
示例代碼甚至不使用 「EVAL」。你可以在AS3中運行它而不需要改變任何東西。 – fenomas 2009-09-01 06:54:08