优化Flash性能(最终篇)

有关Stage3D


Stage3D是基于GPU的显示渲染模型,它是Flash Player11版本发布的。这个模型对3D渲染特别有用,但是使用例如Starling的框架也能服务于2D显示。


因为原本CPU承担了全部的渲染显示工作,(当运行一个程序时CPU也要做其他工作),而现在GPU承担了一部分渲染工作,就可以让CPU有更多的空闲做其他工作。这样的利用极大的提高了设备性能。


想看Stage3D内容,你必须使用Flash Player11或更高版本。想看Stage3DAPI,你需要用Flash Player11或更高版本发布SWF文件。如果你使用Flash Professional CS6工作,那它已经全部设置好了。如果你用的是Flash Professional CS5CS5.5,你可以更新Flash安装文件使之可以发布Flash Player11。更多的细节,可以看Rich Galvan写的名为Adding Flash Player 11 support to Flash Professional CS5 and CS5.5博客。


很不幸,使用Stage 3DAPI非常困难。但是,有几个免费开源的框架可以生成使用Stage 3D所需的最基本的代码。


其中之一就是Starling,被用来开发2D游戏。它简单易学并且高效简化了Stage3D的复杂性。Starling API可以在Starling框架参考网站里寻找。


我测试了Starling来看它和blittingpartial blitting相比较如何。在某些情况下,Starling表现的比这两种blitting要不好。事实上,他表现的比没有优化的10,000个正方形影片剪辑的测试还要糟糕。


但是,在Starling测试里,如果你不选择允许编译选项,那么这小小的改变可以使帧频快两倍,输出的SWF文件可以比得上没有优化的10,000个正方形测试。但是这个结果依然让人失望,部分的问题在于,我使用编译版本的Flash Player来测试时,在编译和不编译两种情况下,Starling在编译情况下表现的不好。


另外,10,000个正方形影片剪辑测试不能显示出Starling最好的一面。如果你使用许多包含各自时间轴动画的影片剪辑,Starling会比几乎任何你使用的简单优化技术要出色。


仅仅blitting优化的性能就要优于使用Stage3DStarling所带来的收益。但是blitting也许不是那么实用,因为内存需要创建所需的位图。


范例文件在starling_test 文件夹下。


使用Starling框架时,要遵循以下步骤:


1.下载Starling.swc文件。

2.使用以下步骤将它导入你的Flash工程链接库:

1)选择,文件>发布设置>脚本设置。

2)点击库路径选项卡,然后点击浏览,选择你下载好的swc文件的位置路径。

3)在“打开文件”对话框,选择你放swc文件的路径。

4)点击“打开”,添加starling.swc到你的链接库路径。

5)点击OK关闭高级ActionScript 3.0设置面板,然后再次点击OK关闭发布设置。

6)保存Fla文件,你就可以使用Starling了。

(我一般都是在builder里导入和使用的,估计这里有人看了会迷茫,我翻译的不是太好,自己多选两次就知道了,让我偷个懒吧!)


如果你用Stage3D发布移动air游戏(它包括了类似Starling的框架来使用Stage3D),可以设置渲染模式来指导。如果你发布的是内置HTML文件,可在发布设置里设置窗口模式进行指导。


你可以在Adobe Gaming site学习更多有关StarlingStage3D API的信息。


下一步


上面所讨论的优化技术外,开发Flash项目要提高重放性能时,还有另外两种你可以使用的最佳实践技术:


1.为你声明的每个变量确定类型,如果你肯花时间确定所有变量的类型,代码会执行的更快,当遇到错误时,编译显示的错误信息也更具描述性和帮助性。可以查看测试范例variables_typed_v_untyped。


2.使用Vector而不是array来存储数据信息。为了看到它的性能,可以看array_v_vector文件。

希望这篇文章的推荐的大纲可以帮你提高在Flash Professional里创建工程的性能。想要学习更多有关建立Flash动画,应用和游戏的信息,可以访问Flash Developer Center


原文出自:http://bbs.9ria.com/forum.php?mod=viewthread&tid=157971&page=1&extra=#pid1506219

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值