FLEX的强引用和弱引用问题weak reference

关键字: 强引用,弱引用

今天看到篇关于flex(AS)中添加EventListener时候要注意的参数问题,大致意思如下: 如果我们使用强引用(默认情况),FLASH的垃圾回收不会释放这个引用实例,尽管你把这个对象置为null或是其它,除非你手动去执行removeListener()方法,这里还有一个方法就是在添加事件时候使用弱引用。 一般情况我们在添加一个事件的时候,比如给一个按钮添加一个onclick事件,我们的写法是: button.addEventListener(Event.click,onclick);这种时候是强引用,因为addEventListener还有几个默认的参数useCapture=false,priority=0;useWeakReference=false , 因此添加一个弱引用的方法是: yourobject.addEventListener(Type, function, false, 0, true); 什么情况应该使用强引用,什么情况不应该使用呢? 当一些变量是成员变量(比如界面上不需要删除的BUTTON),这种它的生命周期和listener是一样的(意思是中间不用动态删除在重复产生)这种情况我们不用考虑弱引用; 当一些对象是不稳定的,动态变化的,比如TIMER,flashplayer认为它是整个生命周期的,应该使用弱引用,如果你使用强引用,这个timer对象将永远不会垃圾回收。(注意) 所以我们使用timer时候一定要这么写:myTimer.addEventListener(TimerEvent.TIMER, onTimer, false, 0, true);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值