(信号与信息处理专业论文)嵌入式flash播放器研究与实现.pdf_第1页
(信号与信息处理专业论文)嵌入式flash播放器研究与实现.pdf_第2页
(信号与信息处理专业论文)嵌入式flash播放器研究与实现.pdf_第3页
(信号与信息处理专业论文)嵌入式flash播放器研究与实现.pdf_第4页
(信号与信息处理专业论文)嵌入式flash播放器研究与实现.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

(信号与信息处理专业论文)嵌入式flash播放器研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 目前,国家正在大力推进电视网络的数字化改造,数以千万计的电视机顶盒 走进了家庭。随着技术的不断创新和发展,以及通信网、计算机网和广播电视网 “三网合一”的必然趋势,机顶盒正在从一个简单的调谐器和解码器发展成为具 有多种功能的网络多媒体终端,因此它必须能够支持除数字电视信号以外的更多 的多媒体格式,现在已经出现了能支持m p 3 和r m v b 等音视频格式的机顶盒。 f l a s h 动画是目前网络上应用得最广泛的多媒体格式之一。但是,由于种种技术上 的困难,现在市场上暂时还没有能够支持f l a s h 动画播放的机顶盒。 本文设计并实现了适合机顶盒使用的嵌入式f l a s h 播放器。首先分析了矢量 动画原理以及f l a s h 文件格式;然后,设计出了播放器软件的整体架构与工作流 程;接着,分模块进行了具体的实现,包括元素字典模块、显示控制模块、矢量 图形渲染模块、字体与文本显示模块以及a c t i o n s c r i p t 脚本引擎等。其中的重点 与难点是矢量图形渲染模块与a c t i o n s c r i p t 脚本引擎。 针对嵌入式平台上矢量图形渲染过于耗时的问题,提出并实现了一种位图缓 存机制,将播放速度提高了数倍至数十倍。 基于开发成功的嵌入式f l a s h 播放器,为机顶盒设计了一种基于f l a s h 的人机界 面交互系统。与传统的机顶盒u i 相比,这种新的人机交互系统具有用户视觉体验 好、推广移植迅速以及更新升级简单的优点。 嵌入式f l a s h 播放器的开发成功,进一步加强了机顶盒的多媒体功能,同时也为 运营商开展增值业务提供了一种新的技术方案。 关键词:机顶盒,嵌入式,f l a s h ,播放器,矢量图 a b s t r a c t a bs t r a c t a tp r e s e n t ,t h ed i g i t i z a t i o no ft e l e v i s i o nn e t w o r ki sb e i n gv i g o r o u s l yp r o m o t e db y t h eg o v e r n m e n t ,a n dt e n so fm i l l i o n so fs e t t o pb o x e sh a v ec o m ei n t op e o p l e sh o m e w i t hc o n t i n u o u si n n o v a t i o na n dd e v e l o p m e n to ft h et e c h n o l o g y , a n dt h ei n e v i t a b l e t r e n do fi n t e g r a t i o no fc o m m u n i c a t i o nn e t w o r k s ,c o m p u t e rn e t w o r k sa n dc a b l et v n e t w o r k s ,s e t t o pb o xi sd e v e l o p i n gf r o mas i m p l et u n e ra n dd e c o d e r t o w a r da n e t w o r km u l t i m e d i at e r m i n a lw i t hr i c hf u n c t i o n s t h e r e f o r e ,m o r ea n dm o r e m u l t i m e d i af o r m a t si na d d i t i o nt od i g i t a lt e l e v i s i o ns i g n a l ss h o u l db es u p p o r t e db y s e t t o pb o x e s ,a n ds o m eh i g h e n dp r o d u c t sw h i c hs u p p o r t i n gm p 3 ,r m v bo rs o m e o t h e ra u d i of o r m a t sh a v ea l r e a d ye m e r g e d t h ef l a s ha n i m a t i o ni st h em o s tp o p u l a r m u l t i - m e d i af o r m a to ni n t e m e t ,b u td u et os o m et e c h n i c a ld i f f i c u l t i e s ,t h e r ea r es t i l ln o s e t t o pb o x e s w h i c hc a np l a yf l a s ha n i m a t i o n sa tt h i sm o m e n t i nt h i sp a p e r , a ne m b e d d e df l a s hp l a y e ri sd e s i g n e da n di m p l e m e n t e df o rs e t - t o p b o x e s f i r s t ,t h ep r i n c i p l e so fv e c t o ra n i m a t i o na r ei n t r o d u c e da n dt h ef o r m a to ff l a s h f i l e si sa n a l y z e d a n dt h e nt h es o f t w a r ef r a m e w o r ka n dt h er u n n i n gp r o c e s sa r e d e s i g n e d a f t e rt h a t ,s o m ec o r es u b - m o d u l e sa r ei m p l e m e n t e d ,t h ef o c u sa n dd i f f i c u l t y o fw h i c hi sv e c t o rg r a p h i c sr e n d e r i n gm o d u l ea n d a c t i o n s c r i p te n g i n e d u et ot h ep r o b l e mt h a ti ti st o ot i m e c o n s u m i n gt or e n d e rv e c t o rg r a p h i c so n e m b e d d e dp l a t f o r m ,ab i t m a pc a c h i n gm e c h a n i s mi sp r o p o s e da n di m p l e m e n t e dw h i c h l a r g e l yi n c r e a s e st h ep l a y i n gs p e e da n ds o l v e st h a tk e yp r o b l e m b a s e do nt h es u c c e s s f u ld e v e l o p m e n to fe m b e d d e df l a s hp l a y e r , am a n - m a c h i n e i n t e r a c t i v es y s t e mb a s e do nf l a s hi sd e s i g n e df o rt h es e t t o pb o x c o m p a r e dw i t ht h e u io ft r a d i t i o n a ls e t - t o pb o x t h ea d v a n t a g e so ft h en e ws y s t e mi sa p p a r e n tt h a ti t i m p r o v e su s e r sv i s u a le x p e r i e n c ea n d i ti sa l s oe a s i e rt ot r a n s p l a n ta n du p d a t e t h es u c c e s s f u ld e v e l o p m e n to fe m b e d d e df l a s hp l a y e rh a sf u r t h e re x p a n d e d m u l t i m e d i af u n c t i o n so fs e t t o pb o x e s ,a n da l s op r o v i d e dan e wt e c h n o l o g yf o r o p e r a t o r st od e v e l o pv a l u e a d d e ds e r v i c e s k e y w o r d s :s e t t o pb o x ,e m b e d e d ,f l a s h ,p l a y e r , v e c t o rg r a p h i c i l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名:墨盎 日期: 粕q g 年6n7 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阕。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 王春 导师签名: 日期: a q 8 年6 月日 第一章绪论 1 1 电视机顶盒的发展现状 第一章绪论 目前,全国有线数字电视己从试点走向全面发展阶段。2 0 0 7 年数字电视用户 已达2 7 9 6 万,预计2 0 0 8 年将超过5 0 0 0 万户,2 0 1 0 年有望超过1 亿户【l 】。国家计 划在2 0 1 6 年停播模拟电视。当前,中国正在使用的模拟电视机数量在3 亿台以上, 在模拟和数字电视广播体制共存时期,机顶盒作为一种实际可行的过渡方案,已 经走进了千家万户,有非常广泛的市场前景。 最初的机顶盒,只是让模拟电视机能接收数字电视信号,功能单一,结构简 单。随着技术的不断创新和发展,以及通信网、计算机网和广播电视网“三网合 一”的必然趋势,机顶盒正在从一个多频率的调谐器和解码器发展成为具有多种 功能的网络终端【2 】,可以支持多种数据广播和交互式多媒体应用,诸如数字电视广 播接收、数据广播、电子节目指南、准视频点播、视频点播、电子邮件、因特网 接入、远程教育、远程医疗、网上购物、网上收费、电子广告、股市证券服务、 网上音频视频广播业务、可视电话与电视会议、社区多功能服务,等等 3 1 。 由于机顶盒的发展趋势是最终成为一个网络化的多媒体终端产品,因此它必 须能够支持除数字电视信号以外的更多的多媒体格式。现在已经出现了能够支持 m p 3 和r m v b 等音视频格式的机项盒【3 1 ,但由于种种技术上的困难,暂时还没有 能够支持f l a s h 动画文件播放的机顶盒。 1 ,2f l a s h 动画与电视结合的现状与前景 f l a s h 是一种交互式矢量多媒体技术,其前身是f u t u r es p l a s h ,为早期网上流 行的矢量动画插件,被m a c r o m e d i a 公司收购后( 后m a c r o m e d i a 公司又被a d o b e 公司收购) ,便将其改造为f l a s h2 ,现在最新的版本是f l a s h8 。f l a s h 动画利用人 的视觉暂留特性,快速播放一系列连续变化的图形图像,包括画面的缩放、旋转、 变换、淡入淡出等等特殊效果【4 】。f l a s h 动画采用矢量动画格式,文件尺寸非常小, 能在网络上顺畅播放。它制作简单,开发迅速,逐渐成为了目前应用最广泛的一 种网络多媒体格式。它的应用领域十分广泛,包括网络广告、网站片头、动画短 电子科技大学硕士学位论文 片、电子贺卡、m t v 、教学课件、电子商务等等【5 j 。 近些年来,f l a s h 不断进行着“走毒踺络 向电视节置拓展的有益尝试,已经 开始取得了成效,f l a s h 动厕在电视节目中主要有以下几种形式的应用j : 广告动画 f l a s h 起源于一些门户网站的广告。目前,f l a s h 动隔广告是网络中最流行的广 告形式。最近,很多电视广告也采用f l a s h 进行设计制作,形式比较多,有的是动 藤片段,也有具有完整情节的动画广告短片,用整段f l a s h 动蘑展示广告产品。f l a s h 动画广告,以其灵活自由的形式,给消费者提供商品信息的同时,给予观众以美 翁感富享受,致力于吸弓l 消费者注意力、节省资金等,容易受刭各大商煦客户的 青睐。 一科教短片 运用动画讲解科学知识是一种极佳的方式。由于我国观众的知识层次分布不 同,接受科学知识的能力也不同,动画以其灵活自由的形式寓教于乐,让观众在 轻松的氛圈蠹得到艺术熏陶,同时受到科学教育。利用f l a s h 制作科教短片,能够 以任何视角细腻地表现实际拍摄很难捕捉的过程,并且它制作成本低、速度快, 创作成果的可复雳性高。 _ 动画短片系列片 f l a s h 动画可以制作墨水平较高鲶惫视动蕊片,互联霹上已经流传着许多经典 的f l a s h 动画短片、m t v 等。将f l a s h 动画系列化,并移植成电视动画的形式,是 动画片的一个新突破,融合了影视动蕊与f l a s h 的优势。f l a s h 动画片必将成为国 内动画事业中极其重要的一个亮点。 一新闻节目与娱乐节目 虚拟主持人、虚拟骥星的概念,在f l a s h 技术的帮助下交得很容易实现。f l a s h 与专题新闻栏目的结合,突出了新闻的娱乐化倾向。与新闻节目整体风格相协调 的f l a s h 动葱,还具有一种趣味性,容易受到广大觋众的欢迎。在娱乐方兹,近年 流行的f l a s h 版侯宝林的相声、赵本山的小品,将娱乐作品用另外一种方式演绎, 语言幽默、造型夸张、视觉强化,凸现了喜剧效果。 上面提到的f l a s h 动画在电视中的应用,基本上还是基于现阶段的模拟单向电 视广播形式,从技术上讲,只是在动磷的制作阶段,使用f l a s h 设计工具进行创作, 然后将其转化为视频流,再经过电视信号进行广播。因此,从接收端的角度来看, 它与普通的电视节网没有任何区别,f l a s h 动厕文件体积小、交互性强的特点在这 种模式下并没有得到任何的体现。随着电辜冕网络的数字化与交互化改造,f l a s h 动 第一牵绪论 垂在电视领域必将拥有更加广阔的空间,创造出更大的价值。 1 3 课题的任务与意义 前面两节已经提到,f l a s h 动画在电视领域有着较高的市场价值,而现在市面 上还没有能够支持f l a s h 动画播放的机顶盒。 本课题的任务就是,设计并实现一个适用予机顶盒上使用的f l a s h 播敖器软件, 使得电视用户通过机顶盒,就能够直接播放f l a s h 文件。这样做的好处有很多: ( 1 ) 可充分利用f l a s h 文件体积小的特点,使得机顶盒用户可以直接下载f l a s h 格式的动画文件进行播放。这样,运营商就能提供与v o d 相类似的f l a s h 动溺点 播业务,如基于科教短片的远程教育、基于f l a s hm t v 的电子贺卡、基于虚拟主 持人的定制新闻等。 ( 2 ) 可充分利用f l a s h 动画交互性强的特点,运营商可以开辟一些基于f l a s h 的 增值鲎务,如互动小游戏、有奖问答( 现在是通过手机短信的方式) ,新型的电视 购物系统等等。 ( 3 ) 可利用f l a s h 动画与生俱来的表现力与交互力,可以为机顶盒系统设计全 新方式的人机交互系统。事实上,本文的第五章就设计并实现了这样一套系统。 这种人桃器面开发速度 突,更新方便,并且麓够报据需要实时嵌入广告元素,为 运营商提供新的利润增长点。 1 4 主要工作与本文结构 本文详细探讨- yf l a s h 动画的原理与相关技术,介绍了嵌入式f l a s h 播放器的 设计和实现过程。作者的工作主要包括: ( 1 ) 研究矢量图形与矢量动蕊原理,深入分析f l a s h 文件格式,调研播放器的 设计方案。 ( 2 ) 设计并实现嵌入式f l a s h 播放器,达到能在机顶盒上播放动画的要求。其 中关键的内容主要有: l 。设计软件的总体结构与工作流程。 2 实现元素字典模块、显示控制模块、矢量图形渲染引擎、字体与文本显示 模块等核心模块。 3 。针对机项盒平台运算麓力差,矢量图形渲染过于耗时的问题提出优化方案 电子科技大学硕士学位论文 并实现。 ( 3 ) 研究a c t i o n s c r i p t 脚本的工作原理,设计并实现一个a c t i o n s c f i p t 脚本解释 引擎,与f l a s h 播放器配合,从而实现f l a s h 动画的交互功能。 ( 4 _ ) 基于开发的嵌入式f l a s h 播放器,为机顶盒设计套新的基于f l a s h 的人机 交互系统,鳃决传统u l 开发时间长、界面视觉效果差、升级更新难的河题。 整个论文的结构安排如下: 第一章为绪论,说明了课题的背景、目的、主要工作和内容安排。 第二章介绍了矢量图形与矢量动画的原理,分析了f l a s h 动画的文件格式,重 点讨论了矢量图形元素在f l a s h 文件中的组织方式。 第三章详细介绍了嵌入式f l a s h 播放器的设计与实现,包括软件的总体设计, 工作流程,各模块的设计与实现,以及部分模块的优化等。 第四章介绍了a c t i o n s c r i p t 脚本弓l 擎的原理、设计与实现,以及其中一些技术 难点的解决方案。 第五章介绍了该播放器的一个创新应用实例基于f l a s h 的嵌入式人机交互 系统,详细阐述了系统的设计思想、设计与实现。 第六章介绍了系统的测试与结果,并指出了改进的方向。 4 第二寨矢量劫蘑基础与皴寒分衍 第二章矢量动画基础与技术分析 2 1 矢量图形简介 计算机中显示的图形一般可以分为两大类位圈和矢量图【疆。矢量圈使用贝 塞尔曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线 等等,它稍都是通过数学公式计算获得的。矢量图形并不是由个个象素点来存 储的,而是通过文件记录曲线及同颜色区域的信息,再由能够读出矢量图的软件 把信息还原成图像的。例如一幅花的矢量图形实际上是意线段形成外框轮麝,壹 外框的颜色以及外框所封闭的颜色决定花显示如的颜色【8 】。由于矢量图形可通过公 式计算获得,所以矢量图形文件占用空间一般较小。矢量图形最大的优点是无论 放大、缩小或旋转等不会失真,不会产生“马赛克”,最大的缺点是难以表现色彩 层次丰富的逼真图像效果【9 】。 矢量图形,也称为瑟向对象的莲影或绘图鬻形,在数学上定义为一系列由线 连接的点。矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体, 它具有颜色、形状、轮廓、大小和屏幕位置等属性。既然每个对象都是一个皇成 一体的实体,就可以在维持它原有清晰度和弯曲度的同时,多次移动和改变它的 属性,而不会影响图例中的其它对象【9 】。本文涉及的f l a s h 动画,就是基于对矢量 图形元素在每帧进行操作实现的动画效果。 2 1 圭三阶贝塞尔曲线 由于所有的矢量图都是基于贝塞尔曲线的,因此有必要对其进行简单的介绍: 1 9 6 2 年,法国雷诺汽车公司的r e b e z i e r 构造了一种以逼近为基础的参数益线 和曲面的设计方法,并用这种方法完成了一种称为u n i s u r f 的曲线和曲面设计系 统,1 9 7 2 年,贝塞尔魏线被广泛地投入应用。 比较常见的是三阶贝塞尔曲线,三阶贝塞尔曲线可以通过四点确定。其中两个 是瑞点,f ,嘞,y 8 ) 为起点,( x 3y 3 ) 为终点,而( 鼍,y ,) 和( x 2 ,y 2 ) 是控制点,如图2 一l 所示: 电子科技人学硕士学位论文 图2 一l 三阶贝器尔曲线 下面的两个方程式确定了曲线上的点剐。两个方程式中的变量t ,都可以取o l 之闻的任意值。其中一个方程式求褥了x 的值,另一个求褥了y 的僮。当方程式 中t 的取值增长时,以( x ( f ) ,y ( f ) ) 为坐标的点,就形成了从起点移动到终点的轨迹。 x r f 夕= a x t 。+ b x t 2 + c 。t + x d f 2 1 1 x l2x o + x 3 ( 2 2 ) x 2 = x ,+ f c 。+ b , ) 3 f 2 3 ) x 32x o + q + 吃十口, ( 2 4 ) y t ) = a y t 二+ b r t j 寺c 乒寺y 。 口趴 y 2y 七cy1 3 ( 2 戡6 y 22y | 七( cy + b p ) ,3 ( 2 m y3 2y o + c y + b y a y ( 2 - 8 ) 通过以上方程式,可以确定蓝线上的点,也可以通过相反的操作,给出方程 中的系数: c x = 3 ( x l x o ) ( 2 - 9 、 b x = 玎而一) q ( 2 1 0 ) a :2 而一x o q 一屯 ( 2 。1 1 ) 巳= 3 ( y l 一夕 ( 2 一1 2 b y = 3 ( y 2 一y 1 ) 一c y 【2 1 3 、 掰_ ) 2 夕3 一y o c y 一 ( 2 1 4 ) 这样,已知任意窭点的坐标,裁麓建立一条三阶贝塞尔曲线的方程,从丽拟合 6 第二毒欠茧动溪基礁与技术分搴斤 出该曲线【1 2 】【1 3 】【l4 1 。 2 1 2 二阶到三阶贝塞尔曲线的转换 与绝大多数矢量图形格式不同,f l a s h 为了节省存储空间,采用了二阶贝塞尔 曲线2 1 。二阶贝塞尔曲线与三阶贝塞尔曲线的区别是:二阶贝塞尔曲线只有一个控 制点,比三阶少一个,如图2 2 所示: 图2 - 2 二阶与三阶贝塞尔曲线对比 由于几乎所有的矢量图形渲染库都只支持三阶贝塞尔趣线的拟合,因此在设计 f l a s h 播放器时,必需将二阶贝塞尔曲线转换为三阶贝塞尔曲线,转换公式如下: t ,= x o + 2 ( x c x o ) 3 ( 2 1 5 ) y c j = y o + 2 ( y c y o ) 3f 2 1 6 ) t ? = t + b ,一x 。) 3 ( 2 1 7 1 只:= y c + ,一罗。) 3 纪1 8 2 2f l a s h 文件综述 f l a s h 动厕是一种基于矢量图形的动函格式。通常的视频动画都是基于位图的, 尽管现在绝大多数的视频文件都对位圈进行了魇缩,但它们的原理仍然是将要显 示的每一帧图像以位图的形式( 经过了压缩) 保存在文件中,然后在播放时显示 相应的銎片。f l a s h 动蘧,到不论是在文件结构还是在播敖原理上,都与它们不同。 f l a s h 动画需要在播放时,动态生成相应的位图,再进行显示。组成图片的各元素, 又都必须先在称为字典的数据结构中定义。例妻爨,在某帧上用至l 字体、图形, 则必须在字典中先定义字体属性、图形属性等,在播放时通过控制标签( c o n t r o l t a g s ) ,来控制本帧用到了哪些元素以及各元素在什么位置显示,然后渲染出该帧 的位图,再显示( 相当于根据图片要素重新生成“枣贞”) 。当播放到下一帧图像时 再通过读取相应的控制标签列表,来决定哪些元素该保留,哪些元素应去除、哪 些元素应该傲什么样的处理等,然后渲染毒下枣贞图像并显示。依次重复上述过 电子科技人学硕七学位论文 程,直到动燕搔放结束。其援放过程远远复杂于g t f 动画,在文件结构上也大相 庭径。g i f 文件存放的是动画中用到的完整的图片,而f l a s h 文件保存的主要是一 系列的定义标签( d e f i n i t i o nt a g s ) 与控制标签,以及脚本字节码等。这些信息, 都是f l a s h 动瑟在播放时动态生成位图的根据。这些图形元素和所有控制标签,都 存放在f l a s h 文件的特定位置。所以,首要的任务是了解f l a s h 文件结构,进瑟才 能设计出播放软件。 f l a s h 动画的特点: ( 1 ) 可扩展性离:阂为f l a s h 文件是由多个标签( t a g ) 组成的,因此很容易被后 续的版本所兼容,在功能的扩展上也有很好的支持。 ( 2 ) 利于网络传输:f l a s h 文件用压缩格式保存,采用各种技术,如字节压缩术 等方法,来尽量压缩文件大小。 ( 3 ) 文件格式简单:用很小的播放器就麓对其解码。 ( 4 ) 文件的独立性:动画的显示并不需要另外相关资源的支持,如字体等。 总的来说,f l a s h 文件主要由文件头和一系列的标签( t a g ) 组成,f l a s h 动画中的 主要动匦元素的数据都在标签中,在所有椟都播放完毕后,以一个e n d t a g 表示文 l 牛的结束【1 5 】,如图2 3 所示: 匡翌曰回日巨习 图2 - 3f l a s h 文件总体结翰 2 3f l a s h 文件结构概要分析 2 3 1 文件头结构 所有的f l a s h 文件的最前面,都是一个标准格式的文彳孛头,它包括了f l a s h 文 件的标识符、版本号、文件大小、影片尺寸、帧速率与总帧数,其格式如表2 - 1 所示: 表2 - 1f l a s h 文件头结构猁表 字段类墅备注 s i g n a t u r e u 1 8“f ”表示文件未经压缩 “c ”表示文件经过了压缩 s i g n a t u r e u 1 8固定为“w ” 第二章矢麓动溺基硪与技术分_ 孛厅 f l a s h 文件头,一般以0 x 4 6 、0 x 5 7 、o x 5 3 ( f w s ) 或0 x 4 3 、0 x 5 7 、0 x 5 3 ( c w s ) 开始。如果是f w s 表示未被压缩,c w s 表示文件从第九个字节开始采用标准的 z l i b 压缩方法迸行压缩。因此,对于c w s 的文件,在处理数据前必须用z l i b 压 缩包进行解鹾,取得原始数据后再遴行数据解析。文件头中的f i l e l e n g t h 一项,记 录的是文件未经压缩时的长度。播放器解析到该值后就能开辟相应长度的b u 虢r , 然后再根据帧尺寸、帧速率等信息,初始化相应的模块。 2 3 2 标签( t a g ) 结构 文件头后面,就是一系列的标签c r a g ) 。f l a s h 文件中的标签分为两类:定义标 签( d e f i n i t i o nt a g ) 和控制标签( c o n t r o lt a g ) 。定义标签用来定义动画中的元素 ( c h a r a c t e r ) :形状、文字、位图、声音等,每一个元素对应一个定义标签,每个 定义标签都拥有一个唯一的c h a r a c t e ri d 。控制标签剁用于控制这些动蘧元素和播 放流程。定义标签可分为7 种类型,其中每一种类型可能还分为若干子类型。控 制标签( c o n t r o lt a g ) 分为3 大类:d i s p l a yl i s t 、c o n t r o l 和a c t i o n ,其中每大类又 可分为多种子类,详见图2 4 : 9 i 妻子科技人学硕士学位论文 图2 - 4 标签分类图 每一个标签都由标签头( 标签的类型、大小) 和一个数据区组成,根据标签本 身的大小,分为短标签和长标签两秭。长标签最大理论上可达到4 g b ,短标签可 以是6 2 字节或更少。标签可以出现在f l a s h 文件的任何地方,但必须遵循一定的 撬刘: ( 1 ) 标签定义时,如需引用其它标签,则只能引用前面已经定义过的标签,不 能引用其后面定义的标签。 ( 2 ) 控制标签( c o n t r o lt a g ) 所用到豹动画元素( c h a r a c t e r ) ,必须在首次傻用前迂 经由定义标签( d e f i n i t i o nt a g ) 定义。 ( 3 ) 壶于声音文件被分隔成多个定义标签,因此声音标签必须注意前后顺序, 否则会造成声音的混乱。 ( 4 ) 结束标签( e n dt a g ) 只能出现在f l a s h 文件结束。 2 - 3 3 元素字典( d i c t i o n a r y ) 结构 f l a s h 中的元素字典( d i c t i o n a r y ) ,是一个集合。所有被定义过的元素,在文件 解析过程中,将被记录在元素字典中,供控制标签调用。构建和使用元素字典的 规员| j 如下: ( 1 ) 由定义标签( d e f i n i t i o nt a g ) 定义一个元素,形状、声音等。 2 ) 由定义标签e 爨珏i 蠢。鼓强勤为该元素分配一个文件中唯一熬l d 号,供控制 l o 第二章父鼙动画基础与技术分析 标签( c o n t r o l 丁a g ) 调用。 ( 3 1 被定义过的元素,以i d 号作为索引保存在字典中。 ( 4 ) 控制标签( c o n t r o l t a g ) 删,只需在字典中查找i d 号,即可技到相应的 兀素。 元素字典、定义标签( d e f i n i t i o nt a g ) 、控制标签( c o n t r o lt a g ) f 拘关系如图2 5 所示: t a g si ns w ffe l ed i c t i o n a r y definesoefoun薰aschaara蟊cter3placeobject c h a m c t e d a d ds h a p e t o displaydeflnetextc h aracter4。 t p 、 y卢 i b ”7 7 a sf - i 醐8 p l a c e o b j g * tc h a r a c t e r 4 彳 a d d t e v l t o d i s p l a y l i s t s h o w f r a m e r e n d er c o n t e n t so f t h ed i s p l a y * d e # n e m o r d h s h a d ea s c r l a m 淝m s t a r t s o u n d c h a r a c t e 口 v c o n t r o l t a g p i a c e o b j e c tc h a r a c t e r 5 d e f t n i t i o n t a g a d d m o r p h t od i s p t a y l i s t s h o w f r a m e r e n h n k n kn f t h pd l n i 目r嘲正面i ;i _ 幽2 - 5 元桑字典与定义标签、控制标签的关系刚 2 34 显示列表( d i s p a y l i s t ) 结构 f l a s h 动画中另一个重要的结构,是显不列表( d 1 s p i a y l i s t ) 。上一节中描述的元 素字典( d i c t i o n a r y ) t 是用于存放动画中所有元素的地方,其作用类似于皮影戏中 的所有道具。而只有道具是没法动起来的,本节要描述的就是“控制道具的线”。 显示列表主要用于描述f l a s h 动画中每一帧图像所用到哪些元素,以及各元素在每 帧图像的值首与变换关系等。在具体介绍d i s p a y l i s t 之前,有必要先介绍一下在 电子科技人学硕七学位论文 f l a s h 中每一帧的处理过程,主要分为三步: ( 1 ) 首先定义将要使用的动画元素,为每个元素分配一个i d 号,然后存入元 素字典中。 ( 2 ) 根据控制标签,将该帧孛要显示的元素加入显示列表( d i s p l a y l i s t ) 中, 并指定该元素的显示位置与其所在深度( d e p t h ) 等相关信息。 ( 3 ) 遇到s h o w f r a m e 标签时,根据显示列表( d i s p l a y l i s t ) 绘出该帧所有元素。 每一个元素在被加入到播放列表时都会指定一个深度值( d e p t h ) ,该值决定了元 素所处的胬层位置,值越小就越靠近底层,如果为l 则处最底层,显示时上层元 素会覆盖相阐位置的下层元素。 元素显示列表在f l a s h 中,是帧显示的主要依据,f l a s h 动画中的每一帧图像所 用到的元素、位置的变化、颜色的变化等都由它控制。元素显示列表是由控制标 签生成的,f l a s h 中主要有五种控制标签用于对元素显示列表进行操作: p l a c e o b j e c t 标签:将一个元素加入到显示列表( d i s p l a y l i s t ) 中。 p l a c e o b j e c t 2 标签:将一个元素加k n 显示列表( d i s p l a y l i s t ) ,或更改列表中已 有的某元素的属性,如深度、位置、颜色变换等。 r e m o v e o b j e c t 标签:从显示列表中移除某一具体的元素。 r e m o v e o b j e c t 2 标签:从显示列表中移除某一层上的元素。 s h o w f r a m e 标签:显示该帧。 下面将对这几个重要的控制标签逐一进行分析: 一p l a c e o b j e c t 标签结构 p l a c e o b j e c t 标签的主要作用是将某一元素放入到d i s p l a yl i s t 中去,并给当前 元素指定显示所需的信息,其主要结构如表2 2 所示: 表2 - 2p l a c e o b j e c t 标签结构列表 字段类型备注 h e a d e rr e c o r d h e a d e r t a gt y p e2 4 c h a r a c t e r i du 1 1 6要加入元素的i d d e p t h u 1 1 6元素在显示控制列表中的深度值 m a t r i xm a t r j x 位置变换矩阵 c o l o r t r a n s f o r m ( o p t i o n a l ) c x f o r m 颜色变换矩阵 其中的m a t r i x 字段,用于指定元素在显示时的位置、缩放和旋转等属性。在 m a t r i x 字段层面,还有个可选字段c x f o r m ( c o l o rt r a n s f o r m ) ,n - i 以使元素在不 同帧中显示不同的颜色。 1 2 第二二章矢量动涵基磊窭与技术分析 一p l a c e o b j e c t 2 标签结构 p l a c e o b j e c t 2 标签可以看佟是p l a c e o b j e c t 标签的一个扩充,也用于对显示列表 的操作。该标签既能将一个元素加入到列表中,也能改变列表中已经存在的元素 的属性。p l a c e o b j e c t 2 以一组标志位开头,p l a c e o b j e c t 2 标签的具体结构如表2 3 所示: 表2 - 3p l a c e o b j e c t 2 标签维构瓢表 字段类型备注 h e a d e rr e c o r d h e a d e r t a gt y p e2 2 6 p l a c e f l a g h a s c l i p a c t i o n su b 1 】是否有脚本字段( 只针对s p r i t e ) p l a c e f l a g h a s c l i p d e p t hu b 1 】 是否有c l i p d e p t h 字段 p l a c e f l a g h a s n a m eu b i i 是否肖n a m e 字段 p l a c e f l a g h a s r a t i ou b 1 1 是否有r a t i o 字段 p l a c e f l a g h a s c o l o r t r a n s f 0 1 t 1 1 u b 1 1 是否有c o l o r t r a n s f o r m 字段 p l a c e f l a g h a s m a t r i x u b 1 1 是否有m a t r i x 字段 p l a c e f l a g h a s c h a r a c t e ru b 1 】 是否是新加入元索 p l a c e f l a g m o v e u b 1 1 是否憝移动已有元素 d e p t h u 1 1 6元素在显示列表中的深度使 c h a r a c t e r l du 1 16要加入元素的l d m a t r i xm a t r i x位置变换矩阵 c o l o r t r a n s f o r m ( o p t i o n a l ) c x f o r m颜色变换矩阵 r a t i ou 1 1 6 m o r p h s h a p e 交影兹程度 n a m es t r i n g元素名称 c l i p d e p t h u i i6 剪切深度值 c l i p a c t i o n s c l i p a c t i o n s 脚本字节码 其中,字段p l a c e f l a g m o v e 和p l a c e f l a g c h a r a c t e r ,用于标识该元素是新增加到 显示列表中的元素,还是列表中已经存在的需要修改显示j ;蓠性的元素。 p l a c e f l a g m o v e = 0 且p l a c e f l a g h a s c h a r a c t e r = 1 ,表示是新加入元素;p l a c e f l a g m o v e = l 且p l a c e f l a g h a s c h a r a c t e r = 0 ,表示是捌表中已经存在的元素;两当 p l a c e f l a g m o v e = 1 且p l a c e f l a g h a s c h a r a c t e r = 1 ,表示用一新元素替代列表中原来 己经存在的、处于某一深度( d e p t h ) 的元素。 p l a c e o b j e c t 与p l a c e o b j e c t 2 标签中的m a t r i x 与c o l o r t r a n s f o r m 字段,是实现动 画元素运动与变化的关键。其中,m a t r i x 用于改变元素的位置,大小与方向,它 电子科技大学硕士学位论文 是一个2x3 的矩阵: s c a l e xr o t a t e s k e w o r o t a t e s k e w l s c a l e y t r a n s l a t e xt r a n s l a t e y 对于任何位置的一点( x ,y ) ,经m a t r i x 变换质的坐标( x ,y ) 的计算公式如下: x = x * s c a l e x + y * r o t a t e s k e w l + t r a n s l a t e x( 2 。19 ) y + = x * r o t a t e s k e w o + y 冰s c a l e y + t r a n s l a t e y( 2 - 2 0 ) 相应地,c o l o r t r a n s f o r m 字段用于改变元素的颜色,从而实现知渐明、渐暗、 淡融等效果。对于任何一种颜色( r ,qb ) ,经c o l o r t r a n s f o r m 运算质的( r ,g ,b ) 计 算公式如下: r = m a y o ,m i n ( ( ( r 奉r ed m u l t e r m ) 2 5 6 ) + r ed a d d t e r m ,2 5 5 ) )( 2 21 ) g = m a x ( o ,m i n ( ( ( g 堆g r e e n m u l t e r m ) 2 5 6 ) + g r e e n a d d t e r m ,2 5 5 ) )( 2 2 2 ) b = m a x ( o ,m i n ( ( ( b 宰b l u e m u l t e r m ) 2 5 6 ) + b l u e a d d t e r m ,2 5 5 ) )q 2 3 ) a = m a x ( o ,m i n ( ( ( a 拳a l p h a m u l t e r m ) 2 5 6 ) + a l p h a a d d t e r m ,2 5 5 ) )( 2 2 4 ) r e m o v e o b j e c t 标签结构 r e m o v e o b j e c t 用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论