1

すべて似たような名前のムービー クリップを多数作成し、他のイベントの後に次のような文字列を作成しました。

var clipName = "barLeft42"

これは、「thing」と呼ばれる別のムービー クリップ内に保持されます。

以下を使用して参照を取得できました。

var movieClip = Eval( "_root.thing." + clipName )

しかし、それは気分が悪いです - より良い方法はありますか?

4

3 に答える 3

4

ムービー クリップは actionscript のコレクションです (ほとんどの場合と同様に、javascript と同様に、すべてが基本的にキーと値のペアです)。次のようなキー名の角括弧と文字列を使用して、コレクションにインデックスを付けることができます。

_root.thing[ "barLeft42" ]

それはあなたのためにトリックをするはずです...

于 2008-09-23T21:27:17.830 に答える
0

ブラケットを使用して変数を含めることができます...したがって、それらすべてをループしたい場合は、次のようにできます。

for (var i=0; i<99; i++) {
  var clipName = _root.thing["barLeft"+i];
}
于 2008-09-25T14:09:47.740 に答える
0

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 ];
于 2008-09-24T03:38:54.990 に答える