- 浏览: 102673 次
- 性别:
- 来自: 大连
文章分类
最新评论
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事件里。
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 经典的代码库
2013-03-29 16:39 03D引擎 Papervision3Dhttp://b ... -
AS3开源资源整理
2013-03-29 16:38 0一个使用Stage3D APIs 实现 ... -
如何自定义VideoPlayer的全屏行为
2012-12-13 16:58 1337Flex4中增加了一个视频播放组件:VideoPlayer,相 ... -
代码改变影片剪辑亮度、色调、高级、透明度的方法
2012-12-03 08:41 876通过Color类来改变影片颜色 亮度:(设置影片明暗效果) ... -
as3自己写皮肤
2012-11-30 09:47 0<?xml version="1.0" ... -
AS3 正则表达式详解
2012-11-30 09:27 01.新建正则表达式,有两 ... -
TweenLite用法
2012-11-30 09:26 0TweenLite 是一个缓动的类 ... -
AS3位图的加载、拷贝、绘制
2012-11-30 09:26 0建Bitmap可以是使用Bitmap ... -
AS3中的反射
2012-11-30 09:25 669什么是反射 反射 (Reflection) 是指在程序在运行时 ... -
AS3文本操作
2012-11-30 09:03 1238设置文本框的边框、背景与前景色 默认状态下,文本框的边框和背景 ... -
as3日期格式化以及htmlText的安全转义类
2012-11-30 08:57 1049package org.juke{ ... -
Flash AS3.0关于TextField的过滤,HTML格式,对齐,换行等介绍
2012-11-30 08:56 1386过滤文字输入 TextField.restrict = &q ... -
AS3碎裂重组特效
2012-11-26 15:04 892碎裂指的是图片的碎裂 那我们要先做的是就是得到这张图片,在a ... -
Flash AS3.0实例---接近鼠标的图片缓动效果
2012-11-26 15:02 1188当鼠标移动到图片的一定位置时,图片会缓冲移动到鼠标位置,在现 ... -
flex air 启动本地应用程序
2012-11-26 09:23 862在air 2.0中,可以利用NativeProcess启动本地 ... -
as3打开和保存本地文件
2012-11-26 08:52 2410package { import flash.displa ... -
FLV视频类播放器全屏切换完整AS代码示例
2012-11-21 10:53 843function setFullScreen() { ... -
as3冒泡排序
2012-11-20 09:12 0<?xml version="1.0" ... -
Flex在Image组件使用蒙板
2012-11-16 17:34 0Flex在Image组件使用蒙板 1.Flex SDK3.0 ... -
Flex导入Excel文件示例
2012-11-16 17:33 01.SDK3.0 2.导入文件用FileFilter过滤。由于 ...
相关推荐
10. **性能优化**:AS3.0小游戏需要考虑性能问题,例如减少不必要的计算、优化渲染过程、使用池技术管理对象等,以确保游戏在不同设备上流畅运行。 以上知识点是AS3.0小游戏开发的核心组成部分,通过学习和实践,...
在探讨“Flash AS3.0代码优化”这一主题时,我们深入分析了如何提升Flash应用程序的性能,确保其运行更加流畅、高效。以下是从给定文件的标题、描述、标签和部分内容中提炼出的关键知识点: ### 1. DisplayObject ...
AS3.0的语法更加现代化,与ECMAScript 4紧密相关,提升了代码的可读性和效率。 地图制作在AS3.0中通常涉及到以下几个关键知识点: 1. **图形与动画**:在AS3.0中,你可以使用DisplayObject类的子类如Sprite和Shape...
总结,使用AS3.0创建仿3D饼图图表涉及多个步骤,包括定义类结构、实现3D效果、添加交互性和优化性能。通过这样的过程,我们可以创建出动态且具有视觉吸引力的饼图,直观地展示数据分布情况。对于学习ActionScript ...
提供的"as3.0.chm"文件是一个基于CHM(Compiled HTML Help)格式的帮助文档,这种格式是Windows平台上的标准帮助文件格式,包含一系列组织良好的HTML页面,便于快速查找和学习AS 3.0的相关知识。文档可能涵盖了以下...
1. 类型系统:AS3.0引入了强类型系统,提高了代码的稳定性和效率,同时降低了运行时错误。 2. 命名空间和包:为了更好地组织代码,AS3.0引入了命名空间和包的概念,如flash.display、flash.events等。 3. OOP支持:...
AS3.0(ActionScript 3.0)是Adobe Flash平台上的主要编程语言,用于创建交互式内容、网页动画以及游戏。这篇关于“as3.0开发游戏adobe”的内容显然是针对初学者,旨在教授如何使用AS3.0进行游戏开发。 在AS3.0中,...
AS3.0(ActionScript 3.0)是Adobe Flash平台上的编程语言,主要用于创建交互式网站、游戏、动画以及各种富互联网应用。在本项目中,“as3.0+翻书效果”指的是使用AS3.0实现的一种模拟真实书籍翻页效果的动态功能。...
《基于AS3.0的“超级玛丽”游戏代码解析与实现》 在计算机游戏开发领域,经典的“超级玛丽”游戏一直被用作教学和实践的典范。本文将深入探讨一个使用ActionScript 3.0(AS3.0)编写的类似“超级玛丽”的游戏代码,...
8. **优化技巧**:理解垃圾收集机制、减少不必要的计算、使用位运算提升性能等都是AS3.0编程中不可忽视的优化策略。 9. **ActionScript 3.0与Flex**:Flex是一个基于MXML和AS3.0的开发框架,主要用于构建RIA(Rich ...
【简易AS 3.0音乐播放器】是一个基于Flash CS3开发的多媒体应用程序,它集成了基本的音乐播放功能,适合于学习和实践AS3.0编程语言以及音乐播放器的构建。以下将详细解析其核心知识点: 1. **ActionScript 3.0 (AS...
【标题】"Flash AS3.0基础源码"揭示了ActionScript 3.0在创建动态视觉效果,尤其是小球运动模拟方面的基本概念和技术。AS3.0是Adobe Flash开发中的编程语言,它提供了强大的功能,使开发者能够构建互动性丰富的网络...
10. **性能优化**:PPT最后可能会讨论AS3.0的性能优化技巧,如避免全局变量、减少不必要的计算和使用位运算提升效率等。 通过这个PPT教程,学习者不仅可以系统地掌握AS3.0的基本语法,还能深入了解其在实际项目中的...
这对于学习和优化AS3.0代码至关重要。同时,理解类关系图也有助于遵循最佳实践,避免设计上的重复和冗余,提高代码的可维护性和可扩展性。 总之,AS3.0类关系图是深入学习和掌握AS3.0的重要参考资料,它以图形化的...
AS3.0(ActionScript 3.0)是Adobe Flash平台中的编程语言,它是一种基于ECMAScript的脚本语言,主要用于创建互动式内容、网页动画以及富互联网应用程序(RIA)。这个“AS3.0简单相册”项目是为初学者设计的,旨在...
相比于AS2.0,AS3.0在语法、类库和运行效率上都有显著提升,特别适合创建复杂的Web应用程序,如动态展示服装的电子商务网站。 该"flash服装网站as3.0源代码"的亮点在于其简洁的界面和精美的设计。源代码的设计者...
总之,AS3.0作为一款强大的脚本语言,提供了丰富的功能和优化的性能,使得开发者能够创造出各种创新的Web内容和应用。而《AS3.0实用公式.doc》这份文档,则是掌握AS3.0技术的一份实用参考资料,包含了实践中可能遇到...
9. **优化技巧**:高性能的游戏需要优化代码,例如减少不必要的计算、使用位运算提高效率、内存管理等。 10. **调试与测试**:源码中可能包含调试语句和测试代码,这些都是开发者在开发过程中用于检查程序状态和找...
10. **性能优化**:理解如何编写高效的AS3.0代码,如避免不必要的内存分配、使用位运算而非数学运算、正确使用缓存等,将有助于创建流畅且资源效率高的应用。 总之,这个AS3.0详细教程文档将引导你深入理解这个强大...
UI组件封装在AS3.0中的应用,能够帮助开发者构建出具有专业级外观和功能的用户界面,从而提升开发效率,减少代码冗余。 首先,UI组件是指在用户界面上可以独立使用和重用的小型交互元素,如按钮、文本框、列表视图...