2009-03-25 19 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]); 
} 

は、Array 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という配列を使用することを検討する必要があります。