打印

[AS3] 什么是弱引用

请高手解释下addEventLilstener(event,object,boolean,inter,true)里的true所代表的弱引用,麻烦通俗一点,我看了文档还是不懂
mc.addEventLilstener(event,object,boolean,inter,true)
removeChild(mc);
如果是弱引用的话,mc直接被remove了,不在内存中了。
如果是强引用的话,mc虽然不在显示列表,但还在内存中,需要removeEventLilstener,才能被垃圾回收
www.inshow.com
引用:
原帖由 43460588 于 2008-8-14 14:16 发表
如果是弱引用的话,mc直接被remove了,不在内存中了。
“mc直接被remove了”怎么remove?自动回收么
mc.addEventLilstener(event,object,boolean,inter,true)
removeChild(mc);//这样不报错么?
弱引用我没用过。。。但是这是没有弱引用时候的样子:
(没有“boolean,inter,true”这些 。就只(event,object))
复制内容到剪贴板
代码:
mc.addEventLilstener(event,object)
removeChild(mc); //直接移除mc 这是不允许的
他会报错,ArgumentError: Error #2025: 提供的 DisplayObject 必须是调用者的子级。。我刚才的代码就是这样。
改成以下这样才好
复制内容到剪贴板
代码:
mc.addEventLilstener(event,object)
mc.removeEventLilstener(event,object)//必须先移除addEventLilstener 才允许removeChild
removeChild(mc);

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
引用:
原帖由 43460588 于 2008-8-14 14:16 发表
mc.addEventLilstener(event,object,boolean,inter,true)
removeChild(mc);
如果是弱引用的话,mc直接被remove了,不在内存中了。
如果是强引用的话,mc虽然不在显示列表,但还在内存中,需要removeEventLilstene ...
不要误导,说真的,很多人都这么以为,

http://bbs.actionscript3.cn/view ... amp;page=1#pid81822
http://www.asarea.cn/console/showdiary.jsp?id=153

TOP

當目標對象有且只有一個引用且此引用為弱引用類型。
則此對象會標記為可回收狀態。
紫色的風.net
迷一样打不开的地址

TOP

2楼的说法确实不准确

标记为弱引用的引用类型,在引用计数时不会被计算在内,这样在flash player
进行垃圾回收时可释放此被引用的对象。这样做的一大好处是当你忘记remove相应的EventLilstener时,
flash player可以忽略你这个“失误”。
漫漫人生路

TOP

good job

TOP