分类 编程 下的文章

Flash显示对象是否置于Stage上的最佳实践

这几天在解决场景滚屏“卡”的问题,一心想把CPU占用优化一些。优化前所有地图块加载后都会置于Stage上一起滚动,优化后将视野外的地图实时remove,理论上会有作用。实际测试下来数据如下:

 

改前

改后

起始物理内存

296M

254M

起始虚拟内存

291M

248M

起始AVM内存

213M

185M

结束物理内存

477M

286M

结束虚拟内存

471M

280M

结束AVM内存

399M

208M

CPU(单位:%

56~72,均值65

53~64,均值60

测试环境:

CPU2.3GHz单核、内存:3G、浏览器:IE6FlashPlayer Version11.2

由上可看出将不用的DisplayObject即时地从Stage移除,CPU消耗会有些减少,更可喜的是内在占用会有质的变化。

只是将Bitamp从显示列表remove,并未dispose bitmapData数据,可减少这么多内存占用。由此,可猜想显示对象在渲染时除对象自身占用内存外,还需要额外内存参与渲染。

希望有朋友能验证这个猜想。

FlashBuilder安装SVN插件-Subclipse

本文介绍Subclipse SVN插件的安装及使用,以下FlashBuilder SVN插件安装同样适用于Eclipse或基于Eclipse的IDE。

安装步骤:

  1. 打开FlashBuilder “帮助”->“安装新软件”;

  2. 在“使用”栏输入插件地址(不同版本对应地址见后面),如:http://subclipse.tigris.org/update_1.6.x

  3. 点击“添加”->“确定”,后面一直下一步直至结束;

各版本Subversion对应的插件地址:

- 阅读剩余部分 -

Flash对小数坐标的处理

小数坐标的设值问题

先看一个例子:

    var a:Sprite = new Sprite();
    a.x = 0;
    for(var i:int = 0; i < 100; i++){
        a.x += 0.04;
    }
    trace(a.x);

trace输出:0

为什么不是4?

在进行物理运动计算时,低速移动会出现这种应用场景。在Flash中设置DisplayObject的x, y值增量小于0.05时,设值会被忽略,因为Flash对x, y属性是有保护的。

- 阅读剩余部分 -