2009-03-25 6 views
0

롤오버, 롤아웃 및 릴리스시 활성화되는이 코드가 있습니다. 롤오버 및 롤아웃 작업을위한 기능이지만 릴리스 기능은 작동하지 않습니다. 루프 내의 함수에 url을 가진 문자열을 전달하려고합니다. 루프가 작동하도록 문자열을 전달하십시오.

var url1:String = "http://www.google.com"; 
var url2:String = "http://www.google.com"; 
var url3:String = "http://www.google.com"; 
var url4:String = "http://www.google.com"; 
var url5:String = "http://www.google.com"; 
var url6:String = "http://www.google.com"; 
var url7:String = "http://www.google.com"; 
var url8:String = "http://www.google.com"; 
var url9:String = "http://www.google.com"; 
var url10:String = "http://www.google.com"; 
var url11:String = "http://www.google.com"; 
var url12:String = "http://www.google.com"; 


function SetMouseAction(buttonMC, arrowMC, dynamicTF, linkURL):Void { 
    trace(linkURL); 
    buttonMC.colorText = dynamicTF; 
    buttonMC.onRollOver = function() { 
     TweenLite.to(arrowMC,0.5,{_x:"2", _alpha:50, ease:Back.easeOut}); 
     this.colorText.textColor = 0x7cb0b7; 
    }; 
    buttonMC.onRollOut = function() { 
     TweenLite.to(arrowMC,0.5,{_x:37, _alpha:100, ease:Back.easeOut}); 
     this.colorText.textColor = 0xffffff; 
    }; 
    buttonMC.onRelease = function() { 
     if (linkURL) { 
      getURL(linkURL); 
     } 
    }; 
} 

for (var i:Number = 1; i<=12; i++) { 
    SetMouseAction(this["link"+i],this["arrow"+i],this["text"+i],url+1); 
} 

나는 for 루프에서 URL + 1 잘못 강한 느낌을 가지고,하지만 난 그것을하는 방법을 모르겠어요.

의견이 있으십니까? 즉,이 코드가 작동거야 url+1

this["url"+i]

답변

1
var urls:Array = new Array(); 
urls.push("http://link1"); 
... 
urls.push("http://link12"); 

function SetMouseAction(buttonMC, arrowMC, dynamicTF, linkURL):Void { 
... 
} 

for (var i:Number = 1; i<=12; i++) { 
    SetMouseAction(this["link"+i],this["arrow"+i],this["text"+i],urls[i]); 
} 

배열 URL에 12 개 이상의 요소가 있는지 확인하십시오. 그렇지 않으면 인덱스 범위를 벗어난 오류가 발생합니다.

나중에 편집 : 당신은 ","단지 같은 구분 기호를 사용 FlashVars를에서 URL을 추출하고 모든 URL 문자열을 정의과 같이해야하는 경우 : urlVars=url1,url2,url3,...,url12

그런 다음을 추출하기 위해 URL을 입력하고 배열을 밀어 넣으면 다음과 같이 split 함수를 사용합니다.

var urls:Array = new Array(); 
for (var i=0; i<urlVars.split(",").length; i++) urls.push(urlVars.split(",")[i]); 
+0

문제는 swfObject를 사용하여 FlashVars로 URL을 전달할 예정이라는 것입니다. 내가 어떻게 그 일을 할 수 있을지에 대한 생각? –

+0

질문에 맞도록 답장을 편집했습니다. 위를 확인하십시오. – evilpenguin

+0

나는 그것을 작동시킬 수 없다. 내 코드를 살펴볼 수 있습니까? HTML : http://pastebin.com/m50660ada Actionscript : http://pastebin.com/m1e0c177 –

1

변경합니다. 그러나 실제로 12 개의 개별 변수를 만드는 대신 12 개의 요소가있는 url이라는 배열을 사용하는 것을 고려해야합니다.