ex:
var mc:MovieClip=new mc1();
stage.addChild(mc);
假設我有mc1~mc3,3個MovieClip,要隨機產生一個,所以我的程式碼如下:
var ranNum:int=Math.floor(Math.random()*3)+1;//得到1~3間的亂數
var mc:MovieClip;
switch(ranNum){
case 1:
mc=new mc1();
break;
case 2:
mc=new mc2();
break;
default :
mc=new mc3();
}
stage.addChild(mc);
那…如果我有10個呢? case寫10個判斷? 100個呢?ctrl+c、ctrl+v按個沒完沒了?
所以~找到了一個getDefinitionByName()的函數。
修改的程式碼如下:
var ranNum:int=Math.floor(Math.random()*3)+1;//得到1~3間的亂數
var tempClass=getDefinitionByName("mc"+ranNum);
var mc:MovieClip=new tempClass();
stage.addChild(mc);
簡潔多了吧~
範例:
http://www.box.net/shared/vrj4y61y9i