`
NewTamato
  • 浏览: 101494 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

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);

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics