0

何度も頭に浮かぶこの質問をしたいと思います。

ムービークリップを削除しようとすると、親が存在しないというエラーが表示されるのはなぜですか? 最初のケースでは、ムービークリップまたはステージのいずれかに「含まれていない」場合、ムービークリップは画面上またはメモリ上に存在できません。

どうやってこれが起こるのか、誰かがこの「ムービークリップ」がステージまたはコンテナ mc への親参照を失う方法を説明できますか? デバッガー スタックは、movieclip.parent の値を null として表示します。

些細なコメントでも結構です。

ありがとうございました

ヴィシュヌ アジット

ハッピーコーディング

4

2 に答える 2

1

この場合、2 つの可能性があります。- ムービークリップがステージまたはコンテナに追加されていない。- または、コードの他の間違いにより、親から既に削除されています。

親からムービークリップを削除するときのエラーを防ぐため。この簡単なコードを使用して、ムービークリップを削除します。

if(movieclip.parent) movieclip.parent.removeChild(movieclip);

このエラーを防ぎます

于 2011-12-01T11:08:39.650 に答える
1

MovieClip は、親を持たなくても存在する可能性があります。次のかなり標準的なコード行を見てください。

var myThing:MovieClip = new ThingThatExtendsMovieClip();
// at this point in time myThing DOES exist yet does not have a parent

// now let's give it a parent
addChild(myThing);

// and if we remove it again: 
removeChild(myThing);

// myThing again exists without a parent. 

ここでの秘訣は、myThingそれへの参照を保持しているものがない場合、最終的にはなくなるということです。ただし、参照を保持している限り、それが子であっても、変数に格納されていても、そのまま残ります。親かどうか。

于 2011-12-01T10:04:20.017 に答える