這次筆記來寫寫如何從元件庫呼叫mc 到舞台上
以往的做法就是很簡單.....F11打開元件庫,從元件庫中拖曳到舞台上來
這次的做法是用語法來控制與定位然後再利用該框架來當作addChild的目標位置
首先按照以下的步驟 F11打開元件庫
1. 對著你想要呼叫的mc 點右鍵>屬性>將匯出給actionSrcrip使用的框框打勾
類別就是自己呼叫定義的名稱(一定要英文),可以自訂或是預設就是原本製作的mc名稱
這樣第一步驟就算完成了
2.在來就是要把他呼叫到場景上了
var _mc:pic_mc=new pic_mc(); //宣告_mc 呼叫pic_mc 講白一點就是 把pic_mc呼叫出來並給它名字叫做_mc
this.addChild(_mc) //把_mc addChild到場景上 講白一點就是把_mc透過addChild 抓到場景上
_mc.x=300; //_mc 的X做標位於300
_mc.y=300; //_mc 的Y做標位於300
這樣放在元件庫裡的pic_mc 就會被我們放置在場景x y 300的位置上了
------------------------------------------------------------------進階用法
為什麼要這樣做呢??今天假如你要製作落葉有30片葉子在飄動 只要透過這種方式再搭配for迴圈就可以快速呼叫囉
舉例
for (var i:int=0; i<120; i++) {
var _mc:Leafe=new Leafe();
this.addChild(_mc);
_mc.x=Math.random()*800;
_mc.y=Math.random()*460;
}
這樣輸出後 就會產生120片葉子 在場景上並且隨機x y 位置做擺放了
-----------------------------------------------------------------進階用法二
今天假如我希望把addChild近來的圖片以一字型排開並且每個間隔10該怎麼做呢
for(var i:uint = 0; i<5;i++){
var _mc:ITEM_MC=new ITEM_MC();
this.addChild(_mc);
_mc.x=300 + (i*(_mc.width+10));
_mc.y=300;
}
這樣一來 被addChild近來的5個_mc 就會以x y 300起頭向右邊延伸開來並間隔10了
這樣的效果可以在場景建立5個_mc 來提供給外部的pic load近來
------------------------------------------------------------------
在AS3任何物件要放到場景上 或是 load圖片 swf 等等....都要透過addChild 來放置在場景上
可以把addChild 想成是一個容器吧或是另一種說法"load進來的媒介" 雖然不太正確 但是對美術人員來說卻很容易了解
以下感謝fexix網友提供的好方法
(很抱歉我押錯把文章刪除了):
我可以提供一個方法可以不用 宣告該類別名稱
如下行 var _mc:ITEM_MC=new ITEM_MC();
只要呼叫他的類別名稱 就可以從元件庫 把該類別名字 的元件 建立在場上 或是其他目標
//*使用格式 /
LoadLibraryObject("元件類別名字"); */
LoadLibraryObject("ITEM_MC"); //
例 function LoadLibraryObject(loadName:String):Void{
var ClassDisName : Class = getDefinitionByName(loadName) as Class; //目前是指定 DisplayObject 格式
var _DisplayMC : DisplayObject = new ClassDisName() as DisplayObject;
this.addCHild( _DisplayMC ); }