重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

actionscript3.0で作成しております。

一番深度が深いインスタンス名を取得したいのですが、どのようにすれば
よいのでしょうか?

A 回答 (1件)

「一番深度が深い」というのは


「一番下の」とか「Z軸方向で一番向こう側の」という意味ですよね?

インスタンスの一プロパティに過ぎないインスタンス名など知って何になるのか知りませんが
例えば,
スクリプトを記述するタイムライン階層で一番深度が深い(下の)インスタンスのインスタンス名であれば,

this.getChildAt(0).name

で取得できます。

「制御」→「ムービープレビュー」で確認するのであれば

trace(this.getChildAt(0).name);

で確認できます。


もし全部のインスタンス名を確認したいのでしたら,次のようにすれば良いでしょう。

//この階層の子の個数分ループ
for (var i:int =0; i< this.numChildren; i++) {
//下のインスタンスのインスタンス名から順に出力
trace(this.getChildAt(i).name);
}

特に難しいこともありません。



==============

しかし,
最初に少し書きましたが,インスタンス名など知っても普通はあまり得しませんよ。
(私は知るメリットが思い浮かばない。)

なぜ得しないかというと,
例えば一番深度が深い(下の)インスタンスを右に100px移動させたいとすると
そのときは次のようにすれば良いだけです。

//この階層の一番下のインスタンスを100px右に移動
this.getChildAt(0).x += 100;

↑インスタンス名など登場しません。


あえてインスタンス名を登場させようとするとすごく大変(遠回り)になります。


//この階層の一番下のインスタンスのインスタンス名を取得
var name_str:String = this.getChildAt(0).name;
//その名前のインスタンスを取得して
//そのインスタンスを100px右に移動
this.getChildByName(name_str).x += 100;



ActionScript 3.0 では
インスタンス名自体の出番はほとんどなくなりました。
(インスタンス個体を一意に定める必要があるときなど,かなり特殊な場合に限って使うこともありますが。)


「F-site [AS3] MovieClipインスタンスとインスタンス名」
http://f-site.org/articles/2008/04/19014939.html
 
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!