1

クリックされたときにオブジェクトをnullに設定したいのですが、このコードを実装しようとしています:

        public function onClick(evt:MouseEvent):void{
        var thisPatient = evt.target;
        thisPatient = null;
    }

ただし、要素はまだステージにあります。

4

4 に答える 4

4
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);
于 2012-08-13T12:58:36.067 に答える
3

null に設定するだけでは十分ではありません。removeElement()また、使用しているコンテナの種類removeChild()に応じて、親コンテナから削除する必要があります。

于 2012-08-13T12:51:06.627 に答える
2

removeChild(thisPatient)オブジェクトを別のオブジェクト内に配置する場合は、実行する必要がありますparent.removeChild(thisPatient)

于 2012-08-13T12:51:40.870 に答える
1

私の経験では、イベント オブジェクトに登録するには、すべてのイベントを削除する必要があります。すべてのイベントは手動で完全に削除されます。すべてのイベントを解放しないオブジェクトの removeChild。removeChild ですが、細かくメモリリークが発生します。これは、イベントを削除していないためです。オブジェクトを削除する前に、イベントを削除する必要があります。

于 2012-08-13T14:18:22.500 に答える