- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[FlashSWF程序性能优化-学习笔记vgbhj2
Flash SWF程序性能优化唐胜凯 2012-04-10 23:11目录1.代码优化11.1. Vector类与Array类11.2. 新的绘图API11.3. 处理像素的新方法11.4. 事件捕获和冒泡21.5. 其他22.资源优化22.1. 配置文件压缩下载22.2. 将矢量图形平滑处理22.3. 采用正确的图片压缩方式32.4. 采用轻量级的UI组件32.5. 用位图替代矢量图形32.6. 位图缓存cacheAsBitmap33.内存优化43.1. 选择适当的显示对象43.2. 重复利用游戏元素43.3. 释放内存43.4. 冻结和解冻对象44. 渲染优化54.1. 重绘区域选项54.2. 选择适合你的游戏渲染引擎54.3. 其它55. 更多的优化65.1. 优化网络通信及数据交互65.2. 优化音视频69. 监测游戏性能的工具6某种优化技巧,可能既优化了CPU也优化了内存,也可能优化了CPU而增加了内存,或优化了内存而增加了CPU。要具体情况具体分析。1.代码优化1.1. Vector类与Array类Flash Player 10 引入了 Vector 类, 其读写访问速度比 Array 类更快。var coordinates:Array = new Array();var started:Number = getTimer(); for (var i:int = 0; i 300000; i++) { coordinates[i] = Math.random()*1024; } trace(getTimer() - started); // output: 107var coordinates:Vector.Number = new Vector.Number(); var started:Number = getTimer(); for (var i:int = 0; i 300000; i++) { coordinates[i] = Math.random()*1024; } trace(getTimer() - started); // output: 72尽可能尝试使用 Vector 对象 API,因为它们的运行速度可能更快。以后就改用Vector,实在不行时,再用Array。1.2. 新的绘图APIFlash Player 10 提供了一个新的绘图 API,使用它可获得更好的代码执行性能。此新绘图 API 包含下列方法:drawPath()、drawGraphicsData()、drawTriangles()。属于Graphics类。此新的 API 不提供显示性能改进是大法官户籍空了阿萨德风格化上的人发帖工业化, 但可以大大减少必须编写的代码行数。代码行越少, ActionScript 执行性能越好。1.3. 处理像素的新方法Flash Player 10 引入了快速绘制及读取像素的方式:setVector()、getVector()。如果使用setPixel() 或 setPixel32(),请使用 lock() 和 unlock()。减少遍历像素的次数。配合Vector类来提高像素处理速度。1.4. 事件捕获和冒泡ActionScript 3.0 中的事件模型引入了事件捕获和事件冒泡的概念。for ( var i:int = 0; i MAX_NUM; i++ ) { …… // 侦听鼠标点击事件,给每个敌人添加 enemy.addEventListener ( MouseEvent.CLICK, onEnemyClick ); }…… //只给敌人容器添加,因为事件可以冒泡_NUM; i++ ) { …… }使用事件捕获和冒泡可以最大程度地减少事件处理。1.5. 其他利用mouseEnabled 和 mouseChildren 属性禁用鼠标交互。对于TextField ,使用 appendText() 方法, 而不要使用 += 运算符。将重复使用的变量定义在循环之外。尽可能避免使用中括号[]运算符。对 while 循环使用相反的顺序 ( while (--i -1) { } )对文本基本有哪些信誉好的足球投注网站和提取时,使用 String 类方法而非正则表达式。使用位移运算符(,)替换乘除运算符(*,/)。尝试各种代码编写方式 ,反复对比,找到适合自己游戏的优化。2.资源优化2.1. 配置文件压缩下载2.2. 将矢量图形平滑处理使用Flash Professional或Illustrator 减少矢量图形的控制点。简化矢量图形的复杂路径可以大大提高游戏的平均帧速率。其实是降低了CPU占用。2.3. 采用正确的图片压缩方式Fireworks 可以用PNG8格式高效的压缩带Al
文档评论(0)