• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AS3.0にて、if...else if...を使いたいのですが、、)

AS3.0でif...else if...を使いたいときの方法

このQ&Aのポイント
  • AS3.0でif...else if...を使いたい場合には、条件式を書くことで実現できます。
  • 条件式を使って、特定のオブジェクトがステージに存在するかどうかを判定し、存在する場合にはremoveChildメソッドを使ってそのオブジェクトをステージから削除することができます。
  • 具体的には、if文を使って'A'がステージに存在する場合にはremoveChild(A)を、'B'がステージに存在する場合にはremoveChild(B)を実行するようにすることで、目的の動作を実現することができます。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

「A」 が addChild されている状態とは 「A」 がどこかの階層の表示リストに存在するということです。 そたがってこの辺↓が使えると思います。 「ActionScript 3.0のイベント処理について デベロッパーセンター」 http://www.adobe.com/jp/devnet/actionscript/articles/event_handling_as3_08.html > 表示オブジェクトがこのような表示リストに含まれていない場合、 > そのstageプロパティはNullです。 ◎新規ドキュメントのフレーム1などに書くスクリプト例↓ ---------------------- var A:Sprite = new Sprite(); A.graphics.beginFill(0xFF0000); A.graphics.drawRect(0, 0, 50, 50); trace(A.stage); this.addChild(A); trace(A.stage); this.removeChild(A); trace(A.stage); ---------------------- 「制御」→「ムービープレビュー」 での出力結果↓   null   [object Stage]   null ◎if文を使った判定例↓ ---------------------- var A:Sprite = new Sprite(); A.graphics.beginFill(0xFF0000); A.graphics.drawRect(0, 0, 50, 50); this.addChild(A); //↓ 「//」 を付けたり取ったりして検証 //this.removeChild(A); if(A.stage == null){ trace("Aはありません"); } if(A.stage != null){ trace("Aはあります"); } ----------------------     ~~~ 別法 ~~~~~~~~~~~~ getChildByName() を使っても調べられます。 「FlashゲームPG講座 For AS3.0」 より「インスタンスが表示リストに存在するか調べる」 http://hakuhin.jp/as3/container.html#CONTAINER_04 ◎新規ドキュメントのフレーム1などに書くスクリプト例↓ ---------------------- var A:Sprite = new Sprite(); A.graphics.beginFill(0xFF0000); A.graphics.drawRect(0, 0, 50, 50); A.name = "A"; trace(this.getChildByName("A")); this.addChild(A); trace(this.getChildByName("A")); this.removeChild(A); trace(this.getChildByName("A")); ---------------------- 「制御」→「ムービープレビュー」 での出力結果↓   null   [object Sprite]   null ◎if文を使った判定例↓ ---------------------- var A:Sprite = new Sprite(); A.graphics.beginFill(0xFF0000); A.graphics.drawRect(0, 0, 50, 50); A.name = "A"; this.addChild(A); //↓ 「//」 を付けたり取ったりして検証 //this.removeChild(A); if(this.getChildByName("A") == null){ trace("Aはありません"); } if(this.getChildByName("A") != null){ trace("Aはあります"); } ----------------------

yuyumamayaya
質問者

お礼

すごく丁寧なご回答どうもありがとうございます。 助かりました!

その他の回答 (1)

  • taregin
  • ベストアンサー率0% (0/1)
回答No.1

的外れな回答になっているかもしれませんが、 ステージ上にあるということは、ボタンが表示されているということなので、 A.visibleがtrueかfalseかで処理すればいいんじゃないでしょうか?

参考URL:
http://flashrave.org/as/visible/
yuyumamayaya
質問者

お礼

すごく丁寧なご回答どうもありがとうございます。 助かりました!

関連するQ&A