0

私はあなたが画像を添付することを可能にするムービークリップ名を通過するループを作成しようとしています。

これまでの私のコードは次のとおりです。

private var mc:MovieClip;
private var instance:String;

public function showFriends(e:Event)
{
    var str:String = e.target.data;
    var num:uint;
    var i:Number;
    var rex:RegExp = /[\s\r\n]*/gim;
    var friends_array:Array = [];

    num = friends_array.length;
    friends_array = str.split(',');

       for(i=0; i<num; i++){
           var fri_id = friends_array[i].replace(rex,'');

           mc = "P"+i; // THIS IS THE PROBLEM LINE

           instance = 'DP';// Sets the Instance Name
           load_DP(fri_id);
       }
}

ループ(var i)からMovieClipの名前に番号を追加する方法を見つけようとしています。

現在、このコードは機能せず、エラーが発生します。

文字列型の値を無関係な型flash.display:MovieClipに暗黙的に強制します。

私が解決したのは、MCとして文字列名を使用しているために機能しないことを意味します。

私も変更した場合:

mc = P1; // with no quotes

これは機能しますが、明らかに1つのMCのみを使用します。

あなたが助けることができるならば、私に知らせてください。

ありがとうございました。

エリ

4

2 に答える 2

1

DisplayObjectContainerのgetChildByNameメソッドを確認してください。showFriendsがDocumentクラスにある場合は、\として機能するはずです。

mc = this.getChildByName("P" + i);

これは機能するはずです-*しかし*-これは比較的遅く、良い習慣ではありません。これらのMovieClipsをステージに動的に(ステージにドラッグするのではなく、コードで)追加して、既にそれらへの参照があるようにすることをお勧めします。

于 2012-04-19T17:57:55.653 に答える
1

アクセスしようとしているすべてのMovieClipインスタンスが現在のコンポーネントの子である場合は、次の表記を使用できます。

mc = this["P" + i];

それらがすべて他のコンポーネントの子である場合は、次のようにアクセスすることもできます...

mc = myComponent["P" + i];
于 2012-04-19T17:59:32.330 に答える