クリックされたときにオブジェクトをnullに設定したいのですが、このコードを実装しようとしています:
public function onClick(evt:MouseEvent):void{
var thisPatient = evt.target;
thisPatient = null;
}
ただし、要素はまだステージにあります。
クリックされたときにオブジェクトをnullに設定したいのですが、このコードを実装しようとしています:
public function onClick(evt:MouseEvent):void{
var thisPatient = evt.target;
thisPatient = null;
}
ただし、要素はまだステージにあります。
public function onClick(evt:MouseEvent):void{
var thisPatient = evt.target;
(thisPatient as DisplayObject).parent.removeChild(thisPatient);
//or if thisPatient is this
parent.removeChild(this);
}
しかし、子供が自分自身を削除できるようにするのは悪い習慣です。親が子を削除するかどうかを決定する必要があるため、より適切な解決策はイベントをディスパスすることです。
public function onClick(evt:MouseEvent):void{
dispatchEvent(new Event("removeMe", true));
}
//parent's code...
child.addEventListener("removeMe", removeHandler);
null に設定するだけでは十分ではありません。removeElement()
また、使用しているコンテナの種類removeChild()
に応じて、親コンテナから削除する必要があります。
removeChild(thisPatient)
オブジェクトを別のオブジェクト内に配置する場合は、実行する必要がありますparent.removeChild(thisPatient)
。
私の経験では、イベント オブジェクトに登録するには、すべてのイベントを削除する必要があります。すべてのイベントは手動で完全に削除されます。すべてのイベントを解放しないオブジェクトの removeChild。removeChild ですが、細かくメモリリークが発生します。これは、イベントを削除していないためです。オブジェクトを削除する前に、イベントを削除する必要があります。