- 浏览: 88158 次
- 性别:
- 来自: 北京
-
最新评论
-
A5121612886:
好文要顶!
Flash Builder 编译器选项 -
谁在哀伤望月:
非常好,谢谢分享
Flash builder4 插件终极破解方法
缓存显示对象
如果 Flash 中的设计尺寸增大,无论创建的是应用程序还是复杂的脚本动画,都需要考虑性能和优化。如果内容保持为静态(如矩形 Shape 实例),Flash 不会优化内容。因此,更改矩形的位置时,Flash 将重绘整个 Shape 实例。可以通过缓存指定的显示对象来提高 SWF 文件的性能。显示对象是一个“表面”,实际上是位图版本的实例矢量数据,矢量数据是 SWF 文件中不需要有太多更改的一种数据。因此,打开缓存的实例不会随 SWF 文件的播放而不断地重绘,这样便可快速呈现 SWF 文件。
注意
可以更新矢量数据,这时将重新创建表面。因此,缓存在表面中的矢量数据不需要在整个 SWF 文件中保持一样。
将显示对象的 cacheAsBitmap 属性设置为 true 会使显示对象缓存其自身的位图表示。 Flash 为该实例创建一个 surface 对象,该对象是一个缓存的位图,而不是矢量数据。如果要更改显示对象的边界,则重新创建表面而不是调整其大小。表面可以嵌套在其它表面之内。子表面会将其位图复制到它的父表面上。有关详细信息,请参阅第351页的“启用位
图缓存”。DisplayObject 类的 opaqueBackground 属性和 scrollRect 属性与使用 cacheAsBitmap属性的位图缓存有关。尽管这三个属性彼此互相独立,但是,当对象缓存为位图时,
opaqueBackground 和 scrollRect 属性的作用最佳,只有将 cacheAsBitmap 设置为 true时,才能看到 opaqueBackground 和 scrollRect 属性带来的性能优势。有关滚动显示对象
内容的详细信息,请参阅第345页的“平移和滚动显示对象”。有关设置不透明背景的详细信息,请参阅第351页的“设置不透明背景颜色”。
有关 Alpha 通道遮罩(要求将 cacheAsBitmap 属性设置为 true)的信息,请参阅第357页的“Alpha 通道遮罩”。
何时启用缓存
对显示对象启用缓存可创建表面,表面具有助于更快地呈现复杂的矢量动画等优点。有几种情形需要启用缓存。可能您总是希望通过启用缓存来提高 SWF 文件的性能;但是,某些情况下启用缓存并不能提高性能,甚至还会降低性能。本部分介绍在哪些情况下应使用缓存,以及何时使用常规显示对象。
缓存数据的总体性能取决于实例矢量数据的复杂程度、要更改的数据量,以及是否设置了opaqueBackground 属性。如果要更改的区域较小,则使用表面和使用矢量数据的差异微乎其微。在部署应用程序之前您可能需要实际测试一下这两种情况。
何时使用位图缓存
在以下典型情况下,启用位图缓存可能会带来明显的好处。
■复杂的背景图像:应用程序包含由矢量数据组成的细节丰富且背景复杂的图像(可能是应用了跟踪位图命令的图像,也可能是在 Adobe Illustrator(R) 中创建的图片)。您可能会在背景上设计动画人物,这会降低动画的速度,因为背景需要持续地重新生成矢量数据。要提高性能,可以将背景显示对象的 opaqueBackground 属性设置为 true。背景将呈现为位图,可以迅速地重绘,所以动画的播放速度比较快。
■滚动文本字段:应用程序在滚动文本字段中显示大量的文本。可以将文本字段放置在您设置为可滚动的具有滚动框(使用 scrollRect 属性)的显示对象中。这可以使指定的实例进行快速像素滚动。当用户滚动显示对象实例时,Flash 通过将滚动的像素向上移来生成新的看得见的区域,而不是重新生成整个文本字段。
■窗口排列秩序:应用程序具有秩序复杂的重叠窗口。每个窗口都可以打开或关闭(例如,Web 浏览器窗口)。如果将每个窗口标记为一个表面(将 cacheAsBitmap 属性设置为true),则各个窗口将隔离开来进行缓存。用户可以拖动窗口使其互相重叠,每个窗口并不重新生成矢量内容。
■Alpha 通道遮罩:当使用 Alpha 通道遮罩时,必须将 cacheAsBitmap 属性设置为 true。
有关详细信息,请参阅第357页的“Alpha 通道遮罩”。
所有这些情况下,启用位图缓存后都通过优化矢量图来提高应用程序的响应能力和互动性。此外,只要对显示对象应用滤镜,Flash Player 就会将 cacheAsBitmap 自动设置为 true,即使已明确将其设置为 false 也是如此。如果清除了显示对象的所有滤镜,则 cacheAsBitmap属性会返回最后设置的值。
何时避免使用位图缓存
滥用此功能对 SWF 文件可能会有负面影响。使用位图缓存时,请记住下面的准则:
■不要过度使用表面(启用了缓存的显示对象)。每个表面使用的内存都比常规显示对象多,这意味着只在需要提高呈现性能时才启用表面。
缓存的位图使用的内存比常规显示对象多很多。例如,如果舞台上 Sprite 实例的大小为250 x 250 个像素,缓存它时可能会使用 250 KB 的内存,如果它是常规(未缓存的)Sprite实例,则使用 1 KB 的内存。
■避免放大缓存的表面。如果过度使用位图缓存,尤其是放大内容时,将使用大量的内存(请参阅上一段落)。
■将表面用于通常为静态(非动画)的显示对象实例。可以拖动或移动实例,但实例内容不应为动画或者有太多的变化。(动画或变化的内容更可能包含在包含动画MovieClip 实例或 Video 实例中。)例如,如果旋转或变形某一实例,实例在表面和矢量数据之间会有所改变,这种情况难于处理,对 SWF 文件会产生负面影响。
■如果将表面和矢量数据混在一起,则会增加 Flash Player(有时还有计算机)需要处理的工作量。尽可能将表面归为一组 — 例如,创建窗口应用程序时。
启用位图缓存
要为显示对象启用位图缓存,请将它的 cacheAsBitmap 属性设置为 true:mySprite.cacheAsBitmap = true;将 cacheAsBitmap 属性设置为 true 后,您可能会注意到,显示对象的像素会自动与整个坐标对齐。测试 SWF 文件时,您还会注意到,在复杂矢量图像上执行的任何动画的呈现速度都快得多。即便将 cacheAsBitmap 已设置为 true,如果出现以下一种或多种情况,也不会创建表面(缓存的位图):
■位图高度或宽度超过 2880 个像素。
发表评论
-
全面提升你的程序效率 之细说 bitmapdata AS3 Bitmap 抠图(透明部分)和碰撞(点击)检测
2012-06-05 09:54 7289如果你是刚接触as编程 ... -
PureMVC MultiCore报错 multitonKey for this Notifier not yet initialized!
2012-05-23 16:08 1044multitonKey for this Notifier n ... -
关于优化
2012-05-21 14:58 10281. Avoid the new operator whe ... -
AS3经验之谈
2012-05-11 10:56 1190【改变输出swf的尺度,背景颜色 ... -
AS3动态获得类名及类的方法
2012-05-08 13:50 28591.获得某个实例对象的类名:getQualifiedClass ... -
Flex 应用内存泄露的分析与诊断
2012-05-03 11:32 741http://www.ibm.com/developerwor ... -
Flash Builder 编译器选项
2012-05-02 10:30 6481-benchmark 输出性 ... -
【AS3】为什么AS3.0事件流机制会有捕获阶段、目标阶段、冒泡阶段三个阶段
2012-04-26 10:03 3891原问题:事件机制有三个步骤,捕获,目标和冒泡。请问,在目标阶段 ... -
[AS3]事件流那点事儿
2012-04-26 09:36 1285在群里有人问了个问 ... -
Socket+AMF3粘包问题
2012-04-17 10:05 1920问题: 服务端Mina 前台接收Flex 参照的 ... -
AS3事件中target和currentTarget的区别
2012-04-12 15:40 1989在事件处理过程中,会 ... -
ActionScript垃圾回收
2012-04-12 15:04 1456在《给AS程序员的一点建议一文 》中我提到了释放资源的重 ... -
updateAfterEvent的作用
2012-04-10 17:26 1291flash中一共有三个类具 ... -
深入理解flash重绘
2012-04-10 17:21 1228Flash Player 会以SWF内 ... -
[AS3]registerClassAlias的用法
2012-03-20 10:35 1132registerClassAlias在利用AMF3进行序列话网 ... -
navigateToURL
2012-03-09 15:51 1216navigateToURL整理总结一些关于navigate ... -
再谈cacheAsBitmap
2012-03-09 12:00 685cacheAsBitmap这个属性很多人都知道,但少有人明白它 ... -
Debug和Release之本质区别
2012-02-27 11:41 1232关于Debug和Release之本质区别 使用条件编译来完成区 ... -
AS3中super的用法[转自A闪]
2012-02-13 10:19 1294super它到底是什么?这是我第一个问题,在帮助中石这样说明的 ... -
AS3.0的Dictionary类
2012-02-10 11:00 850AS3中的Dictionary类(flash. ...
相关推荐
在IT领域,尤其是在游戏开发、互动媒体设计以及网络应用程序中,Adobe Flash因其强大的动画和交互功能而被广泛使用。然而,随着技术的发展,Flash的性能优化成为了一个关键议题,因为性能不佳可能导致用户体验下降,...
在Flash中,可以使用BitmapData类来处理图像数据。BitmapData对象可以用于读取、写入和操作位图。例如,你可以将一个JPEG图像转换为BitmapData对象,然后进一步处理,如调整大小、裁剪或应用滤镜效果。 3. 字符与...
5. **优化性能**:为了保证动画流畅,需要合理使用缓存策略,如设置文本字段的`cacheAsBitmap`属性,以提高渲染效率。 6. **测试与调试**:在Flash IDE中预览动画效果,确保文字交替顺畅无误。如果遇到问题,可以...
这个“flash比较完整的一个绘图板源码.rar”文件包含了一个使用Flash ActionScript 3(AS3)编写的绘图板程序的源代码。ActionScript是Flash平台上的主要编程语言,主要用于添加动态功能和交互性。 源码分析: 1. *...
为了优化性能,可能需要在绘制过程中使用缓存策略,比如使用cacheAsBitmap属性。 6. **事件处理**:在Flash中,事件驱动编程是基础。通过监听鼠标事件,我们可以跟踪用户的绘画动作。例如,当鼠标按下时开始绘画,...
6. **性能优化**:由于Flash的3D渲染相对消耗资源,源码可能包含一些优化策略,如减少不必要的重绘、使用位图缓存或者使用DisplayObject的`cacheAsBitmap`属性来提高性能。 学习并理解这个源码,不仅可以帮助我们...
在本文中,我们将深入探讨如何使用Flash AS3创建一个仿苹果风格的菜单。Apple的用户界面以其优雅、直观和响应迅速而闻名,因此在Flash中实现类似的菜单效果可以帮助提升用户体验,尤其是在网页或互动应用程序中。 ...
合理使用缓存(`cacheAsBitmap`属性)可以帮助提升动画流畅度,特别是对于复杂图形或大量对象的场景。 总的来说,“圆环旋转动画,flash 脚本源码.rar”是一个很好的学习素材,它涵盖了ActionScript的基本用法和...
ActionScript是Adobe Flash Professional和Flash Builder等工具中使用的脚本语言,用于为网页和互动内容添加动态功能。AS3是其最新版本,提供了更强大的性能和面向对象的特性。 首先,我们需要理解天气预报应用程序...
在Flash开发中,实现像素级精确选择是一项关键的技术,尤其对于角色扮演游戏(RPG)这样的类型,其中玩家可能需要与游戏环境中的微小元素进行互动。这篇内容将深入探讨如何在Flash环境中通过ActionScript实现像素级...
7. **代码优化**:常见的优化策略包括使用位运算代替浮点计算、避免不必要的对象创建、使用共享对象池、以及利用DisplayObject的cacheAsBitmap属性提高渲染效率。 8. **性能分析工具**:除了内置的性能输出窗口,...
如果加载的是位图,可以使用`cacheAsBitmap`属性提高渲染性能。 9. **错误处理** 为了处理加载失败的情况,我们需要监听`IOErrorEvent.IO_ERROR`和`SecurityErrorEvent.SECURITY_ERROR`事件。 10. **性能优化** ...
- 使用优化技巧:避免不必要的计算,利用缓存asBitmap或cacheAsBitmap提升性能。 - 调试组件:利用Flash的ActionScript编译器错误和警告,以及Debug版本的Flash Player进行调试。 七、发布与重用 一旦组件完成,...
如果源码使用了DisplayObject的cacheAsBitmap属性,那么在动画运行过程中,只有首次绘制时会消耗计算资源,后续的动画帧只需要简单地重新定位和绘制缓存的位图,从而减少重绘次数。 为了实现7种颜色的线条动画,...
在Flash开发中,这样的源码通常涉及到ActionScript 3.0编程语言,以及Flash Professional IDE或者Flash Builder等开发工具的使用。ActionScript是用于创建交互式、动态内容的关键技术,尤其在网页多媒体元素和游戏...
7. **优化性能**: 对于大量的图片或复杂动画,开发者可能考虑了性能优化,如使用`cacheAsBitmap`属性来提高渲染速度,或者使用`dispose()`方法释放不再使用的资源。 8. **组件自定义**: Flash中的组件系统允许...
下面将深入探讨《flash优化技巧》中的关键知识点,帮助开发者提升Flash应用的效率。 #### CPU资源管理与优化 - **理解渲染机制**:Flash的渲染机制会占用CPU资源,尤其是在处理复杂的图形或动画时。即使一个对象的...
为了提高性能,程序可能使用`cacheAsBitmap`属性将复杂形状转化为位图,这样在移动或缩放时可以更快地渲染。 9. **事件冒泡和捕获**: 事件模型在绘图程序中起着关键作用。当用户交互时,事件会从最底层的元素...
6. **优化性能**:在处理大量绘图操作时,为了提高性能,可以使用`stage`的`cacheAsBitmap`属性,将其设置为`true`,以缓存舞台的位图表示,减少重绘次数。 7. **交互设计**:除了基本的绘画和清除功能,还可以增加...
注意性能优化,如避免不必要的复制`BitmapData`对象,使用`cacheAsBitmap`属性提高渲染效率,以及合理调度动画执行,避免过度占用CPU资源。 通过以上这些知识点,开发者可以创建出丰富多彩的图片随机过渡效果,使...