2013-09-05 40 views
1

在舞臺上我有三種動畫片段 很少有靜態影片片段的名字是:mc1; MC2; mc3 ....他們在舞臺上可見 很少靜態movielips「othermc1; othermc2l othermc3 ...和他們有」可見= false「 一個正在舞臺上移動的電影剪輯和他的名字是」滑塊「 我有功能當MC「滑蓋」相交MC1,MC2 ......把可見othermc1其餘之一,othermc2循環as3;函數相交; onEnterFrame

var alreadyHandled:Boolean = false; 

addEventListener(Event.ENTER_FRAME, onEnterFrame); 

function onEnterFrame(e:Event):void 
{ 
    if(mc1.getRect(this).intersects(slider.getRect(this))) 
    { 
     if(!alreadyHandled) 
     { 
      show1(); 
      alreadyHandled = true; 
     } 
    } 
    else 
    { 
     alreadyHandled = false; 
     no1(); 
    } 

function show1():void 
{ 
    othermc1.visible = true; 
} 
function no1():void 
{ 
    othermc2.visible = false; 
} 

我怎樣才能循環使用此代碼? 感謝您的幫助

+0

什麼是你想循環?這是你在文件中的所有代碼嗎? – Scope

+0

循環你的意思是測試所有的影片剪輯(mc1,mc2,...,othermc1,othermc2,..),而不僅僅是mc1? –

回答

1

如果你想通過mc1,mc2,mc3,...創建一個ArrayMovieClip s:

var movieClips:Array = [mc1,mc2,mc3/*,other...*/]; 

然後使用for遍歷數組元素:

for(var i:int=0; i<movieClips.length; i++){ 
    //do some thing with movieClips[i] 
} 

此代碼可以幫助你:

var mc:Array = [mc1,mc2,mc3/*,...*/]; 
var omc:Array = [othermc1,othermc2,othermc3/*,other...*/]; 
addEventListener(Event.ENTER_FRAME, onEnterFrame); 

function onEnterFrame(e:Event):void 
{ 
    for(var i:int=0; i<mc.length; i++) 
     if(mc[i].getRect(this).intersects(slider.getRect(this))) 
      showMovieClip(i); //or omc[i].visible=true; 
     else 
      hideMovieClip(i); //or omc[i].visible=false; 
} 
function showMovieClip(i:int):void 
{ 
    omc[i].visible = true; 
} 
function hideMovieClip(i:int):void 
{ 
    omc[i].visible = false; 
}