• ベストアンサー

一番深度が深いインスタンス名の取得

actionscript3.0で作成しております。 一番深度が深いインスタンス名を取得したいのですが、どのようにすれば よいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.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  

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • クラスのインスタンス名をクラス内で取得できますか?

    クラスのインスタンス名をクラス内で取得できますか? 今VC++6.0を使っています。例として下記のクラスのコンストラクタで CTest::CTest() { TRACE("%s",typeid(this).name()); } としておいて、 別なクラスで CTest testInst; を生成すると デバッグエリアに 「class CTest *」 と表示することはできました。 これが出来るのなら、インスタンス名 testInst をCTestクラスの内部から 取得することは出来ないのかと思ったのですが、 取得することは可能なのでしょうか?

  • actionscript3.0で、「aaa」というインスタンス名のチェ

    actionscript3.0で、「aaa」というインスタンス名のチェックボックスをセレクトすると、他のすべてのチェックボックスがセレクトされ、「aaa」のチェックを外すと他も~という動きを再現するにはどのようにスクリプトを書けばよろしいでしょうか? すみませんが、よろしくおねがいします。

    • ベストアンサー
    • Flash
  • 1つの環境に、同じインスタンス名を定義(Solaris)

    Solaris9に、Oracleをインストールし インスタンス:A を作成しました。 しかし、都合により同じインスタンス:Aを 同じ環境に作成したいのですが、可能でしょうか? (膨大な量のプログラムが、インスタンス名をべた書きしている為、別名のインスタンスで対応することができない) すみません。ご存知でしたらご教授願います。

  • attachMovieでのインスタンス名

    以下のようなスクリプトを書いているのですが、 traceの値がすべてmenu_mcとなってしまいます。 インスタンス名をmenu1_mc,menu2_mc,menu3_mc,・・・としたいのですが、どうすればいいのでしょうか? i = 10; for(y = 0; y < i; y++) { trace(y); m = y+1; obj = _root.attachMovie("menu", "menu"+m, y); obj._x = 30; obj._y = 70*y; trace(this._name); } 環境はFlashCS3、ActionScript2.0です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • SQL Server 2005 の インスタンス名変更方法

    SQL Server 2005 express edition で既定のインスタンス「SQLEXPRESS」で運用しています。 運用途中で、「TEST1」等にインスタンス名を変更することは可能なのでしょうか? 目的としては、異なる拠点にあるスタンドアロン(SQLServerで構築しているサーバー)のバックアップを片方の拠点でバックアップを復元させたいのです。 <拠点(1)> SQL Server 2005 express edition(インスタンス名:SQLEXPRESS) で運用し、バックアップ時にインスタンス名を変更(インスタンス名:TEST1)して、バックアップファイルを作成 <拠点(2)> SQL Server 2005 express edition(インスタンス名:TEST1) に拠点(1)で作成したバックアップを復元する ※ 拠点(2)では、TEST1~TEST10 のように各拠点のインスタンスを   作成しておいて、それぞれのバックアップを復元できるようにした  いのです。 ご教示の程、お願い致します。

  • WMIを使って、あるプログラムで作成されたクラス名を取得できないでしょうか

    VBScriptとWMIを使って、あるクラス名を持つクラスが作成されたことを検知するイベントを作成したいと考えています。 Win32_Processクラスでインスタンスが作成されたときに検知などはできるのですが、どうしてもそこからクラス名を取得したり、作成されたサブクラス名を取得することができません。違うクラスを使ったほうが良いでしょうか。 何か良い方法があれば教えていただけないでしょうか。また、マニュアルで表記されているようであれば、その箇所を教えて頂けると助かります。宜しくお願いします。

  • ムービークリップとインスタンス

    「ライブラリ内にあるのがムービークリップで、それをステージに配置したものがインスタンスである。」このように理解しているのですが、これは間違いでしょうか? 1、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"MC"に01、02,03とインスタンス名を付けた。」 2、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"インスタンス"に01、02,03とインスタンス名を付けた。」 上記の場合どちらが正しいのでしょうか? ムービークリップとインスタンスについてご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • SQLServer2008のインスタンス名について

    使用環境は DB SQL Server2008 Express 使用ツールは Microsoft SQL Server Management Studio です サーバーは 64bit です インストールファイルは SQLEXPRWT_x64_JPN.exe です インストール時に 既定のインスタンス名 を選択し Management Studio ツールを使って接続しようとしたのですが サーバー名¥SQLEXPRESS になってしまいます 希望する内容は サーバー名のみ で接続したいのです 正確には 最初、名前付きインスタンス名(SQLEXPRESS)を選択して インストールしてしまい あとでアンインストールし  既定のインスタンス名で再インストールしているのですが 上記内容になります。 アンインストール後 関係フォルダを削除(一時 別フォルダに保管)しました 具体的には C:\Program Files\Microsoft SQL Server のフォルダを 一時別のフォルダにして、再インストールしてみたのですが結果は同じでした。 ちなみに、SQLServer2005Express では 上記フォルダを削除(移動)することで インスタンス名は付かなくて サーバー名だけになりました。 何か不要な設定が残っているように思いますが… 確認したいのは SQL Server2008 Express では インスタンス名を無しにするこ とができるのかどうか 再インストール時、削除するフォルダが足りないのかどうか 以上 宜しくお願い致します。

  • インスタンス名を変数に

    こんにちは。 インスタンス名を変数(imaMc)に格納して、x方向に移動したいのですが、エラーが出てしまってうまく行きません。 var imaMc:String; imaMc=scale_mc.name; stage.addEventListener(MouseEvent.CLICK,removeScaleset); function removeScaleset(evt:MouseEvent):void { trace(imaMc); imaMc.x=500; } 上記のようなスクリプトを組んでいるのですが、trace(imaMc)までは正常に動くのですが、imaMc.x=500が以下のようなエラーになってしまいます。 1119: Access of possibly undefined property x through a reference with static type String. これは何故でしょうか? traceするとscale_mcと出るので間違っていないと思うのですが・・・ ActionScript3.0です。 ご回答お願い致します!

    • ベストアンサー
    • Flash
  • インスタンス名の変更mcどうしのhittest

    お世話になります。Flash,actionscriptの初心者です。 現在actionscript2.0でちょっとしたFlashコンテンツを作っているのですが、解決できない ことがあり、ぜひお知恵を拝借できればと思います。 詳しくは添付図をご覧いただきたいのですが、 A1_mcとB1_mcのムービークリップをhittestで衝突判定させ、 B1_mcは見えないようにし、 A1_mcはgotoAndPlay(2)で2フレーム目にします(☆の絵)。 同時にthis._name="C1_mc"でインスタンス名を変更しました。 (ここまでは大丈夫で、trace(this._name)でも変更が確認できる。) 同じようにA2、B2、C2も設定しました。 そして、姿(○⇒☆)とインスタンス名(A⇒C)と変わった C1_mcとC2_mcをhittestで衝突判定させてD_mc(■)を見えるようにしたいのですが、 何も起きず、hittestが発動していないのではと思ってしまいます。 説明がわかりにくいと思うのですが、インスタンス名を変更した物どうしのhittestを うまく発動させるにはどうしたらよいか、教えていただきたいのです。 にわか知識のためFlashやactionscriptの根本的な問題を理解できてなさそうです・・・。 ちなみに何がやりたいかというと、○と○、○と☆ではお互いに反応しないが、 ○と◇が合体して☆になったもの同士(☆と☆)が接触すると、反応して■が出現する・・・ そんなFlashを作りたいのです。 自分の現状のやり方以外でこれが実現できるのなら、それでも大歓迎です。 長文になりましたが、ぜひともよろしくお願いいたします。 <参考・・自分の組んだAS> A1_mc.onEnterFrame = function() { if (this.hitTest(_root.B1_mc))     { _root.B1_mc.gotoAndPlay(2); //2フレーム目(空のキーフレーム)にとび、B1を消す this.gotoAndPlay(2);  //○⇒☆(2フレーム目)に姿を変える this._name="C1_mc"; //インスタンス名をA1_mcからC1_mcに変える     trace(this._name); //インスタンス名の変更を確認する。 delete this.onEnterFrame;     } else{ } }; A2_mc.onEnterFrame = function() { if (this.hitTest(_root.B2_mc))     { _root.B2_mc.gotoAndPlay(2); //2フレーム目(空のキーフレーム)にとび、B1を消す this.gotoAndPlay(2);  //○⇒☆(2フレーム目)に姿を変える this._name="C2_mc"; //インスタンス名をA2_mcからC2_mcに変える     trace(this._name); //インスタンス名の変更を確認する。 delete this.onEnterFrame;     } else{ } }; C1_mc.onEnterFrame = function() { if (this.hitTest(_root.C2_mc))     {     this.visible = false ; //姿を消す _root.C1_mc.visible = false; _root.D_mc.gotoAndPlay(2); //D_mcの出現(D_mcの1フレーム目は透明で見えなくしている。2フレーム目からアニメーションさせたいのでvisibleは使わない)     delete this.onEnterFrame; }   else{ } };

    • ベストアンサー
    • Flash
このQ&Aのポイント
  • インクがあるのに印刷できない問題について、ブラザー製品DCP-J982Nのトラブル解決方法をご紹介します。
  • Windows10で無線接続されている場合、印刷できない問題が発生する場合があります。
  • 関連するソフト・アプリや電話回線の種類によっても印刷できない問題が起こることがあります。
回答を見る