2010-12-03 21 views
1

私はムービークリップを自分のステージから削除しようとしています。私のフレームの読み込み時に、私はpiechartを作成する関数に少しのコードしかありません。ムービークリップをステージから削除しようとしています

var piechart:MovieClip = new MovieClip(); stage.addChild(piechart); //さらに円グラフを描画する束を

そのビットが私の「アクション」レイヤーにないようにします。今私はタイムライン上の別のフレームにナビゲートするこのフレーム上のボタンがありますが、フレームを変更すると、piechartは残ります。だから、このパイチャートをステージから削除するにはどうしたらいいですか?私はstage.removeChild(...)と他のものを試していますが、過ちを私は間違って呼んでいますか?どんな助けもありがとう。タイムライン上のコードを書く

おかげ

答えて

2

Mykが正しいです。タイムラインでコードを作成しない方が良い方法です。いずれにしても、現在のフレームから移動する前に、ステージをクリアするだけです。例えば

:あなたはのgotoAndPlayしようとした場合

function nextFrame(event:MouseEvent):void 
    { 
     //if you're still in the same frame , this should work... 
     stage.removeChild(pieChart); 

     //then move on... 
     gotoAndStop('whereverYouWannaGo'); 
    } 
+0

これはqiuckとする簡単な方法でしたを再生していきます私が必要としたもの。はい、私はおそらく別のクラスに目を通すべきですので、私はそれらをよりうまく管理できますが、現時点ではこれはうまくいくでしょう。ありがとう! – jomille

2

を診断するのが難しいですシナリオのすべての種類につながる - あなたの代わりに出て、いくつかのクラスにすべてのコードを引っ張って、結合を介してそれらを貼り付けると考えられてきましたか?これは本当にベストプラクティスです。このような問題は避けてください。

つまり、ステージからのものを削除する方法はさまざまです。あなたは、ステージからすべてを削除したい場合は、移行するか何かしているので、このようなものは動作します:

while (this.numChildren > 0) { 
    this.removeChildAt(0); 
} 

代わりに、あなたのオブジェクトの特定の親であるかについて混乱があるのならば、あなたはこのようなコードを使用することができます:

if (pieChart.parent) { // checks to see if it actually has a parent 
    pieChart.parent.removeChild(pieChart); 
} 

こうすることで、誤って(あなたがタイムラインのコードをやっている場合は簡単に起こることができるよう)親オブジェクトへのあなたの参照のトラックを失ってしまった場合でも、あなたはまだ、親プロパティを呼び出して参照を取得することができますオブジェクト自体のそれは理にかなっていますか?

0

使用gotoAndStop( "desiredFrame")

、前のフレームが

関連する問題