首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 网页教程 > Flash教程 > 正文
Google
ActionScript 3.0垃圾回收
来源:闪无忧 作者:flashxm 2008年07月03日 14:14 网友评论:0条 点击:

众所周知,在as3的flash运行器中新增了垃圾回收的机制,即自动从内存中清除一些不可访问的对象。这个过程我们是无法控制的,不过可以通过一个例子来观察这个过程:

  1. package
  2. {
  3.     import flash.display.Sprite;
  4.     import flash.text.TextField;
  5.     import flash.utils.Timer;
  6.     import flash.events.Event;
  7.     import flash.events.TimerEvent;
  8.     import flash.system.System;
  9.     public class GarbageCollection extends Sprite
  10.     {
  11.         public function GarbageCollection()
  12.         {
  13.             var s:Sprite = new Sprite;
  14.             s.graphics.beginFill(0, 1);
  15.             s.graphics.drawRect(0, 0, 100, 100);
  16.             //addChild(s);
  17.             s.addEventListener(Event.ENTER_FRAME, enterframelistener);
  18.             var timer:Timer = new Timer(1);
  19.             timer.addEventListener(TimerEvent.TIMER, timelistener);
  20.             timer.start();
  21.         }
  22.         private function timelistener(e:TimerEvent):void
  23.         {
  24.             new TextField();
  25.         }
  26.         private function enterframelistener(e:Event):void
  27.         {
  28.             trace('Flash Player当前所用内存(字节):', System.totalMemory);
  29.         }
  30.     }
  31. }

当输出窗口停止输出信息时就意味着在构造方法中创建的局部变量s被当成垃圾给回收了。

如果将addChild(s)取消注释,s就会被放到场景中,从而不被回收。系统转而回收timelistener里创建的n多没用的new TextField,可以看到:
…省略…
Flash Player当前所用内存: 3403776 字节
Flash Player当前所用内存: 3407872 字节
Flash Player当前所用内存: 3420160 字节
Flash Player当前所用内存: 2142208 字节
Flash Player当前所用内存: 2146304 字节
…省略…
很明显可以看到垃圾回收的过程。

ps: 此例原型是Essential ActionScript 3.0 P277的Example 14-1. Garbage collection demonstration

上一篇:游戏制作:猜数字算法(as2.0)   下一篇:Flash程序的测试方法
收藏此页】【打印】【关闭
 相关文章  我要点评
·ActionScript3初体验
·ActionScript过渡效果之一
·ActionScript 3 日积月累之三
·ActionScript 3 日积月累之二
·ActionScript 3 日积月累之一

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】