Flex Fade效果导致内存泄露

因为这个问题,害我找了一晚上,一个对象始终无法被释放,崩溃了!
最后在几千行代码里逐一排查,终于找到了这个罪魁祸首!

具体原因:
通常我们给对象设置效果事件时如下:
this.setStyle("hideEffect",o_FadeOut);
this.setStyle("showEffect",o_FadeIn);


当执行visible时就会触发效果,很方便,但就是因为这个便利导致我们忽视了很多细节.
效果的执行是由系统程序来完成的,而非对象本身,所以对象也就理所当然的被外部引用,最终导致无法被释放引起内存泄露!

解决方法:
o_FadeIn.target = null;
o_FadeIn = null;

将target 设为null后对象就被释放了!

不知道大家有没有遇到过这个问题,也许是因为我的o_FadeIn是通过继承而来才导致的,没有再去测试了,总之解决了就开心啊~!

你可能感兴趣的:(Flex)