- ベストアンサー
AS3.0でif...else if...を使いたいときの方法
- AS3.0でif...else if...を使いたい場合には、条件式を書くことで実現できます。
- 条件式を使って、特定のオブジェクトがステージに存在するかどうかを判定し、存在する場合にはremoveChildメソッドを使ってそのオブジェクトをステージから削除することができます。
- 具体的には、if文を使って'A'がステージに存在する場合にはremoveChild(A)を、'B'がステージに存在する場合にはremoveChild(B)を実行するようにすることで、目的の動作を実現することができます。
- みんなの回答 (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はあります"); } ----------------------
その他の回答 (1)
- taregin
- ベストアンサー率0% (0/1)
的外れな回答になっているかもしれませんが、 ステージ上にあるということは、ボタンが表示されているということなので、 A.visibleがtrueかfalseかで処理すればいいんじゃないでしょうか?
お礼
すごく丁寧なご回答どうもありがとうございます。 助かりました!
お礼
すごく丁寧なご回答どうもありがとうございます。 助かりました!