专利名称:一种基于flash的画面播放方法及系统的制作方法
技术领域:
本发明属于互联网和游戏领域,尤其涉及一种基于flash的画面播放方法及系统。
背景技术:
Flash为一种二维动画软件,通常包括Macromedia Flash,用于设计和编辑Flash 文档,以及Macromedia Flash Player,用于播放Flash文档。cacheAsBitmap :flash as3中的视觉容器的一个属性,开启后能够让程序自动将静态图转换为位图。位图动画缓存在内存中持久存储,并能在不增长内存空间的情况下够被重复使用的动画缓存技术。现有的Flash画面的播放方法可以为接收静态图,开启cacheAsBitmap将静态图转换为位图,用位图动画缓存技术将位图缓存后,计算转换成动画播放。现有技术提供的播放方法每个静态图均需要进行计算和转换,所以其CPU的开销较大。
发明内容
本发明实施例的目的在于提供一种基于flash的画面播放方法,旨在解决现有技术的CPU开销大的问题。本发明实施例是这样实现的,本发明提供一种基于Flash的画面播放方法,所述方法包括如下步骤获取画源;判断内存中是否有该画源的动画序列;如是,调用该画源的动画序列进行画面播放。本发明还提供一种基于Flash的画面播放系统,所述系统包括获取单元,用于获取画源;判断单元,用于判断内存中是否有该画源的动画序列;调用播放单元,用于在所述判断单元判断是时,调用该画源的动画序列进行画面播放。本发明实施例与现有技术相比,有益效果在于本发明的技术方案在接收到画源时,先进行判断,如果内存内有画源的动画序列,则直接提取,由于内存内存储有动画序列的时候,CPU不需要进行计算(例如进行位图序列的转换和拼接动画序列),所以该方法具有CPU的开销小的优点。
图1是本发明提供的基于flash的画面播放方法的流程图;图2是本发明提供的一种基于flash的画面播放系统的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明提供一种基于flash的画面播放方法,该方法由客户端计算机完成,该方法如图1所示,包括如下步骤S11、获取画源,该画源可以包括静态矢量图或矢量图动画;S12、判断内存中是否有该画源的动画序列,如有,执行S13,否则执行S14-S16。S13、调用该画源的动画序列进行画面播放。S14、遍历起始帧到结束帧的关键帧来形成每个关键帧的单帧位图;S15、将所有单帧位图拼接成一个动画序列,将该动画序列存储在内存中;S16、按关键帧的顺序指向所有的单帧位图进行动画播放。需要说明的是,上述动画序列可以为由flash中的一些静态图片按一定顺序组成的特定序列。需要说明的是,上述结束帧可以为画源的最后一关键帧,该起始帧可以为如没有使用跳帧优化开关,则该起始帧可以为画源的第一关键帧;如启用了跳帧优化开关,则起始帧可以为第η个关键帧,η = 1+开关值;例如开关值为1,则起始帧可以为第二关键帧,如开关值为5,则起始帧可以为第六关键帧。需要说明的是,上述S14中的关键帧可以为,起始帧到结束帧之间的所有关键帧, 也可以为起始帧到结束帧的抽样关键帧,下面以一个例子来说明抽样关键帧,这里假设起始帧到结束帧的关键帧有400个帧,则上述所有关键帧包括400个帧,而抽样关键帧为根据抽样频率(用户可以自行设置,例如0. 2(每5个关键帧抽取一个关键帧)、0. 5(每2个关键帧抽取一个关键帧)抽取的关键帧,如抽样频率为0. 25,则抽样关键帧的个数为100个关键帧。另外需要说明的是,用户在设定抽样频率的时候,需要不影响画面质量。需要说明的是,上述Sll中的获取画源的方法具体可以为从服务器获取画源,服务器传入画源的方法可以为,在服务器内封装一个功能接口(可以为一个功能函数,也可以为一种传入接口),开发者通过该接口,将画源传入到服务器。需要说明的是,实现S12的方法具体可以为存储画源的URL与动画序列的对应关系,如内存中存在该画源的统一资源定位符 (Universal Resource Locator, URL),则判定为有动画序列,如内存中没有该画源的URL, 则判定为没有该画源的动态序列。需要说明的是,实现S16的方法具体可以为确定所有单帧位图的内存区域,按关键帧的顺序改变关键帧指向的内存区域实现动画播放。下面以一个实例的例子来说明动画播放的方法,这里以帧1、帧2、帧3为例,其位于的内存区域分别定义为区1、区2、区3 ;则在进行动画播放时,flash按顺序指向区1、 区2和区3即实现动画播放。下面通过本发明的实现原理来说明本发明的技术效果,本发明提供的方法在接收到画源时,先进行判断,如果内存内有画源的动画序列,则直接提取,由于内存内存储有动画序列的时候,CPU不需要进行计算(例如进行位图序列的转换和拼接动画序列),所以该方法的CPU的开销较小,另外,当发现内存没有动画序列时,形成位图时也仅会考虑启示帧和结束帧之间的关键帧,并且该关键帧还可以为抽样后的关键帧,当关键帧的处理个数越少时,CPU的开销越小,而本方法提供的技术方案能减少关键帧的处理个数,所以其能进一步提高CPU的开销。并且该方法在进行动画播放时,不仅能处理静态图,还能处理矢量动画,所以其具有处理矢量图动画的优点。本发明还提供一种基于Flash的画面播放系统,该系统如图2所示,包括获取单元21,用于获取画源;判断单元22,用于判断内存中是否有该画源的动画序列;调用播放单元23,用于在判断单元22判断是时,调用该画源的动画序列进行画面播放。可选的,判断单元22具体可以包括存储模块221,用于存储画源的统一资源定位符与动画序列的对应关系;判断模块222,用于在内存中存在该画源的统一资源定位符时,则判定为有动画序列,在内存中没有该画源的统一资源定位符,则判定为没有该画源的动态序列。可选的,上述系统还包括位图形成单元M,用于在判断单元22判断否时,遍历起始帧到结束帧的关键帧来形成每个关键帧的单帧位图;拼接存储单元25,用于将所有单帧位图拼接成一个动画序列,将该动画序列存储在内存中;顺序播放单元沈,用于按关键帧的顺序指向所有的单帧位图进行动画播放。需要说明的,上述画源、起始帧、结束帧的表现形式可以参见方法实施例的方法说明,这里不再赘述。本发明提供的系统在接收到画源时,先进行判断,如果内存内有画源的动画序列, 则直接提取,由于内存内存储有动画序列的时候,CPU不需要进行计算(例如进行位图序列的转换和拼接动画序列),所以该方法的CPU的开销较小,另外,当发现内存没有动画序列时,形成位图时也仅会考虑启示帧和结束帧之间的关键帧,并且该关键帧还可以为抽样后的关键帧,关键帧的处理个数越少时,CPU的开销越小,而本系统提供的技术方案能减少关键帧的处理个数,所以其能进一步减少CPU的开销。并且该方法在进行动画播放时,不仅能处理静态图,还能处理矢量动画,所以其具有处理矢量图动画的优点。值得注意的是,上述系统,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。另外,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。综上所述,本发明提供的技术方案具有减少CPU开销,支持矢量图动画的优点。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于Flash的画面播放方法,其特征在于,所述方法包括如下步骤 获取画源;判断内存中是否有该画源的动画序列;如是,调用该画源的动画序列进行画面播放。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括如果内存中没有该画源的动画序列,遍历起始帧到结束帧的关键帧来形成每个关键帧的单帧位图;将所有单帧位图拼接成一个动画序列,将该动画序列存储在内存中; 按关键帧的顺序指向所有的单帧位图进行动画播放。
3.根据权利要求1所述的方法,其特征在于,判断内存中是否有该画源的动画序列的步骤具体包括存储画源的统一资源定位符与动画序列的对应关系,如内存中存在该画源的统一资源定位符,则判定为有画源的动画序列,如内存中没有该画源的统一资源定位符,则判定为没有该画源的动态序列。
4.根据权利要求1所述的方法,其特征在于,所述画源包括静态矢量图或矢量图动画。
5.根据权利要求2所述的方法,其特征在于, 所述结束帧为所述画源的最后一关键帧;所述起始帧为如没有使用跳帧优化开关,该起始帧为所述画源的第一关键帧;如启用了跳帧优化开关,起始帧为第η个关键帧;η = 1+所述优化开关值。
6.根据权利要求2所述的方法,其特征在于,所述遍历起始帧到结束帧的关键帧具体可以包括遍历起始帧到结束帧的所有关键帧; 或起始帧到结束帧的抽样关键帧。
7.一种基于Flash的画面播放系统,其特征在于,所述系统包括 获取单元,用于获取画源;判断单元,用于判断内存中是否有该画源的动画序列;调用播放单元,用于在所述判断单元判断是时,调用该画源的动画序列进行画面播放。
8.根据权利要求7所述的系统,其特征在于,所述判断单元具体包括 存储模块,用于存储画源的统一资源定位符与动画序列的对应关系;判断模块,用于在内存中存在该画源的统一资源定位符时,则判定为有动画序列,在内存中没有该画源的统一资源定位符,则判定为没有该画源的动态序列。
9.根据权利要求7所述的系统,其特征在于,所述系统还包括位图形成单元,用于在所述判断单元判断出内存中没有该画源的动画序列,遍历起始帧到结束帧的关键帧来形成每个关键帧的单帧位图;拼接存储单元,用于将所有单帧位图拼接成一个动画序列,将该动画序列存储在内存中;顺序播放单元,用于按关键帧的顺序指向所有的单帧位图进行动画播放。
10.根据权利要求7所述的系统,其特征在于,所述画源包括静态矢量图或矢量图动画。
全文摘要
本发明适用于互联网和游戏领域,本发明提供了一种基于Flash的画面播放方法及系统,该方法包括如下步骤获取画源;判断内存中是否有该画源的动画序列;如是,调用该画源的动画序列进行画面播放。本发明提供的技术方案具有CPU开销小的优点。
文档编号G06T13/00GK102568021SQ20101058925
公开日2012年7月11日 申请日期2010年12月15日 优先权日2010年12月15日
发明者宿海成 申请人:腾讯科技(深圳)有限公司