`

【as3手册小记】位图缓存 何时使用和何时不使用

    博客分类:
  • flex
阅读更多

何时使用位图缓存

在以下典型情况下,启用位图缓存可能会带来明显的好处。

■ 复杂的背景图像:应用程序包含由矢量数据组成的细节丰富且背景复杂的图像(可能是

应用了跟踪位图命令的图像,也可能是在 Adobe Illustrator® 中创建的图片)。您可能会

在背景上设计动画人物,这会降低动画的速度,因为背景需要持续地重新生成矢量数据。

要提高性能,可以将背景显示对象的 opaqueBackground 属性设置为 true。背景将呈现

为位图,可以迅速地重绘,所以动画的播放速度比较快。

■ 滚动文本字段:应用程序在滚动文本字段中显示大量的文本。可以将文本字段放置在您

设置为可滚动的具有滚动框(使用 scrollRect 属性)的显示对象中。这可以使指定的

实例进行快速像素滚动。当用户滚动显示对象实例时,Flash 通过将滚动的像素向上移来

生成新的看得见的区域,而不是重新生成整个文本字段。

■ 窗口排列秩序:应用程序具有秩序复杂的重叠窗口。每个窗口都可以打开或关闭(例如,

Web 浏览器窗口) 。如果将每个窗口标记为一个表面(将 cacheAsBitmap 属性设置为

true),则各个窗口将隔离开来进行缓存。用户可以拖动窗口使其互相重叠,每个窗口并

不重新生成矢量内容。

■ Alpha 通道遮罩:当使用 Alpha 通道遮罩时,必须将 cacheAsBitmap 属性设置为 true。

 

所有这些情况下,启用位图缓存后都通过优化矢量图来提高应用程序的响应能力和互动性。

此外,只要对显示对象应用滤镜,Flash Player 就会将 cacheAsBitmap 自动设置为 true,即

使已明确将其设置为 false 也是如此。如果清除了显示对象的所有滤镜,则 cacheAsBitmap

属性会返回最后设置的值。



 

何时避免使用位图缓存

滥用此功能对 SWF 文件可能会有负面影响。使用位图缓存时,请记住下面的准则:

■ 不要过度使用表面(启用了缓存的显示对象) 。每个表面使用的内存都比常规显示对象

多,这意味着只在需要提高呈现性能时才启用表面。

缓存的位图使用的内存比常规显示对象多很多。例如,如果舞台上 Sprite 实例的大小为

250 x 250 个像素,缓存它时可能会使用 250 KB 的内存,如果它是常规(未缓存的)

Sprite 实例,则使用 1 KB 的内存。

■ 避免放大缓存的表面。如果过度使用位图缓存,尤其是放大内容时,将使用大量的内存

(请参阅上一段落)。

■ 将表面用于通常为静态(非动画)的显示对象实例。可以拖动或移动实例,但实例内容

不应为动画或者有太多的变化。(动画或变化的内容更可能包含在包含动画的

MovieClip 实例或 Video 实例中。)例如,如果旋转或变形某一实例,实例在表面和矢

量数据之间会有所改变,这种情况难于处理,对 SWF 文件会产生负面影响。

■ 如果将表面和矢量数据混在一起,则会增加 Flash Player (有时还有计算机)需要处理

的工作量。尽可能将表面归为一组 — 例如,创建窗口应用程序时。


即便将 cacheAsBitmap 已设置为 true,如果出现以下一种或多种情况,也不会创建表面(缓

存的位图):

■ 位图高度或宽度超过 2880 个像素。

■ 位图分配不成功(由于内存不足而出现的错误)。

 

 

分享到:
评论

相关推荐

    Sublime Text3 安装到使用个人小记

    Sublime Text3 安装到使用个人小记

    d3js 学习小记

    ### D3.js 学习小记 #### SVG基础与D3.js绘图实践 ##### SVG基础 SVG(可缩放矢量图形)是一种基于XML的矢量图像格式,用于描述二维图形以及图形应用。SVG 图像可以被放大、缩小而不会失真,非常适合于网页制作。...

    阿里大数据分析平台使用小记

    阿里大数据分析平台使用小记 阿里大数据分析平台是阿里巴巴集团旗下的数据分析平台,提供了大数据处理、存储和分析的能力。该平台主要应用于天池大数据竞赛平台,提供了一些使用经验和教程,但不是完整的开发使用...

    Sqlite数据库sqlite3命令小记.txt

    ### Sqlite数据库sqlite3命令小记 #### 一、引言 SQLite 是一款轻量级的数据库管理系统,它被广泛应用于各种应用场景中,特别是在移动设备和嵌入式系统上。SQLite 不仅支持标准的 SQL 语法,还提供了一系列实用的...

    rman使用小记.doc

    《RMAN使用小记》 Recovery Manager(RMAN)是Oracle数据库系统中用于数据恢复和备份的关键工具。本文将详细介绍RMAN的一些核心特性和使用方法,帮助读者理解和掌握RMAN的基本操作。 首先,了解RMAN的三个重要特性...

    asp.net Jmail使用小记

    "Jmail组件使用小记.doc"文件很可能包含了更详尽的使用教程和注意事项,包括如何处理错误、如何调试、如何设置HTML格式的邮件、如何使用模板等功能。阅读这份文档可以帮助你更深入地理解和使用Jmail组件,解决在实际...

    LocalCache 学习小记1

    【LocalCache 学习小记1】 LocalCache 是一种本地高速缓存机制,它主要用于提升数据获取速度,尤其是在处理大量数据时,可以有效避免频繁访问远程数据库或分布式缓存,如 Redis 中的热键问题。LocalCache 不是...

    树形菜单DTree使用小记

    在实际项目中,TestDTree可能是一个测试用例或者示例代码,用于演示DTree的正确使用和功能验证。开发者可以通过阅读和运行这些代码,更好地理解和掌握DTree的使用。 总结,树形菜单DTree是Web开发中的重要组件,其...

    xstream使用小记

    《Xstream使用小记》 Xstream是一款Java库,它提供了简单且强大的方式来序列化和反序列化Java对象到XML,以及从XML回转换为Java对象。在本文中,我们将深入探讨Xstream的核心概念、使用场景以及如何通过实例进行...

    源代码·Qt/C++使用小记9

    Qt/C++使用小记9【使用UDP创建连接发送消息/传输单个文件】

    visjs使用小记

    "visjs使用小记" Vis.js是一个动态的、基于浏览器的可视化库,能够处理大量的动态数据,并能够与这些数据进行交互操作。该库由Almende B.V公司开发,包含DataSet、Timeline和Graph组件。下面是Vis.js的知识点总结:...

    Java transient关键字使用小记

    下面的代码展示了如何在序列化和反序列化过程中使用`transient`关键字。当`User`对象被序列化并写入文件,然后从文件中读取并反序列化时,`passwd`字段的值不会被保存和恢复。 ```java import java.io.*; public ...

    android开发小记

    在“android开发小记”这个主题中,我们可以深入探讨Android应用程序开发的相关知识,特别是通过查看提供的压缩文件中的代码示例。这些文件名如lesson_8_code.zip至lesson_20_codel.zip,以及不同的Mp3Player版本,...

    Python3语法小记字典dictionary.docx

    - **值(value)的特性**:字典中的值可以是任意类型的数据,包括可变类型(如列表list)和不可变类型(如整数int)。 - **键值对(key-value pairs)**:每个键对应一个值,且每个键在字典中都是唯一的,而值可以重复。...

    在Solaris上使用优盘小记

    在Solaris上使用优盘小记-Solaris -华夏名网资讯中心 虚拟主机,域名注册,双线虚拟主机,服务器租赁,为7万用户提供服务

    git使用小记-github1

    git使用小记----作者:谭耀武概述本文以FrameworkBenchmarks为例对git的一些操作进行说明fork版地址:https://github.c

    每日小记,记录账单和日记

    "每日小记"就是这样一款应用,它结合了记账和日记的功能,为用户提供了一个全面的生活记录平台。 首先,我们要了解记账的重要性。在个人财务管理中,记账是一个基础但至关重要的步骤。通过"每日小记",用户可以轻松...

    Python 3 语法小记(一)入门 (print 函数用法总结).docx

    Python 是一种广泛使用的高级编程语言, Python 语法小记旨在为刚刚开始接触 Python 的程序员提供重要函数的记忆,保证学习和开发过程进展顺利。本文将总结 print 函数的用法,包括基本用法、变量输出、格式化输出、...

    fontawesome-iconpicker使用小记

    在Bootstrap项目中,为了增强用户体验并提供更直观的图标选择,我们可以使用`fontawesome-iconpicker`这个插件。`fontawesome-iconpicker`是基于Font Awesome图标库和Bootstrap框架设计的一个组件,它允许用户以图形...

    linux+java+python3+numpy+stl的3d打印小记

    在本项目中,我们将探索如何利用Linux操作系统,Java编程语言,Python3,NumPy库以及STL文件格式来实现3D打印技术。这是一个跨学科的综合应用,涉及到计算机科学、软件开发以及制造技术。 首先,Linux是开源的操作...

Global site tag (gtag.js) - Google Analytics