タイムラインを扱うとき、それはあなたが常にオブジェクトの親プロパティからメソッドを呼び出すことができ、その場合には、オブジェクトのスコープを追跡することが困難な場合がありますをデバッグする方が簡単です。あなたには、いくつかの理由でFlashDevelopの&でコーディングしている場合にはしたくないか、親を追跡することはできません
child.parent.removeChild(child);
、あなたがディスプレイから、あなたのオブジェクトを追加および削除する方法のカップルを実装することができリスト、事実上
private var container:DisplayObjectContainer;
public function addToDisplayList(container:DisplayObjectContainer):void
{
this.container = container;
container.addChild(this);
}
public function remove():void
{
if(container != null)
container.removeChild(this);
}
...あなたは次のことを行うことができ、あなたのオブジェクトクラスで
...オブジェクトに削除&を追加する委任その後、あなたは、単にこれを行うことができます。
var child:MovieClip = new MyObject();
child.addToDisplayList(whatever);
//later...
child.remove();
もしあなたが(child.parent)child.parent.removeChild ....を完全に安全であると言うこともできます。それはおそらくOPの問題を解決するでしょうが、このタイプのコードを使用することは非常に拡張性がないことに言及する必要があります。おそらくゲームの長期的な問題を引き起こすでしょう。 OPはなぜ彼/彼女のオブジェクトの親が彼らが思うものでないのかを理解しなければならない。 – Roy
私は全く同意しますが、これは範囲の問題のために私が通常はアドバイスしていないタイムラインの文脈にあると言いました...私はOPの問題が本当に起こらないような外部のクラスでのコーディングが大好きです。個人的には、100%安全であるために、私はif(child.parent!= null)表記を好みます:) – PatrickS
hmm私はこれを試してみますが、私はタイムラインでコーディングしていません。奇妙な... – alex