Flash 的媒体组织方式(上)

原创 2004年06月07日 09:40:00
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

第三部分  Flash 的媒体组织方式(上)

一、资源管理

库(Library)是Flash文档的资源管理器,所有可被Flash利用的资源都可以放在库中,并接受库的管理。在使用Flash进行创作设计或软件开发之前,首先要将媒体内容添加至Flash文档,当然也可以在 Flash 中直接创建矢量图或文本。或者从外部导入矢量图、位图、视频和声音;可以创建元件,即可重用的媒体内容。在运行时,也可以使用脚本动态地将媒体内容添加至文档。

对于已经导入的媒体资源,Flash使用库(Library)对它们进行管理。从另外一个角度来说,库是用来存储已经导入的文件,并把它们作为可被重复利用的资源。从外部导入的文件和在Flash中直接绘制的图形是进行创作的基础。利用元件可以使用嵌套(nesting)的方式进一步组织这些媒体,使之成为独立但可重复利用的模块。元件包括:图形(Graphic)、按钮(Button)和电影剪辑(MovieClip)。库还可以包含添加到文档的组件(Component),组件作为编译好的剪辑显示在库中。不同的Flash文档间还可以进行库项目的交流,一个Flash文档可以打开另一个Flash文档的库,从中获取当前文档所需要的库项目,以实现资源的共享。库可以作为资源永久保存,Flash启动时被自动加载,Flash还提供了若干个范例库以供用户使用。

同时,库资源可以作为 SWF 文件导出到一个 URL,从而创建运行时共享库。这里需要涉及到两个概念:资源文档和目标文档。所谓目标文档是指当前正在编辑,需要利用共享库中的资源的文档,而资源文档是指已经被导出到某个URLswf文件,用于存储库资源,供目标文档使用。这里的URL必须符合Flash Player 7安全沙箱的要求,简单地说,目标文档和资源文档在发布后必须位于同一个域名或指定域名下,然而这一点在本地调试时确实不受限制的。在本地运行的SwfExe文件也不受这个安全机制限制,可以直接使用运行时共享库中的资源。运行时共享库对于RIA开发非常有用,使库项目的开发和软件整体整合开发分离,并且共享资源库可以被多个目标文档所使用,提高了库项目资源的可复用性。

库还可以对库项目进行管理,创建文件夹对库项目进行分类,修改库项目的属性。被导入的资源可以在库中直接调用其它编辑程序进行编辑,编辑完成后Flash可以直接更新库中原来的项目。可以直接选中未使用的库项目,这样开发者便可以删除一些无用的库项目,精简库资源,使Flash文档更小。这里需要注意的是,一般情况下,未使用的库项目并不包含在发布后的Swf文档中,只有当库项目被导出为运行时共享库时,未使用的库项目才同时被导出到Swf文档中。

 

二、时间轴上对象的组织

       对象在Flash中被称为实例(Instance),而库中的库项目通常被成为符号(Symbol),类似于通常面向对象编程中的类。所谓“时间轴上对象的组织”也即时间轴上实例的组织。

时间轴被分为很多的小格,连续的时间被离散化,每一小格对应了一个状态——Flash执行的状态,小格被称为:帧(Frame)。帧包括两种,关键帧(Key Frame)和普通帧(Frame)。在关键帧中可以放置内容,而普通帧则不允许放置内容,并且由Flash根据关键帧的内容自动生成。不同时间轴之间是相互独立的,它们的播放是互不影响的。这里需要指出的是,单帧的时间轴与多帧时间轴的区别,单帧的时间轴并不循环播放,而多帧的时间轴在没有脚本语句控制的情况下会连续循环地播放。

时间轴与时间轴之间的组织是一种树形结构,它们始终以一种嵌套(nesting)的方式进行组织。父时间轴包含了子时间轴,并可以相互引用和控制。主时间轴(_root)是这个树形结构的根节点。在任意节点下的子节点集合并非一直保持原有的状态,随着时间轴上播放头的推进,其子节点集合也在发生着变化,所以这棵树在时间上是一棵动态树。

正是由于这样一种组织方式,每一个对象都有一个路径指明对象在这棵树中的位置,以便脚本引用。路径包括绝对路径和相对路径。绝对路径从主时间轴开始;而相对路径由当前位置开始,例如MC._parentMC的父时间轴。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2004-6-7910460.png

Flash 时间轴的树形组织方式(1

CSDN_Dev_Image_2004-6-7910462.jpg

Flash 时间轴的树形组织方式(2

 

对象的生存期和作用域在时间轴上被定义。首先,对象在关键帧中被创建,并在其后的普通帧中一直存在(电影剪辑、组件等对象还可以被脚本引用),直到遇到一个关键帧,对象被移除或被重新创建。如果前后两个关键帧中对象被赋的引用名不同,对象将被重新创建和初始化。多帧循环的时间轴在进行循环播放时,从最后一帧跳到第一帧时时间轴将被刷新,这与使用脚本语句进行播放控制的效果是一样的。时间轴被刷新后,时间轴上的所有对象将被清除,并重新创建。在后面将对时间轴刷新进行详细讨论。

事实上,Flash中对象的组织并不仅仅只是在时间轴的组织,深度(Depth)组织方式与时间轴组织一样重要。所以在单个的时间轴上,Flash的对象组织方式是二唯的,即时间轴方向和深度方向。

在大多数的可视化编程中,需要对屏幕上的对象进行组织。这种组织意味着各个可视对象在屏幕上的位置以及它们互相层叠的方式。在Flash中可视化屏幕对象可以是电影剪辑(MovieClip)、按钮(Button)、文本框(TextField)和组件(Component)。当使用Actionscript进行编程时可以使用一定的方式来控制他们的层叠方式,当然,在Flash的编辑状态下也可以使用菜单命令对屏幕对象的层叠方式进行调节。

Flash 的编辑环境下,对象的组织方式是不严格的,使用Flash 脚本可以实现与编辑状态下一样的控制,它可以在程序中直接给出屏幕对象的组织方式。但是在脚本中,用户仅可以控制电影剪辑、按钮、非静态的文本对象以及组件,因为只有他们才是屏幕元素,可以被指定一个引用名,以便在Actionscrip中实现对他们的操作和控制,而其它的那些可视对象,例如静态文本、色块、线条始终位于编辑时的原始位置。值得指出的是,组件(Component)事实上是被编译后的电影剪辑,其行为特性与电影剪辑是类似的。

前面提到过,Flash的时间轴组织是一棵在时间轴方向上动态的树,并且主时间轴(_root)是这棵树个根节点。需要注意的是,这里所说的深度(Depth)并非树的深度。深度是对不同时间轴层次的描述,它表现在两个方面:对象在屏幕的显示层次(Z-Order)和对象的加载顺序(Load-Order)。另外时间轴在其父时间轴上有一定的生存期。因为时间轴往往包含在具体的对象中,所以其生存期的概念与对象生存期的概念是一致的。

Flash 的媒体组织方式(下)

三、深度(Depth)深度(Depth)仅仅需要一个数字描述,Flash Player 使用这个数字来指定对象的层叠位置。所谓层叠是指一种显示时的的遮盖关系。深度值较大则显示较前,深度值较小则显示较后...
  • 9116
  • 9116
  • 2004年06月07日 09:39
  • 1067

Cache组织方式

计算机系统结构中,将主存与Cache的映像分成三种方式,直接映像,全相联映像,组相联映像。所谓映像就是将内存地址与Cache地址间的相互转换,我们知道Cache的容量相对于主存来说很小,为了能将两者有...
  • wangkechuang
  • wangkechuang
  • 2012年09月16日 17:06
  • 1535

CACHE 的组织方式

这里主要介绍四种cache的组织方式:1. Direct-Mapped Cache:直接映射 2. Associative Cache: 相联3: Set-Associative Cache: 组相联...
  • huangkangying
  • huangkangying
  • 2010年11月11日 20:32
  • 521

3、进程控制块及其作用、组织方式

进程控制块中的信息1) 进程标识符(1) 内部标识符 操作系统为每一个进程赋予的唯一数字标识符,系统使用 (2) 外部标识符 有创建者提供,通常有字母与数字组成,往往是由用户(进程)在...
  • canyanruxue
  • canyanruxue
  • 2017年11月03日 21:37
  • 186

(一)Android应用开发代码组织方式

1、按照代码的功能类型划分程序的模块         a)       在编写Android应用程序的时候,我们首先肯定要把应用程序的界面给创建出来。那这个界面我们一般的写法是我需要创建一个Ac...
  • liuyaokui123
  • liuyaokui123
  • 2014年03月27日 21:49
  • 803

操作系统实验之UNIX混合索引方式模拟(外存的增量式索引组织方式)

操作系统实验之UNIX混合索引方式模拟(外存的增量式索引组织方式)目前常用的外存组织方式有: 连续组织方式 链式组织方式 隐式链接 显式链接 索引组织方式 单级索引组织方式 多级索引组织方式 增量...
  • ping1632743560
  • ping1632743560
  • 2017年06月12日 21:59
  • 561

媒体家族(簇)的结构不正确

因工作需要还原一个数据库备份文件时遇到了这个错误提示,搜索之后找到了这篇文章。遂尝试进行翻译。水平粗浅,还望见谅。 “设备上的媒体家族的结构不正确,SQLSERVER无法处理此媒体家族。”——这并不...
  • saturn4711
  • saturn4711
  • 2015年10月21日 15:40
  • 814

操作系统之磁盘管理

磁盘存储器具有容量大、存取速度快、支持随机存取的特点,因此被广泛应用于计算机系统中。对于操作系统来说,管理好磁盘的三大要求和目标是: (1)合理有效利用磁盘:采用合理的文件存储空间分配算法,尽量...
  • Ajay666
  • Ajay666
  • 2017年07月14日 10:43
  • 388

Python学习笔记 之 Python程序组织

在Python中组织程序,组织的方法有两种吧?使用模块,或者使用包 1. 使用模块组织程序: 导入模块方法: import sys; 将系统的sys模块导入到shell中。在你将代...
  • xiao_0429
  • xiao_0429
  • 2012年11月27日 08:51
  • 2471

媒体家族结构不正确的处理

sql server2005数据库,恢复时报错“设备'XXXXXX'上的媒体家族的结构不正确。SQL Server无法处理此媒体家族。” 重建数据库、强制恢复等方法试过失败之后,硬着头皮上阵...
  • i3myself
  • i3myself
  • 2013年07月15日 09:59
  • 890
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Flash 的媒体组织方式(上)
举报原因:
原因补充:

(最多只允许输入30个字)