CN108694047A - 资源加载方法及装置 - Google Patents
资源加载方法及装置 Download PDFInfo
- Publication number
- CN108694047A CN108694047A CN201710234033.6A CN201710234033A CN108694047A CN 108694047 A CN108694047 A CN 108694047A CN 201710234033 A CN201710234033 A CN 201710234033A CN 108694047 A CN108694047 A CN 108694047A
- Authority
- CN
- China
- Prior art keywords
- resource
- load
- interface
- array
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种资源加载方法及装置,属于Flash开发技术领域。该方法包括:获取至少一个资源地址,每一资源地址对应一个资源文件;将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。本发明通过获取至少一个资源地址,将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。由于任一功能模块均可以调用加载资源接口来实现资源加载,而不用在每一功能模块内编入加载实现代码,从而不会造成代码冗余,降低了开发复杂度。
Description
技术领域
本发明涉及Flash开发技术领域,更具体地,涉及一种资源加载方法及装置。
背景技术
目前Flash程序的开发过程中,经常涉及到加载资源,如加载二进制数据、加载图文数据等。为了让开发过程中不同的功能模块能够加载资源,现有的资源加载方法是在每一功能模块中编入加载实现代码,通过每一功能模块中的加载实现代码来加载资源。
在实现本发明的过程中,发现现有技术至少存在以下问题:由于加载资源通常是个固定的流程,而通过每一功能模块内的加载实现代码来加载资源,每一功能模块中均需要编入加载实现代码,从而会造成代码冗余,并增加了开发复杂度。
发明内容
现有技术中是在每一功能模块中编入加载实现代码,通过每一功能模块中的加载实现代码来加载资源。由于加载资源通常是个固定的流程,而通过每一功能模块内的加载实现代码来加载资源,每一功能模块中均需要编入加载实现代码,从而会造成代码冗余,并增加了开发复杂度。为了解决上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的资源加载方法及装置。
根据本发明的第一方面,提供了一种资源加载方法,该方法包括:
步骤1,获取至少一个资源地址,每一资源地址对应一个资源文件;
步骤2,将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
本发明提供的方法,通过获取至少一个资源地址,将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。由于任一功能模块均可以调用加载资源接口来实现资源加载,而不用在每一功能模块内编入加载实现代码,从而不会造成代码冗余,降低了开发复杂度。
另外,由于是使用接口的方式实现资源加载,加载实现代码不与任何对象耦合,只与接口耦合,从而降低了代码的耦合度,以便于后期维护和功能拓展。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,步骤2之前还包括:
创建资源加载接口类,并在资源加载接口类中定义接口,接口至少包括加载资源接口。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,步骤2中将每一资源地址作为传入参数,包括:
将每一资源地址存储至数组中,并将数组作为传入参数,数组的长度等于资源地址的个数。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,步骤2中基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件,包括:
基于加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,基于加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件,包括:
判断数组是否为空数组,并判断数组的长度是否大于0;
当数组不为空数组且数组的长度大于0时,通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,接口还包括加载完成接口,判断数组是否为空数组,并判断数组的长度是否大于0之后,还包括:
当数组为空数组或数组的长度等于0时,基于加载完成接口,执行加载成功的回调处理。
结合第一方面的第五种可能的实现方式,在第七种可能的实现方式中,接口还包括加载完成接口、加载进度接口及加载出错接口,通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件之前,还包括:
在第一实现类中,为加载完成接口、加载进度接口及加载出错接口分别创建对应的回调处理变量;
通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件,包括:
对于数组中任一资源地址,基于加载资源函数创建对应的加载线程;
按照加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,按照加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理,包括:
当处于加载过程中时,基于加载进度接口对应的回调处理变量,执行加载进度的回调处理;
当加载过程完成时,基于加载完成接口对应的回调处理变量,执行加载成功的回调处理;
当加载过程出错时,基于加载出错接口对应的回调处理变量,执行加载出错的回调处理。
结合第一方面的第一种可能的实现方式,在九种可能的实现方式中,步骤2中基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件,包括:
基于加载资源接口对应的第二实现类,预先创建线程池;
根据资源地址的数量,从线程池中选取相应数量的加载线程;
基于每一选取的加载线程,加载每一资源地址对应的资源文件。
根据本发明的第二方面,提供了一种资源加载装置,该装置包括至少一个模块,该至少一个模块用于实现上述第一方面或第一方面的各种可能的实现方式所提供的资源加载方法。
应当理解的是,以上的一般描述和后文的细节描述是示例性和解释性的,并不能限制本发明。
附图说明
图1为本发明实施例的一种资源加载方法的流程示意图;
图2为本发明实施例的一种资源加载方法的流程示意图;
图3为本发明实施例的一种资源加载装置的结构示意图;
图4为本发明实施例的一种资源加载设备的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
目前Flash程序的开发过程中,经常涉及到加载资源,如加载二进制数据、加载图文数据等。为了让开发过程中不同的功能模块能够加载资源,现有的资源加载方法是在每一功能模块中编入加载实现代码,通过每一功能模块中的加载实现代码来加载资源。
由于加载资源通常是个固定的流程,而通过每一功能模块内的加载实现代码来加载资源,每一功能模块中均需要编入加载实现代码,从而会造成代码冗余,并增加了开发复杂度。
针对现有技术中的问题,本发明实施例提供了一种资源加载方法。本实施例及后续实施例所提供的方法,适用于不同的操作系统,包括但不限于目前PC端与移动端的主流操作系统。本实施例及后续实施例相应实现代码的编程语言,可以包括但不限于目前主流的面向对象编程语言。为了便于描述,本实施例及后续实施例以编程语言为Java为例。参见图1,该方法包括:101、获取至少一个资源地址;102、将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
其中,资源地址可以为资源文件的存放目录,或者为资源文件的下载链接等,本实施例不对资源地址的内容作具体限定。每一资源地址对应一个资源文件。资源文件可以为二进制文件、图像、文本等,本实施例不对资源文件的类型作具体限定。
另外,为了便于理解,现对本实施例及后续实施例中相关专业术语进行解释:
类:类是面向对象程序设计中的概念,是面向对象编程的基础。类的实质是一种数据类型,类似于int、char等基本类型。不同的是它是一种复杂的数据类型。由于它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操作。它只有被实例化为对象时,才会变得可操作。类是对现实生活中一类具有共同特征的事物的抽象,如果一段程序中提供的类型与应用中的概念有直接的对应,则这段程序就会更容易被理解,也更容易被修改。一组经过筛选而定义的类,也会使程序更简洁。此外,它还能使各种形式的代码分析更容易进行。特别地,它还会使编译器有可能检查对象的非法使用。
类的内部封装了方法,用于操作自身的成员。类是对某种对象的定义,具有行为(be-havior),它描述一个对象能够做什么以及做的方法(method)。它包含有关对象行为方式的信息,包括它的名称、方法、属性和事件。
类的构成包括数据成员和成员函数。数据成员对应类的属性,类的数据成员也是一种数据类型,并不需要分配内存。成员函数则用于操作类的各项属性,是一个类具有的特有的操作。类和外界发生交互的操作称为接口。
接口:接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式。同一计算机不同功能层之间的通信规则可称为接口。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。
本发明实施例提供的方法,通过获取至少一个资源地址,将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。由于任一功能模块均可以调用加载资源接口来实现资源加载,而不用在每一功能模块内编入加载实现代码,从而不会造成代码冗余,降低了开发复杂度。
另外,由于是使用接口的方式实现资源加载,加载实现代码不与任何对象耦合,只与接口耦合,从而降低了代码的耦合度,以便于后期维护和功能拓展。
作为一种可选实施例,步骤102之前还包括:
创建资源加载接口类,并在资源加载接口类中定义接口,接口至少包括加载资源接口。
作为一种可选实施例,步骤102中将每一资源地址作为传入参数,包括:
将每一资源地址存储至数组中,并将数组作为传入参数,数组的长度等于资源地址的个数。
作为一种可选实施例,步骤102中基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件,包括:
基于加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件。
作为一种可选实施例,基于加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件,包括:
判断数组是否为空数组,并判断数组的长度是否大于0;
当数组不为空数组且数组的长度大于0时,通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件。
作为一种可选实施例,接口还包括加载完成接口,判断数组是否为空数组,并判断数组的长度是否大于0之后,还包括:
当数组为空数组或数组的长度等于0时,基于加载完成接口,执行加载成功的回调处理。
作为一种可选实施例,接口还包括加载完成接口、加载进度接口及加载出错接口,通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件之前,还包括:
在第一实现类中,为加载完成接口、加载进度接口及加载出错接口分别创建对应的回调处理变量;
通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件,包括:
对于数组中任一资源地址,基于加载资源函数创建对应的加载线程;
按照加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理。
作为一种可选实施例,按照加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理,包括:
当处于加载过程中时,基于加载进度接口对应的回调处理变量,执行加载进度的回调处理;
当加载过程完成时,基于加载完成接口对应的回调处理变量,执行加载成功的回调处理;
当加载过程出错时,基于加载出错接口对应的回调处理变量,执行加载出错的回调处理。
作为一种可选实施例,步骤102中基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件,包括:
基于加载资源接口对应的第二实现类,预先创建线程池;
根据资源地址的数量,从线程池中选取相应数量的加载线程;
基于每一选取的加载线程,加载每一资源地址对应的资源文件。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
基于上述图1对应实施例的内容,本发明实施例提供了一种资源加载方法。参见图2,该方法包括:201、获取至少一个资源地址;202、创建资源加载接口类,并在资源加载接口类中定义接口;203、将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
其中,201、获取至少一个资源地址。
由上述图1对应实施例中的内容可知,加载资源是个固定化的流程,该流程包括如下几个步骤:(1)发起请求加载资源文件;(2)开始加载资源文件,接收加载进度;(3)资源加载成功或失败。本实施例的后续内容也主要是结合该流程对资源加载的过程进行阐述。基于上述流程,本步骤在获取资源地址时,可通过发起加载请求来获取,本实施例对此不作具体限定。
其中,202、创建资源加载接口类,并在资源加载接口类中定义接口。
在本步骤中,资源加载接口中定义的接口可至少包括加载资源接口,本实施例不对定义的接口类型及数量作具体限定。为了便于理解,现结合上述步骤201中的加载资源流程,对创建资源加载接口类及定义接口的过程进行说明。需要说明的是,以下内容中接口类的名称与接口的名称只为了便于描述,实际实施过程中可根据需求进行命名,本实施例对此不作具体限定。
创建IloadAsset资源加载接口类,该资源加载接口类中定义的接口可如下所示:
(1)加载资源接口loadAssets(list:Array),该接口主要用于加载资源文件。其中,括号中的内容为资源地址,即该接口的传入参数。为了提高该接口的通用性,即可用来加载一个资源文件,也可以用来加载多个资源文件,可将数组作为传入参数。其中,数组中可存放一个或多个资源地址,数组的长度等于资源地址的个数。
(2)加载进度接口progress(...args),该接口用于在加载资源的过程中触发加载进度的回调处理,通过该接口可处理加载资源的加载进度。
(3)加载完成接口complete(...args),该接口用于资源加载成功时的回调处理,通过该接口可处理资源加载成功的操作。
(4)加载出错接口error(...args),该接口用于资源加载出错时的回调处理,通过该接口可处理资源加载失败的操作。具体地,可根据获取到的出错码进行出错处理。
上述定义的资源加载接口类及该类中定义的接口,可参考如下代码:
通过上述资源加载接口类,可让资源加载功能对应的实现代码不与任何对象耦合,以降低代码的耦合度,从而便于后期维护和功能拓展。
其中,203、将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
本实施例不对将每一资源地址作为传入参数的方式作具体限定,包括但不限于:将每一资源地址存储至数组中,并将数组作为传入参数。其中,数组的长度等于资源地址的个数。由步骤201中的内容可知,将每一资源地址存储至数组,并将数组作为传入参数,可提高加载资源接口的通用性。当然,也可每次将一个资源地址作为传入参数,本实施例对此不作具体限定。
关于基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件的方式,本实施例对此不作具体限定,包括但不限于:基于加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件。
为了让接口类型声明引用不被具体实现所限制,即为了便于接口类实现拓展,接口类的具体功能通常由实现类实现。相应地,在上述过程中可通过加载资源接口对应的第一实现类,实现资源加载。在执行上述过程之前,可先创建第一实现类。为了便于理解,现对创建第一实现类的过程进行说明。需要说明的是,以下内容中第一实现类的名称与相关变量的名称只为了便于描述,实际实施过程中可根据需求进行命名,本实施例对此不作具体限定。
创建CommonLoadImpl第一实现类,该实现类是一个通用的加载类。由于第一实现类实现了ILoadAsset接口类,从而第一实现类中所有的接口均可在第一实现类中实现。基于组合设计模式,现对第一实现类中的定义内容进行说明。
在第一实现类中可先定义3个全局的回调处理变量,用于对加载流程中不同阶段进行处理。具体地,三个回调处理变量均为handler类型的对象,三个全局变量分别为completeHandler、progressHandler、errorHandler。其中,completeHandler为加载完成的回调处理变量,progressHandler为加载进度的回调处理变量,errorHandler为加载错误的回调处理变量。上述三个变量的定义过程,可参考如下代码:
private var completeHandler:Handler;
private var progressHandler:Handler;
private var errorHandler:Handler;
创建一个ILoadAsset接口类型的loadRes对象,通过该对象调用资源加载接口类中不同的接口。定义loadRes对象的代码如下:
private var loadRes:ILoadAsset;
在第一实现类CommonLoadImpl的构造方法中,可由外部传入一个ILoadAsset对象的参数,以赋值给上面步骤中的loadRes对象。然后,分别实例化completeHandler,progressHandler,errorHandler这3个回调处理变量。构造方法的代码可如下所示:
根据第一实现类CommonLoadImpl的定义,本实施例不对基于加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件的方式作具体限定,包括但不限于:判断数组是否为空数组,并判断数组的长度是否大于0;当数组不为空数组且数组的长度大于0时,通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件;当数组为空数组或数组的长度等于0时,基于加载完成接口,执行加载成功的回调处理。
其中,数组即为加载资源接口的传入参数,加载资源函数为加载资源接口的具体实现方法。上述过程可用如下代码表示:
在上述代码中,loadAssets(list,completeHandler,progressHandler,errorHandler),其功能即为通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件。上述加载资源函数loadAssets为加载资源接口的具体实现,该函数中第一个参数list为数组,第二个参数completeHandler为加载完成接口对应的回调处理变量,第三个参数progressHandler为加载进度接口对应的回调处理变量,第四个参数errorHandler为加载出错接口对应的回调处理变量。其中,三个回调处理变量的定义可参考上述内容。
为了应对加载流程中不同的加载阶段,在通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件之前,可在第一实现类中,为加载完成接口、加载进度接口及加载出错接口分别创建对应的回调处理变量。其中,创建回调处理变量的过程可参考上述关于第一实现类的说明。
相应地,本实施例不对通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件的方式作具体限定,包括但不限于:对于数组中任一资源地址,基于加载资源函数创建对应的加载线程;按照加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理。
通过上述过程,可为每一资源文件创建一个加载线程。通过每一加载线程,实现对每一资源地址对应的资源文件进行加载。由于加载过程中,需要应对不同的加载阶段,从而可在不同的加载进度,通过回调处理变量执行相应的回调处理。
本实施例不对按照加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理的方式作具体限定,包括但不限于:当处于加载过程中时,基于加载进度接口对应的回调处理变量,执行加载进度的回调处理;当加载过程完成时,基于加载完成接口对应的回调处理变量,执行加载成功的回调处理;当加载过程出错时,基于加载出错接口对应的回调处理变量,执行加载出错的回调处理。
上述通过第一实现类进行资源加载的过程,主要是根据传入参数中资源地址的数量,临时创建相应数量的加载线程以实现加载资源文件。该过程需要每次临时创建加载线程,比较耗费资源和时间。为了解决该问题,本实施例可通过线程池的方式来加载资源,即从线程池中选取加载线程实现加载资源文件,而不用每次临时创建加载线程。
基于上述原理,本实施例不对基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件的方式作具体限定,包括但不限于:基于加载资源接口对应的第二实现类,预先创建线程池;根据资源地址的数量,从线程池中选取相应数量的加载线程;基于每一选取的加载线程,加载每一资源地址对应的资源文件。
为了便于说明,可将MassLoadImpl类作为第二实现类。在执行上述过程之前,可先创建第二实现类MassLoadImpl,具体创建过程可参考第一实现类ommonLoadImpl的创建过程,此处不再赘述。其中,第一实现类ommonLoadImpl与第二实现类MassLoadImpl均采用相同的处理方式,区别在于第二实现类MassLoadImpl是采用线程池的方式来实现资源加载。由于两个实现类均基于同一资源加载接口类,从而在具体实施过程中根据实际需求,两个实现类可切换着使用,本实施例对此不作具体限定。
本发明实施例提供的方法,通过获取至少一个资源地址,将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。由于任一功能模块均可以调用加载资源接口来实现资源加载,而不用在每一功能模块内编入加载实现代码,从而不会造成代码冗余,降低了开发复杂度。
另外,由于是使用接口的方式实现资源加载,加载实现代码不与任何对象耦合,只与接口耦合,从而降低了代码的耦合度,以便于后期维护和功能拓展。
最后,由于在资源加载过程中可根据需求,来回切换两个实现类以实现资源加载,从而可适用不同的加载场景。其中,一个实现类通过线程池的方式实现资源加载,能够减少资源和时间的耗费。
基于上述图1或图2对应实施例所提供的资源加载方法,本发明实施例提供了一种资源加载装置。参见图3,该装置包括:
获取模块301,用于获取至少一个资源地址,每一资源地址对应一个资源文件;
加载模块302,用于将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
作为一种可选实施例,该装置还包括:
创建模块,用于创建资源加载接口类,并在资源加载接口类中定义接口,接口至少包括加载资源接口。
作为一种可选实施例,加载模块302,用于将每一资源地址存储至数组中,并将数组作为传入参数,数组的长度等于资源地址的个数。
作为一种可选实施例,加载模块302,用于基于加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件。
作为一种可选实施例,加载模块302,包括:
判断单元,用于判断数组是否为空数组,并判断数组的长度是否大于0;
加载单元,用于当数组不为空数组且数组的长度大于0时,通过第一实现类中的加载资源函数,加载数组中每一资源地址对应的资源文件。
作为一种可选实施例,接口还包括加载完成接口,加载模块302还包括:
执行单元,用于当数组为空数组或数组的长度等于0时,基于加载完成接口,执行加载成功的回调处理。
作为一种可选实施例,接口还包括加载完成接口、加载进度接口及加载出错接口,加载模块302还包括:
创建单元,用于在第一实现类中,为加载完成接口、加载进度接口及加载出错接口分别创建对应的回调处理变量;
相应地,加载单元,用于对于数组中任一资源地址,基于加载资源函数创建对应的加载线程;按照加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理。
作为一种可选实施例,加载单元,用于当处于加载过程中时,基于加载进度接口对应的回调处理变量,执行加载进度的回调处理;当加载过程完成时,基于加载完成接口对应的回调处理变量,执行加载成功的回调处理;当加载过程出错时,基于加载出错接口对应的回调处理变量,执行加载出错的回调处理。
作为一种可选实施例,加载模块302,用于基于加载资源接口对应的第二实现类,预先创建线程池;根据资源地址的数量,从线程池中选取相应数量的加载线程;基于每一选取的加载线程,加载每一资源地址对应的资源文件。
本发明实施例提供的装置,通过获取至少一个资源地址,将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。由于任一功能模块均可以调用加载资源接口来实现资源加载,而不用在每一功能模块内编入加载实现代码,从而不会造成代码冗余,降低了开发复杂度。
另外,由于是使用接口的方式实现资源加载,加载实现代码不与任何对象耦合,只与接口耦合,从而降低了代码的耦合度,以便于后期维护和功能拓展。
最后,由于在资源加载过程中可根据需求,来回切换两个实现类以实现资源加载,从而可适用不同的加载场景。其中,一个实现类通过线程池的方式实现资源加载,能够减少资源和时间的耗费。
本发明实施例提供了一种资源加载设备。参见图4,该资源加载设备包括:处理器(processor)401、存储器(memory)402和总线403;
其中,处理器401及存储器402分别通过总线403完成相互间的通信;
处理器401用于调用存储器402中的程序指令,以执行上述图1或图2对应实施例所提供的资源加载方法,例如包括:获取至少一个资源地址,每一资源地址对应一个资源文件;将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
本发明公开一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述图1或图2对应实施例所提供的资源加载方法,例如包括:获取至少一个资源地址,每一资源地址对应一个资源文件;将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
本发明提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述图1或图2对应实施例所提供的资源加载方法,例如包括:获取至少一个资源地址,每一资源地址对应一个资源文件;将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的资源加载设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种资源加载方法,其特征在于,包括:
步骤1,获取至少一个资源地址,每一资源地址对应一个资源文件;
步骤2,将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
2.根据权利要求1所述的方法,其特征在于,所述步骤2之前还包括:
创建资源加载接口类,并在所述资源加载接口类中定义接口,所述接口至少包括加载资源接口。
3.根据权利要求1所述的方法,其特征在于,所述步骤2中将每一资源地址作为传入参数,包括:
将每一资源地址存储至数组中,并将所述数组作为传入参数,所述数组的长度等于资源地址的个数。
4.根据权利要求3所述的方法,其特征在于,所述步骤2中基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件,包括:
基于所述加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件。
5.根据权利要求4所述的方法,其特征在于,所述基于所述加载资源接口对应的第一实现类,加载每一资源地址对应的资源文件,包括:
判断所述数组是否为空数组,并判断所述数组的长度是否大于0;
当所述数组不为空数组且所述数组的长度大于0时,通过所述第一实现类中的加载资源函数,加载所述数组中每一资源地址对应的资源文件。
6.根据权利要求5所述的方法,其特征在于,所述接口还包括加载完成接口,所述判断所述数组是否为空数组,并判断所述数组的长度是否大于0之后,还包括:
当所述数组为空数组或所述数组的长度等于0时,基于所述加载完成接口,执行加载成功的回调处理。
7.根据权利要求5所述的方法,其特征在于,所述接口还包括加载完成接口、加载进度接口及加载出错接口,所述通过所述第一实现类中的加载资源函数,加载所述数组中每一资源地址对应的资源文件之前,还包括:
在所述第一实现类中,为所述加载完成接口、所述加载进度接口及所述加载出错接口分别创建对应的回调处理变量;
所述通过所述第一实现类中的加载资源函数,加载所述数组中每一资源地址对应的资源文件,包括:
对于所述数组中任一资源地址,基于所述加载资源函数创建对应的加载线程;
按照所述加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理。
8.根据权利要求7所述的方法,其特征在于,所述按照所述加载线程对应的加载进度,基于每一回调处理变量执行相应的回调处理,包括:
当处于加载过程中时,基于加载进度接口对应的回调处理变量,执行加载进度的回调处理;
当加载过程完成时,基于加载完成接口对应的回调处理变量,执行加载成功的回调处理;
当加载过程出错时,基于加载出错接口对应的回调处理变量,执行加载出错的回调处理。
9.根据权利要求1所述的方法,其特征在于,所述步骤2中基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件,包括:
基于所述加载资源接口对应的第二实现类,预先创建线程池;
根据资源地址的数量,从所述线程池中选取相应数量的加载线程;
基于每一选取的加载线程,加载每一资源地址对应的资源文件。
10.一种资源加载装置,其特征在于,包括:
获取模块,用于获取至少一个资源地址,每一资源地址对应一个资源文件;
加载模块,用于将每一资源地址作为传入参数,基于资源加载接口类中的加载资源接口,加载每一资源地址对应的资源文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710234033.6A CN108694047A (zh) | 2017-04-11 | 2017-04-11 | 资源加载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710234033.6A CN108694047A (zh) | 2017-04-11 | 2017-04-11 | 资源加载方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108694047A true CN108694047A (zh) | 2018-10-23 |
Family
ID=63843389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710234033.6A Pending CN108694047A (zh) | 2017-04-11 | 2017-04-11 | 资源加载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108694047A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924792A (zh) * | 2010-08-17 | 2010-12-22 | 优视科技有限公司 | 通过移动终端加载页面上Flash的方法及装置 |
EP2315140A1 (en) * | 2003-07-02 | 2011-04-27 | Vibrant Media Limited | Method and system for hyperlinking web content |
CN105354052A (zh) * | 2015-09-30 | 2016-02-24 | 北京奇虎科技有限公司 | flash游戏加载方法和装置 |
CN105955731A (zh) * | 2016-04-26 | 2016-09-21 | 深圳市编玩边学教育科技有限公司 | 一种手机游戏快速编写方法和系统 |
CN105955833A (zh) * | 2016-06-06 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 引擎调用方法和装置 |
-
2017
- 2017-04-11 CN CN201710234033.6A patent/CN108694047A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2315140A1 (en) * | 2003-07-02 | 2011-04-27 | Vibrant Media Limited | Method and system for hyperlinking web content |
CN101924792A (zh) * | 2010-08-17 | 2010-12-22 | 优视科技有限公司 | 通过移动终端加载页面上Flash的方法及装置 |
CN105354052A (zh) * | 2015-09-30 | 2016-02-24 | 北京奇虎科技有限公司 | flash游戏加载方法和装置 |
CN105955731A (zh) * | 2016-04-26 | 2016-09-21 | 深圳市编玩边学教育科技有限公司 | 一种手机游戏快速编写方法和系统 |
CN105955833A (zh) * | 2016-06-06 | 2016-09-21 | 腾讯科技(深圳)有限公司 | 引擎调用方法和装置 |
Non-Patent Citations (1)
Title |
---|
吕晓鹏: "《新手学ActionScript 3.0》", 31 January 2010, 北京希望电子出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941381B2 (en) | Method for compiling from a high-level scripting language to a blockchain native scripting language | |
CN106227605A (zh) | 一种多语言云编译的动态微服务扩容方法及装置 | |
CN100511156C (zh) | 强制性地终止输入/输出操作阻止的线程的设备和方法 | |
CN106250199A (zh) | 一种多语言云编译的动态微服务调用方法及装置 | |
CN106227611A (zh) | 一种多语言云编译的动态微服务调用方法及装置 | |
CN104750528B (zh) | 一种Android程序中的组件管理方法和装置 | |
US20180165066A1 (en) | Information-technology workflows using executable tiles | |
CN109614167B (zh) | 一种管理插件的方法和系统 | |
CN108874372B (zh) | 一种基于Scala的区块链合约实现方法及系统 | |
US11003466B2 (en) | Information-technology workflows using executable tiles with plural user interfaces | |
JP2012230710A (ja) | 計算機が実行可能なコードを生成する方法及び計算機が実行可能なコードを生成するために使用されるコンポーネントを提供する方法 | |
US10733013B2 (en) | Information-technology workflows using executable tiles distributed between workflow instances | |
CN104731622A (zh) | 一种应用程序的加载方法、装置和移动终端 | |
Lagaisse et al. | True and transparent distributed composition of aspect-components | |
US10929162B2 (en) | Virtual machine container for applications | |
CN111651169B (zh) | 基于web容器的区块链智能合约运行方法及系统 | |
CN104572034A (zh) | 一种撤销和/或重做的实现方法和装置 | |
CN109190367A (zh) | 利用沙箱运行应用程序安装包的方法及装置 | |
CN108694047A (zh) | 资源加载方法及装置 | |
US10732947B2 (en) | Information-technology workflow using tiles that declaratively specify datatypes | |
CN108334374A (zh) | 组件动态加载与执行的方法和装置 | |
CN102902564B (zh) | 安装补丁的方法及装置 | |
CN112764729B (zh) | 应用软件开发方法、装置、计算机设备及可读存储介质 | |
US11562024B2 (en) | Method and system for traversing an object graph using traversal context objects | |
CN112445683A (zh) | 一种多开检测绕过方法、存储介质、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181023 |