想要new單一個的話,是使用new page1();
不過現在我有許多名字差不多的元件
想要用迴圈動態建立這些元件
應該要怎麼做呢?
解決辦法:
先用getDefinitionByName取得Class
在new這個Class
import flash.utils.getDefinitionByName; //必須import
var declarePage:Class = getDefinitionByName("page" + index) as Class;
var _mc:MovieClip = new declarePage();
其他資訊
不過不知道怎麼用 字串 => 呼叫建構式
不知道getDefinitionByName()是不是你要的
像是要建構一個Sprite
可以寫
var c:Class = getDefinitionByName("flash.display.Sprite") as Class;
var s:Sprite = new c();
getDefinitionByName()裡面可以傳入你的class字串
前提是該class有被編譯到SWF裡面
確保class有被編譯的最簡單方式
就是直接在隨便一個地方寫一個你的class reference
//某些程式碼
idv.cjcat.display.Console;
//另外一些程式碼
↑這樣就可以確保idv.cjcat.display.Console這個class會被編譯
之後就可以用getDefinitionByName("idv.cjcat.display.Console")來抓constructor
By cjcat on Ptt-flash
延伸資料
9RIA天地會 - 關於 getDefinitionByName 的問題
JUST DO IT !! - [AS3] getDefinitionByName函數
神魂顛倒 - 如何在AS3以不同的但有順序名稱MovieClip建立物件起來??
沒有留言:
張貼留言