我想在单击对象时将其设置为 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 但是,会发生内存泄漏。这是因为您没有删除该事件。在移除对象之前,您必须移除事件。