2012-10-23 107 views
1

當我們在AS3中編寫爲Document類時,變量是否可以動態創建而無需聲明?在DC中創建AS3動態變量

例如,我從庫中導入聲音文件。大約20個聲音文件。 如果代碼是在FLA本身,我們可以分配在像循環:

this["SOUND"+increasingNumber] 

但在此的DocumentClass是不工作的,因爲this指該類這裏沒有舞臺。

任何創建變量的方法?

回答

1

當導入到庫中時,右鍵單擊聲音文件並轉到它的屬性。點擊動作標籤並檢查'導出動作腳本'。給它一個類名,然後你可以在你的文檔類中使用它來實例化該聲音。

如果你把它命名爲Sound1例子:

var sound:Sound = new Sound1(); 
sound.play(); 

more detailed info here

[編輯loxxy的回覆]上面顯示瞭如何創建文檔類的變量。 要動態創建的所有聲音變量,我建議你使用一個數組,像這樣:

假設您在庫Sound1例子命名所有的聲音,以Sound20

import flash.utils.getDefinitionByName; 

var sounds:Array = []; 
var soundClass:Class; 
for(var i:int = 1; i<21; i++){ 
soundClass = getDefinitionByName("Sound" + i) as Class; 
sounds.push(new soundClass()); 
} 
+0

是的。謝謝。這樣可行 。有什麼方法可以創建n個聲道? 。如果我有一個數組爲[「gotRight」,「delete」,「enter」],我想要3個帶有這個名字的三個聲道。 –

1

在FLA當你添加代碼,你將它添加到一個framescript中。

framescript是以規律間隔(幀速率)重複的代碼塊。

你可以使用addFrameScript like this來實現。

然而,更好的方法是不混合framescript &常規類方法。

您可以從代碼中訪問'stage',但只能在adds_to_stage事件之後進行確認。

addEventListener(Event.ADDED_TO_STAGE, init); 

function init(e:Event):void{ 

    // Access 'stage' here 

}