[問題] 如何方便的 new 新物件 ???

看板Flash作者 (呦厚厚)時間15年前 (2010/07/11 01:05), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/3 (看更多)
就是阿 我會從 資料庫 那得到一個 Array 而那個 Array 裡面是很多筆 String 而每筆 String 都表示要 new 不同的物件 而目前的作法就是 var _array:Array=[ 很多筆String ]; for( var i in _array ) { switch(_array[i]) { case('aaa'): { var _mc:MovieClip = new aaa(); } case('bbb'): { var _mc:MovieClip = new bbb(); } case('ccc'): { var _mc:MovieClip = new ccc(); } . . . . } } 而因為物件的種類有上百種 那我的 case() 就要把上百種 這樣很沒效率 而且我已經特地把 String 的內容 設定跟物件的名稱一樣了 有辦法直接用 String 的名稱來 new 物件嗎 ??? 例如像這樣 var _array:Array = [ 很多筆String ]; for( var i in _array ) { var _mc:MovieClip = new _array[i](); } 的辦法解決嗎 ??? 另外就是假如要像上面的方法那樣做一大串的 case 想請問用 switch 的效能比較好 ??? 還是用 if else 的效能比較好 ??? 謝謝了 ^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.155.241

07/11 01:10, , 1F
好像有看過new MovieClip(xxxxxx(String))的寫法
07/11 01:10, 1F

07/11 01:10, , 2F
new Class(getDefinitionByName(i))();
07/11 01:10, 2F

07/11 01:10, , 3F
i為qualified class name
07/11 01:10, 3F
文章代碼(AID): #1CEAXIVE (Flash)
討論串 (同標題文章)
文章代碼(AID): #1CEAXIVE (Flash)