易截截图软件、单文件、免安装、纯绿色、仅160KB

Flex 中可能导致内存泄露的地方

Flex 中可能导致内存泄露的地方
收集了不少的会导致内存泄露的情况:
事件监听:
对父级对象加了监听函数,会造成内存泄露,例:
override protected function mouseDownHandler(…):void
{
systemManager.addEventListener(“mouseUp”, mouseUpHandler);
......
解决:
在销毁对象的时候,remove掉这些监听,虽然弱引用也可以避免这些问题,但自己掌控感觉更好。
但以下几种情况不会造成内存泄露:
弱引用:someObject.addEventListener(MouseClick.CLICK, handlerFunction, false, 0, true);
对自己的引用:this.addEventListener(MouseClick.CLICK, handlerFunction);
子对象的引用:
private var childObject:UIComponent = new UIComponent;
addChild(childObject);
childObject.addEventListener(MouseEvent.CLICK, clickHandler);
总之…有addEventListener,就removeEventListener一下吧,要为自己做的事负责~哈哈
清除引用
remove掉子对象后并不会删除该对象,他还保留在内存中,应该将引用设置为null
removeChildren(obj);
obj = null;
静态成员
Class (或MXML)中有:
public static var _eventService : MyService=new MyService();
解决:在dispose时,需要设置:
_eventService =null;
module (未解决)
moduleLoader unloadModule后
ModuleInfo 并不会被GC.
Garbage Collection in a MultiCore Modular Pipes Application
这篇文章介绍了一种GC策略,感觉对于ModuleInfo 的GC无效。
(未尝试、未遇到)
CSS样式
module 中如果使用了shell的CSS定义或是 这样的定义,那么这个module将不能GC.
弹出的窗口应该是同样的结果.
解决方法,使用动态CSS文件
module init中
StyleManager.loadStyleDeclarations("css/myStyle.swf");
module dispose中
StyleManager.unloadStyleDeclarations("css/myStyle.swf");
TextInput/Textarea(未解决)
如果module中有window使用了TextInput/Textarea控件,不点击没有问题,只要点上去,那么很遗憾了,module和所在窗体将不能被GC.
这个BUG非常严重,目前还没有解决方法。
memory leak when using TextInput and TextArea when click the keyboard 这里面附加的解决方法无效。
通过profiler分析,应该和Focusmanager有关,只有一点击就不会释放。
CursorManager.setCursor
使用了
cursorID = CursorManager.setCursor(iconCl


相关文档:

flex学习 states和transitions

关于states
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.effects.easing.Bounce;
]]>
</mx:Script>
<mx:states>
<mx:State name="bookDetails" ......

flex学习 flex读取xml文件

源xml文件
 <?xml version="1.0" encoding="iso-8859-1"?>
<books>
<stock>
<name>The Picasso Code</name>
<author>Dan Blue</author>
<category>Fiction</category>
<description>Cubist paintings reveal a secret society of people ......

基于Flex的flv简易播放器

最近在项目中要用到flv播放器,由于flex自带的VideoDisplay组件不是很好用,就自己简单实现了一个,界面不是很美观,但功能都有了,正可谓麻雀虽小五脏俱全。下面是播放器的代码,还不会用flash做flv播放器的朋友,可以参考参考。
Player.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="ht ......

Flex 4中如何创建不可编辑NumericStepper的例子

<?xml version="1.0" encoding="utf-8"?>
<s:Application name="Spark_NumericStepper_textInput_editable_test"
        xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        xml ......

10 Tips for Flex Application Performance

We're going to keep this post lean and mean, and get down to
business with 10 Tips that will keep your Flex applications fast, lean,
and responsive.
Rule # 1: Clean up after yourself
In general, it is good practice to maintain clean code. Not only
in the sense of having properly formatted and ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号