博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AS3整理的减少CPU消耗的方法
阅读量:5880 次
发布时间:2019-06-19

本文共 1221 字,大约阅读时间需要 4 分钟。

1.在开发2.5D游戏当中,我们可以讲场景中的数据全部换成位图,这样可以大大的降低CPU的消耗。我们可以在位图的上面一层加个sprite,记录下你鼠标的操作还有位置,然后再你的isoWOrld里面在对应的位置找到对应的物体,执行对应的鼠标事件。
2.FLASH PLAYER10.1 引入了两种减少CPU处理的功能,一个是睡眠模式,另一个是SWF内容位于屏幕之外是暂停和恢复该内容
3. 睡眠模式是暂停呈现并将Stage.frameRate设置成4fps, 之所以不是0,是让所有连接保持打开状态(NetStream, Socket和NetConnection)。之所以是4,是因为许多电话制造商采用此帧速率作为刷新率
4. 暂停和恢复,当内容位置屏幕之外时候(全部内容在屏幕之外),暂停SWF文件,位于屏幕之内时候恢复SWF,从而限制CPU使用量。
5. 导致SWF位于屏幕之外的两种情况是,第一,滚动页面,第二,在浏览器中切换到新的标签。前者hasPriority HTML 参数设置为 true的时候ActionScript 的执行不会被暂停,后者无论是设为TRUE和 FALSE SWF都会降低到2FPS。关于呈现,两种情况下都会被暂停。
6. 显示对象的冻结与解冻,对于显示对象一定要使用 REMOVED_FROM_STAGE 和 ADDED_TO_STAGE 事件进行冻结和解冻。意思是将显示对象从显示列表中移除的时候,其事件一定要移除。不移除则将继续执行事件,如ENTER_FRAME,这将会消耗 CPU,影响效率。
7. 自动冻结,FLASH PLAYER10以及更高版本中,当遇到空帧的时候,自动执行冻结,无需手动remove监听
8.  Loader的冻结,flash player 9采用unload就行冻结,flash player10引入了一个新的方法unloadAndStop()进行冻结,该方法会卸载SWF文件,自动冻结SWF中的每个显示对象并强制运行垃圾回收。
9. 关于MovieClip和Sprite的鼠标事件,当不需要鼠标事件的时候将mouseEnabled和mouseChildren设为false. 不断的检测鼠标交互事件会消耗CPU,尤其是大量交互对象重叠的情况。
10. 对于执行时间太长的非动画内容,优先选择计时器,而不是 Event.ENTER_FRAME 事件。
11. 在 enterFrame 事件或 Timer 处理函数中,尽量减少对可导致重绘屏幕的显示对象外观的更改。
12.尽量减少补间动画,以节省更多的CPU处理
13.去掉半透明的地方(如果不需要的话)
14.尽量把MovieClip的mouseChild属性设为false
15最好少用矢量图

转载于:https://www.cnblogs.com/as3lib/archive/2012/08/04/2623235.html

你可能感兴趣的文章
Ubuntu 设置当前用户sudo免密码
查看>>
设置tomcat远程debug
查看>>
android 电池(一):锂电池基本原理篇【转】
查看>>
Total Command 常用快捷键
查看>>
ionic 调用手机的打电话功能
查看>>
怎么使用阿里云直播服务应用到现在主流直播平台中
查看>>
Xcode全局替换内容,一键Replace
查看>>
1000 加密算法
查看>>
exif_imagetype() 函数在linux下的php中不存在
查看>>
Ruby的case语句
查看>>
Linux的链接文件-ln命令
查看>>
maven的tomcat插件如何进行debug调试
查看>>
table表头固定
查看>>
截取字符串中两个字符串中的字符串
查看>>
spring xml properties split with comma for list
查看>>
判断点是否在三角形内
查看>>
Android实战简易教程-第二十三枪(基于Baas的用户注冊验证username是否反复功能!)...
查看>>
在odl中怎样实现rpc
查看>>
leetcode 110 Balanced Binary Tree
查看>>
python活用isdigit方法显示系统进程
查看>>