跳到主要內容

ActionScript3.0 setChildIndex與getChildbyName


for (var i:int = 0; i < 4; i++)
{
 var _mc:MovieClip = new ItemMC();      
 _mc.name = "item"+i;
 this.addChild(_mc);
 this.getChildByName("item"+i).gotoAndStop(i*20+1);
} 


  • 我們宣告一個名叫做_mc的影片片段,使用自製類別(也是一個影片片段,這影片片段中有四個部分,使用程式去控制每個name停在指定的影格)。
  • 這裡用for迴圈去讓他跑個四次,所以最後會產出四個不同的_mc.name,分別是item0~item3。
  • 在倒數第二行的地方用this是因為上面addChild時是放在this這個空間裡面,所以我們要getChildByName的時候就要在this裡面找。而我在這裡做的事情是找到指定的名子,並停在我想要他停在的影格。其實這四個MC是同一個,

 
if(trigger_.hitTestObject(this.getChildByName("item0")))
{
 this.getChildByName("item0").gotoAndPlay(10);
 this.setChildIndex(getChildByName("item0"),3);
 this.setChildIndex(getChildByName("item1"),2);
 this.setChildIndex(getChildByName("item2"),1);
 this.setChildIndex(getChildByName("item3"),0);
}

上面這個是說假如item0碰到trigger_影片片段,就會將舞台裡面的四個item重新排列他的圖層,從0~3,所以意思是item0跑到最上層。而改變圖層的方法()就是:setChildIndex(影片片段,圖層位置)。還算好用。





留言