0

そのため、ステージに追加したライブラリにムービークリップを提供しました。これにはより多くのコンポーネントが含まれており、次を使用してこれらに関する情報を取得できました。

try
{
    for (i = 0; i < musicControls.numChildren; i++){
        trace ('\t|\t ' +i+'.\t name:' +  musicControls.getChildAt(i).name + '\t type:' + typeof ( musicControls.getChildAt(i))+ '\t' +  musicControls.getChildAt(i));      
    }
}
catch (error:Error)
{
    trace("Failed:", error.message);
}

上記のスクリプトは、以下の情報を返しました。これらの子にインデックスでアクセスする方法はありますか。たとえば、ムービークリップ内のコンポーネントの 1 つがプログレス バーであり、どのように参照すればよいでしょうか? getChildByName を使用してみましたが、機能していません。ヘルプを探していると、とにかく使用が遅いと誰もが言います。これがas3があまり得意ではない基本的な質問である場合は申し訳ありません。

|    0.  name:plyControl     type:object    [object Button]
|    1.  name:stopControl    type:object    [object Button]
|    2.  name:nextControl    type:object    [object Button]
|    3.  name:prevControl    type:object    [object Button]
|    4.  name:progressControl    type:object    [object ProgressBar]
|    5.  name:volControl     type:object    [object Slider]
|    6.  name:__id11_    type:object    [object MovieClip]
|    7.  name:__id12_    type:object    [object TLFTextField]
|    8.  name:instance71     type:object    [object MovieClip]
|    9.  name:vizControl     type:object    [object ComboBox]
|    10.     name:__id13_    type:object    [object MovieClip]
|    11.     name:__id14_    type:object    [object TLFTextField]
|    12.     name:instance74     type:object    [object MovieClip]
|    13.     name:__id15_    type:object    [object MovieClip]
|    14.     name:timeControl    type:object    [object TLFTextField]
|    15.     name:instance75     type:object    [object MovieClip]

編集:または、見た目からして、文法とスペルが非常に得意です....

4

2 に答える 2

2

次のコードは機能しませんか?

var progressBar:ProgressBar = musicControls.getChildByName("progressControl") as ProgressBar;
if(progressBar)
    //  doStuff

getChildByName が機能していないとおっしゃいましたが、どのようなエラー メッセージが表示されますか?

于 2012-05-03T16:58:53.843 に答える
1

あなたは正しい方向に向かっており、実際、あなたのデモンストレーションによってそれが可能であることを証明しています. ライブラリ アセットからステージ上でインスタンス化されたすべてのオブジェクトは、常に同じインデックス構造を持ちます (結局、基本的には元のプロキシになります)。したがって、プログレス バーがどのレイヤー上にあるかがわかっている場合、参照は次のようになります。

myPointer = musicControls.getChildAt(4);

インデックスで子の子を取得したい場合は、次のようにします。

musicControls.getChildAt(4).getChildAt(0);

また、(すべてのステップで) コードが関数呼び出しから返されるオブジェクトに解決されるため、dot.notation 構文で操作を組み合わせて一致させることができます。

this.getChildByName("musicControls").progressControl.getChildAt(0)

それが物事を明確にすることを願っています。

于 2012-05-03T17:11:29.623 に答える