下载此文档

关于as3控制内存增长的几个基础原则.doc


文档分类:办公文档 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
? Event listeners: 事件侦听的响应函数所在对象默认会被添加引用计数,有以下两种方式可以避免事件侦听引起的内存泄漏 o 采用弱引用添加事件侦听( ( , , false, 0, true );) ,采用这种方式侦听响应函数对象不会被添加引用计数,若外部引用都被清空则对象将被垃圾回收,不再响应事件。 o 若采用强引用,则要要在不需要的时候手动调用 removeEventListeneror 移除事件侦听器。 Clean up references: 如果 objA 有成员 ob 引用了 objB ,则直接设置 objB=null 将不会导致 objB 实例被垃圾回收,需要 =null 之后才会将其回收。也就是说,一个对象的所有引用都被清理之后, 其才会被垃圾回收(在 AS 中只要一个对象没有引用能追溯至根节点,即 stage 、 static 成员等, 则会被垃圾回收)。不注意清理引用是引起内存泄漏的一个常见问题。 a:obj = new obj(); b:obj = new obj(); = b; = a; =null; =null; a =null; b =null; class Loader { load(onFin:Function):void { thisptr = this; (function (){ onFin(thisptr); }); }}{ lder = new Loader(); ( function (l:Loader):void { ; } ); } class A{ spr:Sprite; function A() { spr = new Sprite(); (xxx, onXXX, fal, 0, true); } function onXXX(evt:Event):void {} function dispose():void { (xxx, onXXX); spr =null; }}{ var a:A = new A(); (); a= null; }{ var lder:A = new A(); (xx); }? Reuse objects: 对于需要频繁创建销毁的一些较复杂的对象, 可以创建 object pool 来管理,当对象不需要使用时,可以用 object pool 回收对象, 同时在对象上定义 reset() 函数初始化对象,需要使用对象时则从 object pool 取出对象并调用 reset 即可。? Immediately kill objects: 一些对象, 比如 XML 、 BitmapDat a 可以直接调用 () 、 () 直接释放其持有的内存。? Know the language: 需要进一步了解一些 Flash 的底层机制。比如 DisplayObject 设置 cacheAsBitm

关于as3控制内存增长的几个基础原则 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人sw1dvv67
  • 文件大小94 KB
  • 时间2017-02-17