すべて似たような名前のムービー クリップを多数作成し、他のイベントの後に次のような文字列を作成しました。
var clipName = "barLeft42"
これは、「thing」と呼ばれる別のムービー クリップ内に保持されます。
以下を使用して参照を取得できました。
var movieClip = Eval( "_root.thing." + clipName )
しかし、それは気分が悪いです - より良い方法はありますか?
すべて似たような名前のムービー クリップを多数作成し、他のイベントの後に次のような文字列を作成しました。
var clipName = "barLeft42"
これは、「thing」と呼ばれる別のムービー クリップ内に保持されます。
以下を使用して参照を取得できました。
var movieClip = Eval( "_root.thing." + clipName )
しかし、それは気分が悪いです - より良い方法はありますか?
ムービー クリップは actionscript のコレクションです (ほとんどの場合と同様に、javascript と同様に、すべてが基本的にキーと値のペアです)。次のようなキー名の角括弧と文字列を使用して、コレクションにインデックスを付けることができます。
_root.thing[ "barLeft42" ]
それはあなたのためにトリックをするはずです...
ブラケットを使用して変数を含めることができます...したがって、それらすべてをループしたい場合は、次のようにできます。
for (var i=0; i<99; i++) {
var clipName = _root.thing["barLeft"+i];
}
deprecated の使用を避けるより良い方法は、eval
角かっこでインデックスを作成することです。
var movieClip = _root.thing[ "barLeft42" ]
しかし、最善の方法は、作成したクリップへの参照を保持し、名前ではなく参照によってアクセスすることです。
var movieClipArray = new Array();
for (var i=0; i<45; i++) {
var mc = _root.thing.createEmptyMovieClip( "barLeft"+i, i );
// ...
movieClipArray.push( mc );
}
// ...
var movieClip = movieClipArray[ 42 ];