删除在父窗口上面的子窗口的方法
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.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) 收藏 举报
浙公网安备 33010602011771号