1.显示对象:1.1.静态的不需互动的图形,使用Shape对象。(eg:getSize(newShape())=236)
1.2.不需要时间轴的互动图形,使用Sprite对象。(eg:getSize(newSprite())=412)
1.3.需要使用时间轴的动画,使用MovieClip对象。(eg:getSize(newMovieClip())=440)
 
2.触发垃圾回收的方法:varcleanup:Shape=newShape;...cleanup=null;...cleanup=null;...cleanup=null;......
当系统认为内存使用不算多的情况下,运行时不会主动触发垃圾回收(对象删除,不一定会触发垃圾回收),这样就导致内存的释放在时间上是不可预知的;但内存分配却可以触发垃圾回收。当垃圾回收器被触发后,垃圾回收器将在程序里查找未收集的可视化对象,并检查已查找到的所有未收集的可视化对象里的各个对象的引用情况,进而检测出未被引用的非活动对象,之后会主动删除这部分非活动对象。
 
PS:
2.1.System.gc()可强制使用垃圾回收器回收非活动对象,但同时也停止除了SOCKET以外的所有操作。
2.2.image.Dispose();image=null;//立即释放。
2.3.System.disposeXML()可立即释放XML对象。
 
3.位图的滤镜效果本质:在内存中新增加一个进行滤镜后的效果图,然后将这张效果图显示出去,但原位图仍占用内存。因此,能使用PS等工具直接制作成效果图并加载,可省下这份内存,并减少在加载滤镜时的内存与CPU或GPU的占用。
 
PS:flashplayer10.1版本新增加了自动释放未过滤或未呈现到界面(如隐藏或放置到界面以外的区域)的原始位图功能(动态位图回收),需要不使用原位图30秒。但当要再次使用到原位图时,则需要重新加载。
 
4.尽可能地将显示对象的鼠标事件给关闭掉,尽可能地关闭事件的冒泡传递。
 
5.removeChild()并不能停止显示对象或回收显示对象(仅不显示而已),应尽可能地冻结显示对象。
 
6.vector比array的速度要快,同时固定了vector或Array的长度,则会更节省内存以及省时间。
Ps:不定长的vector或Array的对象,在每次变更其长度,均会在内存中重新复制原来的vector或array对象,然后再将原来的变量指向于新生产的clone对象。这会产生新的内存分配以及数据拷贝。另外,尽可能地使用原API会相对比较快与省内存。
 
7.当需要遍历array或vector时,尽可能使用COPY法,即item=vector;item.dosomework();....
PS:减少内联代码以减少内联函数的调用次数。内联的含义是只调用到对象内部的对象,比如vector.length,Math.PI等,应直接设置为外部变量。
 
8.尽可能地少使用alpha(alpha混合):因为占用CPU,特别是在叠加图层里,需要计算叠加后的颜色,则会占用CPU以及内存。
 
9.当非动画性界面时,可适当降低帧速率,但如需要保持流连接,不要小于4FPT。
PS:修改帧速率:Stage.frameRate/WindowedApplication.frameRate,但注意并不意味着应用会一直保持这个帧速率。
 
以下是一些常规指导,用于开始确定适用于不同类型活动的合适帧速率:
9.1.如果使用的是Flex框架,将起始帧速率保持为默认值(spark.components.WindowedApplication类会自动将backgroundFrameRate调整到至少为1帧/秒);
9.2.播放动画时,将帧速率设置为至少20帧/秒。通常不必超过30帧/秒。
9.3.不播放动画时,12帧/秒的帧速率可能就足够了。
9.4.系统以本机帧速率播放加载的视频,而与应用程序帧速率无关。如果视频是应用程序中唯一的移动内容,12帧/秒的帧速率。
可能就足够了。
9.5.如果应用程序没有输入焦点,5帧/秒的帧速率可能就足够了。
9.6.当AIR应用程序不可见时,2帧/秒或更低的帧速率可能就足够了。例如,如果应用程序已最小化或本机窗口的visible属性。
为false,则应用此指导。
 
10.播放影片或动画时,不要打开位图缓存。
10.1.对容器激活位图缓存会导致最终位图占用更多内存。
10.2.不在各个帧上旋转、缩放或更改缓存的内容,则位图缓存可提高呈现效果。但是,对于X和Y轴上的平移之外的任何转换,则不会提高呈现性能。在这些情况下,每次在显示对象上发生转换时,FlashPlayer都将更新缓存的位图副本。
10.3.更改alpha值会强制FlashPlayer在修改alpha值时更新内存中的缓存位图。
10.4.滤镜效果下,修改(x,y),则会重新生产位图(位图缓存种计算):滤镜依赖每次缓存的影片剪辑的播放头移动时更新的位图,每个帧都会强制FlashPlayer重绘位图。
10.5.位图的缩放,平移,旋转,使用bitmapdata的matrix会节省大量内存与CPU的占用。
10.6.在将矢量绘制为位图前后切换舞台品质是一项功能强大的技术,可以在屏幕上获得消除锯齿的内容。无论最终舞台品质如何,此技术都有效。EG:可通过使用消除锯齿文本,甚至通过将舞台品质设置为LOW来获取消除锯齿的位图。使用cacheAsBitmap属性时不能实现此技术。不建议对处于运动状态的文本应用此选项(可读性消除锯齿)。
PS:stage.quality=StageQuality.BEST;加载位图;stage.quality=StageQuality.LOW;
10.7.可将平移类的动画设置到一个函数中,减少平移动画时对函数的调用次数。如Event.ENTER_FRAME事件里

AS3.0 效率优化的更多相关文章

  1. (转)as3效率优化

    1.改进算法无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了 ...

  2. as3效率优化

    1.改进算法无论对于那一种程序,好的算法总是非常重要的,而且能够极大地提高程序性能,所以任何性能的优化第一步就是从算法或者说程序逻辑的优化开始,检查自己的程序是否有多余的运算,是否在没有必要的时候做了 ...

  3. php程序效率优化的一些策略小结

    php程序效率优化的一些策略小结   1.在可以用file_get_contents替代file.fopen.feof.fgets等系列方法的情况下,尽量用 file_get_contents,因为他 ...

  4. jquery选择器效率优化问题

    jquery选择器效率优化问题   jquery选择器固然强大,但是使用不当回导致效率问题: 1.要养成将jQuery对象缓存进变量的习惯 //不好的写法 $('#btn').bind("c ...

  5. Java&&As3.0 中的final 关键字

    Java和AS3.0关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率.   可以修饰的对象:   fin ...

  6. Jenkins Kubernetes Slave 调度效率优化小记

    Jenkins K8S Slave 调度效率优化 by yue994488@126.com 使用kubernetes为测试工具Gatling进行大规模压测,压测期间发现Jenkins调度压测实例较慢, ...

  7. 见招拆招-PostgreSQL中文全文索引效率优化

    * { color: #3e3e3e } body { font-family: "Helvetica Neue", Helvetica, "Hiragino Sans ...

  8. “AS3.0高级动画编程”学习:第一章高级碰撞检测

    AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了 ...

  9. Unity3d代码及效率优化总结

    1.PC平台的话保持场景中显示的顶点数少于200K~3M,移动设备的话少于10W,一切取决于你的目标GPU与CPU. 2.如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unli ...

随机推荐

  1. 2015多校第9场 HDU 5405 Sometimes Naive 树链剖分

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5405 题意: 给你一棵n个节点的树,有点权.        要求支持两种操作: 操作1:更改某个节点的 ...

  2. CentOS 7下安装php-redis扩展及简单使用

    前言: 在本篇文章中,我将给大家介绍如何在CentOS7上安装PHP-Redis扩展以及一些简单的实用,关于如何在Centos上安装redis的,可以参考 Redis在CentOS 7上的安装部署   ...

  3. PHP的数据类型

      原始类型共8种: 1,  4种标量类型:boolean(布尔型).integer(整形).float/double(浮点型).string(字符串型): 2,  2种复合型:array(数组).o ...

  4. 2017百度春招<度度熊买帽子的问题>

    题目: 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同.度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 数组中找到第三小的数字  注意边界条件 用STL中的set来 ...

  5. jstorm系列-2:入门

    有了基本的概念之后,我们用jstorm来做一点小事情吧 做一个很无聊的事情:给定一个时间戳,输出对应的问候语 规则是:时间戳的十位对应的数字对应不同的时间段,0-2代表早上,3代表中午,4-6代表下午 ...

  6. tinyhttpd ------ C 语言实现最简单的 HTTP 服务器

    工作流程: 1>服务器启动,在指定端口或随机选取端口绑定httpd服务. 2>收到一个http请求时(其实就是listen端口accept的时候),派生一个线程运行accept_reque ...

  7. mysql5.7 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    mysql5.7初次登录使用提示 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before ...

  8. yii2-admin扩展自定义目录

    yii2-admin文件如下.仓库地址:  https://github.com/mdmsoft/yii2-admin/tree/master 复制yii2-admin文件至自定义目录 比如我就复制到 ...

  9. 前端读者 | Web App开发入门

    本文来自互联网 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词 - Web App(意为基于WEB形式的应用程序).业界关于Web App与Nativ ...

  10. Django学习过程中的排错总结

    报错一:RuntimeError: You called this URL via POST, but the URL doesn't end in a slash and you have APPE ...