Flash AS 3.0垃圾回收
来源:互联网 发布:北京快速排名优化工具 编辑:程序博客网 时间:2024/06/12 00:39
import flash.display.Sprite;import flash.display.MovieClip;import flash.net.LocalConnection;import flash.sampler.NewObjectSample;import flash.events.MouseEvent;import flash.display.Loader;import flash.events.Event;import flash.net.URLRequest;trace(System.totalMemory);//强行执行垃圾回收, 只适合于开发阶段function ForceGC():void{ trace("clear memory");try {new LocalConnection().connect("foo");new LocalConnection().connect("foo");} catch (e:Error) {}} var loader:Loader = null; var request:URLRequest = null;//加载一个外部例子function LoaderExample(tsprite, url:String) { trace("Hello LoaderExample"); loader = new Loader(); //configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); request = new URLRequest(url); loader.load(request); tsprite.addChild(loader);return loader; }//var L1 = LoaderExample("test00.swf");//var L2 = LoaderExample("test00.swf");function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); //dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); //dispatcher.addEventListener(Event.INIT, initHandler); // dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); // dispatcher.addEventListener(Event.OPEN, openHandler); //dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler);}function completeHandler(event:Event):void {if(event.type=="complete") trace("completeHandler: " + event);}function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event);}//增加加载外部文件addMem.addEventListener(MouseEvent.CLICK, AddMem_func);var nsprite = null;var mgrVec = new Vector.<Sprite>();var mgrLoader = new Vector.<Loader>();function AddMem_func(event:MouseEvent):void{trace("dddd");nsprite = new Sprite(); //nsprite.graphics.beginFill(0x0000ff);//nsprite.graphics.drawRect(0, 0, 300, 300);//nsprite.graphics.endFill();mgrLoader.push(LoaderExample(nsprite, "test00.swf"));mgrVec.push(nsprite); //加入vectoraddChild(nsprite);}//删除Flash AS 3.0不能强行清除内存的问题delMem.addEventListener(MouseEvent.CLICK, DelMem_func);function DelMem_func(event:MouseEvent):void{for(var i=0;i<mgrVec.length;i++){ var tsprite = mgrVec[i]; //移触监听 var loads = mgrLoader[i]; loads.unloadAndStop(true); loads.removeEventListener(MouseEvent.CLICK, clickHandler,true); removeChild(tsprite); mgrVec[i] = null; mgrLoader[i] = null;}mgrVec.splice(0, mgrVec.length);mgrLoader.splice(0, mgrLoader.length);System.gc();ForceGC();}//loader的事件监听function clickHandler(event:MouseEvent):void { trace("release memeory");}
使用as 3.0需要将不需要的对象都null, 然后强行执行垃圾回收,这样它才能回收无效的内存。
否则你不能知道Flash何时进行垃圾回收。此外所有监听的事件也必须全部remove。
0 0
- Flash AS 3.0垃圾回收
- Flash AS 3.0垃圾回收
- flash 垃圾回收GC
- 關於flash中的垃圾回收
- Flash Player垃圾回收机制
- Flash Player垃圾回收机制
- [as hack技术]垃圾回收机强制执行
- 小心flash的垃圾回收功能
- Flash Player垃圾回收机制强制执行
- flash垃圾回收和内存泄露
- Flash AS3 垃圾回收机制详解
- 【Flash 务实主义】AS3的垃圾回收
- 浅谈Flash的垃圾回收机制
- 浅谈Flash的垃圾回收机制
- FLASH内存管理-AS3的垃圾回收
- flash的强制垃圾回收 flash内存释放
- [AS-Hack]AS3中强制进行垃圾回收的方法
- [AS-Hack]AS3中强制进行垃圾回收的方法
- HttpContext.Current.Cache 和HttpRuntime.Cache的区别
- WebService 之 WSDL文件 讲解
- PAT (Advanced Level) Practise 1005. Spell It Right (20)
- Cocos2d-x 3.2 Android平台新手开发环境配置教程
- CoreMotion.framework 重力感应的使用
- Flash AS 3.0垃圾回收
- JDK/bin目录下的不同exe文件的用途(appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii...)
- 通过fsharp 使用Enterprise Library Unity 1
- javascript立即执行函数写法
- android_拷贝
- forward 和redirect的区别
- 用栈链实现数值转换
- mysql procedure 存储过程
- java最小堆实现优先权队列和求最大的n个数问题