2014-11-13 4 views
0

나는 모두 동일한 rollOver/rollOut 기능을 공유하는 5 개의 버튼 mcs가 있습니다.AS2 다중 버튼의 배열 동일한 작업 또는 개별 작업 공유

TweenLite.to(tips_mc.tip1, 1, { _alpha:100 }); 

내가 배열의 롤오버 각 MC에 각각의 호출을 추가 할 수있을 것입니다 방법 : 그러나, 그들은 또한 각각의 예를 들어 MC1이 아니라 마우스 오버시 다음을 수행 할에 대한 롤오버에 특정 작업을 게다가? 다음과 같이

내 배열은 다음과 같습니다

var btnArray:Array = new Array(mc1, mc2, mc3, mc4, mc5); 
for (i=0; i<btnArray.length; i++) { 
///initial state/// 
btnArray[i].enabled = true; 
btnArray[i].id = i; 
btnArray[i].onRollOver = function() { 
    this.gotoAndPlay("over"); 
}; 
btnArray[i].onRollOut = function() { 
    this.gotoAndPlay("out"); 
}; 

가}

어떤 도움은 매우

감사! 감사!

답변

0

당신은 다른 functions에 당신의 행동을 쓰고, 그런 그들을 호출 할 수 있습니다

var functionsArray:Array /* of Function */ = [f1, f2, f3, f4, f5]; 
var btnArray:Array /* of MovieClip */ = [mc1, mc2, mc3, mc4, mc5]; 
var l:Number = btnArray.length; 

for (var i:Number = 0; i < l; i++) 
{ 
    btnArray[i].enabled = true; 
    btnArray[i].id = i; 
    btnArray[i].onRollOver = function() 
    { 
     functionsArray[this.id](); // you invoke your function here 
     this.gotoAndPlay("over"); 
    } 
    btnArray[i].onRollOut = function() 
    { 
     this.gotoAndPlay("out"); 
    } 
} 

function f1():Void {trace("I'm the function 1");} 
function f2():Void {trace("I'm the function 2");} 
function f3():Void {trace("I'm the function 3");} 
function f4():Void {trace("I'm the function 4");} 
function f5():Void {trace("I'm the function 5");} 
+0

감사 HelloFlash, 미안 해요,하지만 난 예를 들어 그 F1을 위해 얼마나 나는 아직도 이해되지 않는 경우에만 해고 mc1이 굴림 등 ... 설명해 주시겠습니까? 죄송합니다 - 이전에는 배열을 사용하지 않았습니다. 감사! – user2163224

+0

user2163224 - 귀하의 질문을 이해할 수 없습니다. 코드를 적용하면됩니다. mc1을 초과하면 f1이 호출됩니다. – helloflash

+0

user2163224 - btnArray [0]이 mc1을 초과하면 f1 인 functionsArray [0]이 호출됩니다. – helloflash