這次筆記來寫寫如何從元件庫呼叫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 ); }

挺有用的~做遊戲的時候應該很需要吧~你寫得控制load進來的swf那個真的很重要~很少看到書寫~很感謝在這裡看到了你寫得~~很讚喔~
你好,我是自己看書學action script的新手, 想請問一下,按下元件點屬性指定實體名稱, 跟勾選匯出給Action Script使用所取的類別名字, 這兩種有什麼不同? 如果是要用action script控制,應該要設定哪一個呀? (我看到的例子,有些是指定實體名稱、而有些是要勾選匯出給Action Script使用)
實體名稱是指舞台上的物件名稱 而類別比較像是在元件庫裏面的檔案名稱 有了檔案名稱就可以透過語法從元件庫拉出來舞台 (^_^"我也是as新手啦互相討論囉
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 ); }
GooD!!
h2jnxlJbT奢侈品仿牌,保固說到做到,誠信經營,,時尚高幫女鞋,采用上等超軟小牛皮,內裏豬皮,電秀海綿,訂購請加賴:kk2023,貨到付款,黑貓宅配。 d7rgbBonhmJPFI