首页 / Flash合成方法

Flash合成方法有效专利 发明

技术领域

[0001] 本发明涉及互联网应用技术领域,特别涉及一种Flash合成方法。

相关背景技术

[0002] 随着互连网应用的越来越普及,在互连网产品中为了增加用户的容入感和增加用户体验。用户虚拟形象拼装(avatar)被广泛使用在网站应用、IM(Instant Messaging,即时通信)、各种形式的游戏中。用户可以通过在系统中选择不同的形象组件,甚至动作来完成对自己虚拟形象的建立,并且应用此形象在自己的各种应用中。当用户在页面上选择了不同的组件形象并且进行了尺寸、旋转角度等的调整并预览确认后,经系统合成生成用户希望看到的形象资源。因此Flash合成的能力将成为avatar拼装系统的关键技术之一。
[0003] 传统avatar拼装大多采用图片拼装,后台需要在页面上以Flash形式为用户提供可在线预览的拼装资源,同时还要为用户提供本地客户端使用的组件图片(通常是png资源)供用户下载到本地进行拼装使用。这种方法会增加用户资源下载量且影响展现的效果。
[0004] Flash拼装(合成)逐渐成为当前avatar系统所采用的主要技术解决方案。它可以减少用户下载资源的消耗量,增加终端平台的适用性,且极大的提高动画展示的质量。因此,如何实现灵活地Flash拼装已成为亟待解决的一个技术问题。现有的Flash拼装方法在实现的过程中需要对Flash元素进行完全解析,因此速度慢。

具体实施方式

[0020] 为使本发明的目的、内容、和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0021] 在设计本发明的合成方法时,要考虑的是如何正确解析Flash文件以及如何将不同Flash中的元素合成起来。
[0022] 要正确地解析Flash文件,就首先清楚Flash的文件结构(可以从官方的Flash文件结构说明书(flash_fileformat_specification)得知)。Flash文件是一种基于位压缩的文件结构,也就是说在Flash文件中单位是位而不是字节,有时一个字节可能存储着数个信息,有时一个信息是跨字节的,即上一个字节的后几位加上下一个字节的前几位才是一个完整的信息。
[0023] Flash文件中,基本的数据类型定义如下:
[0024] 整数类型的变量都是以little-endian的计算机字节表示顺序来表示的,即低字节放在前面,高字节放在后面。
[0025] 整数类型分为如下几种:无符号整型;有符号整型;定点数(定点数一般用来支持无浮点运算设备上的Flash。用定点数来模拟浮点数运算(在PC开发过程中,一般无须用到此数据类型));浮点数;Bit Value(位数据)。在Flash中还有一些高级的数据类型,但都是与基本数据类型构成差不多。
[0026] Flash文件的格式总体上来说是由文件头和文件体构成。下表1给出基于Flash8.0的Flash的文件结构:
[0027]文件头
属性表
元素tag
元素tag
...
EndTag
[0028] 表1
[0029] 其中,文件头标识了该Flash文件的版本和是否被压缩;属性表定义了该Flash文件的大小、背景色等信息;元素tag指组成该Flash文件中的各种元素标识,比如ShapeDefineTag、ObjectTag等;EndTag是文件结尾,同时也代表至此所有元素tag定义完毕。
[0030] 其中,元素tag是在Flash8.0及以上版本才有的。
[0031] 在了解了这些结构之后就可以参照公开的Flash文档协议针对每一个Flash元素进行解析。解析完成之后就可以进行合成操作。
[0032] 合成其实就是生成一个新的Flash文件,对于新生成的Flash文件也必须遵守上述Flash文件格式。
[0033] 如图1所示,本发明实施例的Flash合成方法步骤如下:
[0034] S0、获取XML合成描述文件,该文件中描述了合成资源的顺序、数量、名称和属性。例如:
[0035]
[0036] [0037] [0038] [0039]
[0040]
[0041] 上面的XML合成描述文件描述了一个基本用户虚拟形象(比如一个QQ秀)的合成情况,即Flash元素的位置、缩放率及名称。
[0042] S1、根据XML合成描述文件将各个合成资源下载到本地,如果本地有资源就不再下载。直到指定的所有资源下载完毕。
[0043] S2、根据Flash文件结构以及标记(tag)的编号和结构进行解析,将Flash中所有的元素都解析出来。并根据XML合成描述文件中的描述找到对应的tag,并改变tag的属性,一般来说,Flash文件结构中的PLACE_OBJECT标记序列中标记(PLACE_OBJECT、PLACE_OBJEC_2、PLACE_OBJECT_3)的属性是用来控制位置、缩放比率等信息的,只要将其解析出来并修改相应的属性即可,例如根据XML文件中的定义,针对每一个拼装部件(Flash文件)进行的大小、位置及旋转角度的参数化调整。
[0044] S3、所有的资源文件解析完毕并修改了相应属性后就可以组织新的文件了,按照Flash文件结构重新组织即可,这里要注意的是,Flash文件中的各个tag均有编号,而来自于不同资源文件的tag信息有可能编号重复,因此,在建立新的Flash文件时要将所有的tag序号重新排列,排列时要注意PLACE_OBJECT中针对其控制的其他tag序号也要做相应修改。至此,合成文件完成。
[0045] 由以上实施例可以看出,本发明通过解析Flash文件并修改tag属性来实现Flash合成,并且可以通过修改tag属性实现各种位移、缩放等效果。该方案在实现合成的过程中更为灵活方便,同时也极大的减轻了美术工作者在提供相关资源时的工作量。在程序设计时,采用了新的程序结构,对各个Flash文件中的各种素材对象进行了重新排列,并且使用了统一的素材(Flash元素)库,以存储素材。在合成过程中,使用素材标志(tag)来指向素材库中的素材而非直接的对象拷贝,合成速度更快。
[0046] 以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

当前第1页 第1页 第2页 第3页
相关技术
关亚北发明人的其他相关专利技术