0

文字列の配列を、ステージ上に既に存在する MovieClip 名に変換しようとしています。

これは私がやっている方法ですが、うまくいかないようです。ステージには 11 のムービークリップがあります。インスタンス名は「bmc1」、「bmc2」などです。これらの BMC ムービー クリップはすべて、「bars_mc」というクリップ内にあります。これが私が今コーディングしている方法です。

var myBtnArray = ['bmc1', 'bmc2', 'bmc3', 'bmc4', 'bmc5', 'bmc6', 'bmc7', 'bmc8', 'bmc9', 'bmc10', 'bmc11'];
for each (var btn in myBtnArray){
    bars_mc.MovieClip(getChildByName(btn)).gotoAndPlay('open');
}

これは動作しません。私はやってみました:

this[btn]

それもうまくいきませんでした。これは AS 3.0 でコーディングされています。

文字列を MOvieclips に変換する正しい方法を見つけるのを手伝ってくれる人が必要です。

あなたの助けに感謝します。

4

2 に答える 2

0

次のように、MovieClips を配列に格納するだけです。

var myBtnArray = [bars_mc.bmc1, bars_mc.bmc2, bars_mc.bmc3, bars_mc.bmc4, bars_mc.bmc5, bars_mc.bmc6, bars_mc.bmc7, bars_mc.bmc8, bars_mc.bmc9, bars_mc.bmc10, bars_mc.bmc11];
for each (var btn in myBtnArray){
    btn.gotoAndPlay('open');
}

さらに良いことに、その配列にあるボタンがbars_mcの唯一の子である場合、次のような配列の代わりにbars_mcの表示リストを使用しないでください:

for (var index:int = 0;index < bars_mc.numChildren;index++)
{
   var btn:MovieClip = bars_mc.getChildAt(index) as MovieClip;
   btn.gotoAndPlay('open');
}

ただし、現在選択しているルートに進みたい場合は、次のようにするだけです。

var myBtnArray = ['bmc1', 'bmc2', 'bmc3', 'bmc4', 'bmc5', 'bmc6', 'bmc7', 'bmc8', 'bmc9', 'bmc10', 'bmc11'];
for each (var btn:String in myBtnArray) {
    MovieClip(bars_mc[btn]).gotoAndPlay('open');
}
于 2013-04-16T16:26:24.607 に答える