删除在父窗口上面的子窗口的方法

 if(subList) 

{
    this.removeElement(subList);
}
subList = new subVideoList();
subList.x = 20;
subList.y = 190;
this.addElement(subList);

 上面一段代码是想在this上面每响应一个click事件就在this上面添加一个sublist,但是会出现sublist的覆盖情况,为了解决覆盖,就要判断sublist如果不为空,就remove它,但是这样做编译器会报错,报错原因是说sublist不存在。

问题原因,:

addElement在removeElement之后,所以在还没有添加之前不可能先删除一个不存在的东西。

但是你会问,明明在this上面有一个sublist,怎么说没有呢,因为这个sublist不是此次click事件所响应出来的对象,而是上一个事件的相应对象,所以在本次click中,事件并不承认存在sublist。

解决办法:

在if语句中加一个判定条件:

if(subList && this.contains(subList))
{
      this.removeElement(subList);
}
subList = new subVideoList();
subList.x = 20;
subList.y = 190;
this.addElement(subList);

 有了this.contains(sublist)

这个条件,就会判断this上面是不是包含有sublist这样的组件,不管他是那一次相应的对象,这样就能决绝组件覆盖问题。 

posted on 2012-08-11 16:44  SuperITGirl李小扣  阅读(318)  评论(0)    收藏  举报

导航