快速业务通道

Actionscript优化教程

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-10


只限闪吧游戏技术区发表,请勿转贴!
Actionscript优化教程
Marco Lapi, alias Lapo 在这篇文章中,我们讨论优化您的actionscript代码的各种不同方法,我们业已起用一套标准以测试典型的游戏代码和看看如何使Flash Player发挥最好的性能。 代码优化简介 在这篇文章中我们将要展示一些能够使您的Flash游戏获得更佳性能的技术。代码优化非常重要,它能使Flash Player资源得到更好的利用,使游戏在不同硬件上都能平稳运行。
这篇文章主要着眼于Flash Player 6的性能问题和解决它们的可用技术上。 Flash Player 7发布以后,这里面的一些问题已经得以解决,整体性能得到了改进,但在写作这篇文章时Flash Player 6正在流行,因此我们将把精力集中在这个版本 何时优化 对已有的代码进行优化可能是一个耗时长而且困难的工作,这取决于原来的代码不优化的程度。因此在投入无尽的时间之前最好先估计一下需要修改的代码的范围。 游戏代码中最受争议的通常是主循环部分,它在每一帧重复执行,对游戏角色、图像和状态数据进行更新。 主循环以外需要压缩的代码,可能是一些较长的循环结构:这时检查您并不是在浪费时间和资源也非常重要。 毫无疑问,通过从代码的不同部分节省若干毫秒,您的SWF文件将运行得更加平稳,您的游戏制作水平也将得到提高。 简洁VS有效: 书写十分简洁和可重用的代码(可能是面向对象的)是一门艺术,需要多年的经验,但有时表现得太昂贵。 当使用上面提到的高水平的途径应付有限的资源(就像Flash Player)时可能导致糟糕且不令人满意的结果。 我们并不是说OOP有害于游戏编程,而是说它需要消耗更多的时间,有时“旧编程学校(old programming school)”可能会通向更好的结果。 总之,为了使代码更简单,多数情况下应该利用OOP。但是过一会您将在本文中看到为了充分挖掘Flash Player的每一点性能,有时您需要避免使用OOP,例如当处理快速滚动或运行非常复杂的数学计算时。 基本的优化 今天,当谈及代码优化时我们通常指的是速度的提高和不要占用太多的内存,甚至不太新的计算机都有足够多的内存运行我们的Flash游戏(128MB对多数游戏来说都绰绰有余,如今一台新机器的标准已是512MB)。 >>变量 使用关键字var声明局部变量是最重要的优化方法之一。 局部变量可以更快地被播放器存取,当函数结束时可以被及时销毁。 例如一段不算好的代码如下所示:
function Dosomething() { mx = 100; my = 100; ar = new Array(); for (y=0; y for (x=0; x i = (y*mx)+x; arr[i] = i; } } return arr; }

这段代码不好是因为没有把变量声明为局部的,这使得访问它们的速度较慢,当函数结束的时候它们仍然存在而不被销毁。 改进的版本应该这样:
function doSomething() { var mx = 100; var my = 100; var ar = new Array(); for (var y = 0; y for (var x = 0; x var i = (y*mx)+x; arr[i] = i; } } return arr; }

这种情况下所有变量都被定义成局部的,它们都可以被快速访问。这对于一个循环运行10,000次的函数来说是非常重要的。当函数结束时,所有局部变量都将被销毁以释放系统资源。 >> onEnterFrame事件: onEnterFrame事件使得可以按照SWF文件的帧频连续不断地运行代码,对游戏开发者来说非常实用。 追溯到Flash 5的时代,使用这些不同方式管理例如敌人或在onEnterFrame事件中发射子弹等等逻辑是一门常用的技术。 事实上并不推荐为所有存在的影片剪辑附加这些事件处理函数,因为这将导致冗余代码并将严重影响性能。 多数时候使用仅仅一个onEnterFrame可能是一个好的解决方案:仅用一个主循

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号