打印

[AS3] 将某变量设为null后,如果不移出其侦听

gc会不会回收该变量指向的内存空间?
譬var A:XXX = new XXX();
a.addEventListener(...);
A = null;
A指向的空间会被回收么?

查找了资料,我觉得应该A指向的空间会被回收,如果addlistener时用的不是弱引用,则A的listener这个function对象以及它所关联的obj将永远存在!!
譬如objA.addEventListener(objB.func);
objB=null;//此时objB并不会被gc清理,因为objA有objB.func的引用
objA.removeEventListener(objB.func)或者objA=null;//此时objB会被gc清理

[ 本帖最后由 sshong 于 2008-7-4 16:38 编辑 ]
removeEventListener(...);
AS3只要引用存在,就不会被回收!
我想问addlistener了,是怎么个引用法,谁拥有了对谁的引用?
是这个obj有对listener这个function对象的引用
还是listener有对obj的引用?

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!