這次筆記來寫寫如何從元件庫呼叫mc 到舞台上

以往的做法就是很簡單.....F11打開元件庫,從元件庫中拖曳到舞台上來

這次的做法是用語法來控制與定位然後再利用該框架來當作addChild的目標位置

首先按照以下的步驟 F11打開元件庫

1. 對著你想要呼叫的mc 點右鍵>屬性>將匯出給actionSrcrip使用的框框打勾

類別就是自己呼叫定義的名稱(一定要英文),可以自訂或是預設就是原本製作的mc名稱

addChild.jpg

 

這樣第一步驟就算完成了

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 ); }


 

 

JEFF 發表在 痞客邦 留言(5) 人氣()