一种Flash播放器的资源加载方法及系统技术领域
本发明涉及Flash播放器的资源加载领域,一种Flash播放器的资源加载方法及系
统。
背景技术
Flash播放器是一个exe的可执行程序,用于播放本地swf格式文件(基于矢量的
Flash动画文件)。Flash播放器使用时加载的资源大部分为美术资源(例如图片、动画等)、
以及程序初始化后所占用的内存资源。
目前,现有的Flash播放器初始化时,会一次性加载所有在初始化和使用过程中可
能需要用到的美术资源和内存资源,由于加载的资源过多,因此加载时需要占用大量的带
宽,进而使得CPU占用率过高,延长了Flash播放器的加载时间,即用户需要大量时间等待,
降低了用户体验。
发明内容
针对现有技术中存在的缺陷,本发明解决的技术问题为:减少Flash播放器初始化
过程中加载的资源文件的数量,关联已经加载的所有美术资源文件。
为达到以上目的,本发明提供的Flash播放器的资源加载方法,包括以下步骤:
步骤A:将Flash播放器在初始化过程中需要的所有资源文件进行压缩,所有资源
文件包括若干美术资源文件和若干内存资源文件;
步骤B:对步骤A中压缩后的所有资源文件进行处理:将所有美术资源文件分成至
少2份美术资源加载文件,将所有美术资源加载文件的加载地址,保存形成美术资源配置文
件P1;将每1份内存资源文件均形成1块内存资源加载模块,将所有内存资源加载模块的模
块名称,保存形成内存资源配置文件P2;
步骤C:初始化Flash播放器时,加载P1中每个加载地址对应的所有美术资源文件;
实例化P2中的每个模块名称对应的内存资源加载模块;创建一个资源池字典,获取已加载
的每份美术资源文件的文件名称和对应的文件内容;在资源池字典中插入与每个文件名称
关联的资源名,插入与每个文件内容关联的资源内容对象;
步骤D:在Flash播放器使用过程中需要加载资源文件时,判断步骤C中所述资源池
字典中,是否存在与当前需要加载的资源文件对应的资源名,若是,直接将当前资源名关联
的美术资源文件,作为当前需要加载的资源文件;否则向服务器请求加载当前需要加载的
资源文件;
步骤E:每加载1份美术资源文件后,获取加载的当前美术资源文件的文件名称和
文件内容;在步骤C中创建的资源池字典中插入与当前的文件名称关联的资源名,插入与当
前的文件内容关联的资源内容对象。
本发明提供的实现上述方法的Flash播放器的资源加载系统,包括资源文件压缩
模块、资源文件处理模块、资源文件初始化模块、资源池字典设置模块、资源文件加载模块
和资源池字典更新模块;
资源文件压缩模块用于:将Flash播放器在初始化过程中需要的所有资源文件进
行压缩,所有资源文件包括若干美术资源文件和若干内存资源文件;
资源文件处理模块用于:对资源文件压缩模块压缩后的所有资源文件进行处理:
将所有美术资源文件分成至少2份美术资源加载文件,将所有美术资源加载文件的加载地
址,保存形成美术资源配置文件P1;将每1份内存资源文件均形成1块内存资源加载模块,将
所有内存资源加载模块的模块名称,保存形成内存资源配置文件P2;
资源文件初始化模块用于:初始化Flash播放器时,加载P1中每个加载地址对应的
所有美术资源文件;实例化P2中的每个模块名称对应的内存资源加载模块;
资源池字典设置模块用于:创建一个资源池字典,获取已加载的每份美术资源文
件的文件名称和对应的文件内容;在资源池字典中插入与每个文件名称关联的资源名,插
入与每个文件内容关联的资源内容对象;
资源文件加载模块用于:在Flash播放器使用过程中需要加载资源文件时,判断资
源文件初始化模块中创建的资源池字典中,是否存在与当前需要加载的资源文件对应的资
源名,若是,直接将当前资源名关联的美术资源文件,作为当前需要加载的资源文件;否则
向服务器请求新增当前需要加载的资源文件;
资源池字典更新模块用于:每加载1份美术资源文件后,获取加载的当前美术资源
文件的文件名称和文件内容;在资源文件初始化模块创建的资源池字典中插入与当前文件
名称关联的资源名,插入与当前文件内容关联的资源内容对象。
与现有技术相比,本发明的优点在于:
本发明按照Flash播放器的初始化和后续使用过程,将资源文件区分为2类,在
Flash播放器初始化时,仅加载初始化需要的资源文件。因此,与现有技术中一次性加载所
有在初始化和使用过程中可能需要用到的美术资源和内存资源相比,本发明在Flash播放
器初始化时,加载的资源文件较少,减少了所用的带宽,降低了CPU的占用率,进入显著缩短
了Flash播放器的加载时间和用户的等待时间,提高了用户体验。
在此基础上,本发明在Flash播放器初始化后,创建了记录所有加载的美术资源文
件的资源池字典,因此本发明能够在需要时,直接在资源池字典中根据资源名获取到相应
的资源,进而快速将该资源根据程序需求进行实例化使用,进一步缩短了用户的等待时间。
与此同时,若Flash播放器后续需要加载资源时,会先在资源池字典中查找是否需要加载的
资源文件是否存在,若存在则直接使用,进而避免了同样的资源重复加载,进一步提高了用
户体验。
附图说明
图1为本发明实施例中Flash播放器的资源加载方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例中的Flash播放器的资源加载方法,包括以下步骤:
S1:将Flash播放器在初始化和使用过程中(初始化在前,使用在后)需要的所有资
源文件(例如jpg、mp3、xml等)进行压缩,所有资源文件包括若干美术资源文件和若干内存
资源文件(当前和以下出现的美术资源文件和内存资源文件均为压缩包形式),转到S2。
S2:根据效果或者功能,将所有美术资源文件分成至少2份美术资源加载文件,将
每1份内存资源文件均形成1块内存资源加载模块(即将Flash播放器项目代码里面关于B类
资源的代码以模块化编写),转到S3。
S3:将初始化过程中需要的所有美术资源加载文件(假如Flash播放器初始化时必
须有一个加载动画,则该动画对应的美术资源加载文件即为初始化过程中需要使用)的加
载地址,保存形成美术资源配置文件P1;将初始化过程中需要的所有内存资源加载模块的
模块名称,保存形成内存资源配置文件P2,将使用过程中需要的所有美术资源加载文件的
加载地址、以及所有内存资源加载模块的模块名称,保存形成后续资源配置文件P3,转到
S4。
S4:初始化Flash播放器时,初始化过程中需要的所有美术资源加载文件和所有内
存资源文件,都会随之进行初始化。加载并读取P1的加载地址,根据每个加载地址加载对应
的所有美术资源文件;加载P2,利用映射思路,实例化P2中的每个模块名称对应的内存资源
加载模块,转到S5。
S5:在内存中创建一个资源池字典,利用FZip库类的getFileCount方法获取S4中
已加载的所有美术资源文件的数量。循环利用FZip库类的getFileAt(i)方法,获取S4中已
加载的每个美术资源文件的文件名称和对应的文件内容;在资源池字典中插入与每个文件
名称关联的资源名,插入与每个文件内容关联的资源内容对象,这样就能够在需要时,直接
在资源池字典中根据资源名获取到相应的资源,进而快速将该资源根据程序需求进行实例
化使用,转到S6。
S6:在带宽占用率小于等于5%的状态下,加载P3,根据S4的方法,加载P3中每个加
载地址对应的所有美术资源文件,实例化P3中的每个模块名称对应的内存资源加载模块。
在执行S6的过程中,若带宽占用率大于5%,则可以采用以下两种流程:1、中止S6,当带宽占
用率再次小于等于5%时继续进行,直到P3中的所有美术资源加载文件和内存资源加载模
块被加载完毕;2、转到S7。
S7:在Flash播放器使用过程中需要加载资源文件时,判断S5中的资源池字典中,
是否存在与当前需要加载的资源文件对应的资源名,若是,直接将当前资源名关联的美术
资源文件,作为当前需要加载的资源文件(这里体现出资源池字典的好处,避免同样的资源
重复加载),转到S9;否则向服务器请求加载当前需要加载的资源文件,转到S8。
S8:每加载1份美术资源文件后,利用S5的方法重新获取所有加载的美术资源文件
的数量、以及每份美术资源文件的文件名称和文件内容;在资源池字典中插入与新加载的
文件名称关联的资源名,插入与新加载的文件内容关联的资源内容对象,以保证资源池字
典中记录有所有加载的美术资源文件,转到S9。
S9:在资源池字典每插入1个资源名和对应的资源内容对象后,按照预先设置的计
时周期(至少10分钟)开始计时,计时周期过后,若当前资源名关联的美术资源文件未被使
用,则在资源池字典中移除当前资源名和对应的资源内容对象,以减小内存的消耗。
本发明实施例提供的实现上述方法的Flash播放器的资源加载系统,包括资源文
件压缩模块、资源文件处理模块、资源文件初始化模块、使用资源文件加载模块、资源池字
典设置模块、资源文件加载模块和资源池字典更新模块和资源文件使用状态确定模块。
资源文件压缩模块用于:将Flash播放器在初始化和使用过程中需要的所有资源
文件进行压缩,所有资源文件包括若干美术资源文件和若干内存资源文件。
资源文件处理模块用于:将所有美术资源文件分成至少2份美术资源加载文件,将
每1份内存资源文件均形成1块内存资源加载模块;将初始化过程中需要的所有美术资源加
载文件的加载地址,保存形成美术资源配置文件P1;将初始化过程中需要的所有内存资源
加载模块的模块名称,保存形成内存资源配置文件P2,将使用过程中需要的所有美术资源
加载文件的加载地址、以及所有内存资源加载模块的模块名称,保存形成后续资源配置文
件P3。
资源文件初始化模块用于:初始化Flash播放器时,加载P1中每个加载地址对应的
所有美术资源文件;实例化P2中的每个模块名称对应的内存资源加载模块。
使用资源文件加载模块用于:在资源文件初始化模块工作完成后,并且在带宽占
用率小于等于5%的状态下,加载P3中每个加载地址对应的所有美术资源文件,实例化P3中
的每个模块名称对应的内存资源加载模块。
资源池字典设置模块用于:
(1)创建一个资源池字典,获取已加载的每份美术资源文件的文件名称和对应的
文件内容;在资源池字典中插入与每个文件名称关联的资源名,插入与每个文件内容关联
的资源内容对象;
(2)在创建资源池字典之后、以及在每新增1份美术资源文件之后,还包括以下步
骤:获取已加载的所有美术资源文件的数量。
资源文件加载模块用于:在Flash播放器使用过程中需要加载资源文件时,判断资
源文件初始化模块中创建的资源池字典中,是否存在与当前需要加载的资源文件对应的资
源名,若是,直接将当前资源名关联的美术资源文件,作为当前需要加载的资源文件;否则
向服务器请求新增当前需要加载的资源文件;
资源池字典更新模块用于:每加载1份美术资源文件后,获取加载的当前美术资源
文件的文件名称和文件内容;在资源文件初始化模块创建的资源池字典中插入与当前文件
名称关联的资源名,插入与当前文件内容关联的资源内容对象。
资源文件使用状态确定模块用于:在资源池字典每插入1个资源名和对应的资源
内容对象后,按照预先设置的计时周期开始计时,计时周期过后,若当前资源名关联的美术
资源文件未被使用,则在资源池字典中移除当前资源名和对应的资源内容对象。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离
本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护
范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。