0

ロールオーバー、ロールアウト、およびリリース時にアクティブになるこのコードがあります。ロールオーバーとロールアウトの I 機能は機能しますが、リリース機能は機能しません。ループ内の関数に 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がおかしい気がするのですがやり方がわかりません。

何かご意見は?

4

2 に答える 2

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]);
于 2009-03-25T13:06:06.927 に答える
1

url+1に 変更this["url"+i]

これにより、このコードが機能します。ただし、12 個の個別の変数を作成するのではなく、12 個の要素を持つ url という配列を使用することを検討する必要があります。

于 2009-03-25T12:52:06.197 に答える