欢迎来到天天文库
浏览记录
ID:34723011
大小:348.74 KB
页数:7页
时间:2019-03-10
《flashswf程序性能风格)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、FlashSWF程序性能优化唐胜凯2012-04-1023: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.其
2、它55.更多的优化65.1.优化网络通信及数据交互65.2.优化音视频69.监测游戏性能的工具6某种优化技巧,可能既优化了CPU也优化了内存,也可能优化了CPU而增加了内存,或优化了内存而增加了CPU。要具体情况具体分析。1.代码优化1.1.Vector类与Array类FlashPlayer10引入了Vector类,其读写访问速度比Array类更快。varcoordinates:Array=newArray();varstarted:Number=getTimer();for(vari:int=0;i<300000;i++){coordinates[i]=Math.random()*1024;
3、}trace(getTimer()-started);//output:107èvarcoordinates:Vector.=newVector.();varstarted:Number=getTimer();for(vari:int=0;i<300000;i++){coordinates[i]=Math.random()*1024;}trace(getTimer()-started);//output:72尽可能尝试使用Vector对象API,因为它们的运行速度可能更快。以后就改用Vector,实在不行时,再用Array。1.2.新的绘图APIFlashPla
4、yer10提供了一个新的绘图API,使用它可获得更好的代码执行性能。此新绘图API包含下列方法:drawPath()、drawGraphicsData()、drawTriangles()。属于Graphics类。此新的API不提供显示性能改进是大法官户籍空了阿萨德风格化上的人发帖工业化,但可以大大减少必须编写的代码行数。代码行越少,ActionScript执行性能越好。1.3.处理像素的新方法FlashPlayer10引入了快速绘制及读取像素的方式:setVector()、getVector()。如果使用setPixel()或setPixel32(),请使用lock()和unlock()。减少
5、遍历像素的次数。配合Vector类来提高像素处理速度。1.4.事件捕获和冒泡ActionScript3.0中的事件模型引入了事件捕获和事件冒泡的概念。for(vari:int=0;i6、使用事件捕获和冒泡可以最大程度地减少事件处理。1.5.其他利用mouseEnabled和mouseChildren属性禁用鼠标交互。对于TextField,使用appendText()方法,而不要使用+=运算符。将重复使用的变量定义在循环之外。尽可能避免使用中括号[]运算符。对while循环使用相反的顺序(while(--i>-1){})对文本基本搜索和提取时,使用String类方法而非正则表达式。使用位移运算符(<<,>>)替换乘除运算符(*,/)。尝试各种代码编写方式,反复对比,找到适合自己游戏的优化。2.资源优化2.1.配置文件压缩下载2.2.将矢量图形平滑处理使用FlashProfes7、sional或Illustrator减少矢量图形的控制点。简化矢量图形的复杂路径可以大大提高游戏的平均帧速率。其实是降低了CPU占用。2.3.采用正确的图片压缩方式Fireworks可以用PNG8格式高效的压缩带Alpha通道的图片。2.4.采用轻量级的UI组件大量使用UI组件是隐形的效率杀手。采用传统的button,Sprite等代替某些组件。2.5.用位图替代矢量图形将滤镜特效在图片处理过程中
6、使用事件捕获和冒泡可以最大程度地减少事件处理。1.5.其他利用mouseEnabled和mouseChildren属性禁用鼠标交互。对于TextField,使用appendText()方法,而不要使用+=运算符。将重复使用的变量定义在循环之外。尽可能避免使用中括号[]运算符。对while循环使用相反的顺序(while(--i>-1){})对文本基本搜索和提取时,使用String类方法而非正则表达式。使用位移运算符(<<,>>)替换乘除运算符(*,/)。尝试各种代码编写方式,反复对比,找到适合自己游戏的优化。2.资源优化2.1.配置文件压缩下载2.2.将矢量图形平滑处理使用FlashProfes
7、sional或Illustrator减少矢量图形的控制点。简化矢量图形的复杂路径可以大大提高游戏的平均帧速率。其实是降低了CPU占用。2.3.采用正确的图片压缩方式Fireworks可以用PNG8格式高效的压缩带Alpha通道的图片。2.4.采用轻量级的UI组件大量使用UI组件是隐形的效率杀手。采用传统的button,Sprite等代替某些组件。2.5.用位图替代矢量图形将滤镜特效在图片处理过程中
此文档下载收益归作者所有