當我們在AS3中編寫爲Document類時,變量是否可以動態創建而無需聲明?在DC中創建AS3動態變量
例如,我從庫中導入聲音文件。大約20個聲音文件。 如果代碼是在FLA本身,我們可以分配在像循環:
this["SOUND"+increasingNumber]
但在此的DocumentClass是不工作的,因爲this
指該類這裏沒有舞臺。
任何創建變量的方法?
當我們在AS3中編寫爲Document類時,變量是否可以動態創建而無需聲明?在DC中創建AS3動態變量
例如,我從庫中導入聲音文件。大約20個聲音文件。 如果代碼是在FLA本身,我們可以分配在像循環:
this["SOUND"+increasingNumber]
但在此的DocumentClass是不工作的,因爲this
指該類這裏沒有舞臺。
任何創建變量的方法?
當導入到庫中時,右鍵單擊聲音文件並轉到它的屬性。點擊動作標籤並檢查'導出動作腳本'。給它一個類名,然後你可以在你的文檔類中使用它來實例化該聲音。
如果你把它命名爲Sound1例子:
var sound:Sound = new Sound1();
sound.play();
[編輯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());
}
在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
}
是的。謝謝。這樣可行 。有什麼方法可以創建n個聲道? 。如果我有一個數組爲[「gotRight」,「delete」,「enter」],我想要3個帶有這個名字的三個聲道。 –