CN108268254B - 一种Flash文件功能库调用方法、装置、电子设备及介质 - Google Patents

一种Flash文件功能库调用方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN108268254B
CN108268254B CN201810018333.5A CN201810018333A CN108268254B CN 108268254 B CN108268254 B CN 108268254B CN 201810018333 A CN201810018333 A CN 201810018333A CN 108268254 B CN108268254 B CN 108268254B
Authority
CN
China
Prior art keywords
function
variable
actionscript
target function
calling
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.)
Active
Application number
CN201810018333.5A
Other languages
English (en)
Other versions
CN108268254A (zh
Inventor
周志刚
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810018333.5A priority Critical patent/CN108268254B/zh
Publication of CN108268254A publication Critical patent/CN108268254A/zh
Application granted granted Critical
Publication of CN108268254B publication Critical patent/CN108268254B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种Flash文件功能库调用方法、装置、电子设备和介质,方法包括:通过SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中;通过预设功能函数调用ActionScript主程序中目标函数对应的目标函数接口,存储计算结果到第二变量中;分配存储第二变量的变量指针;通过预设功能函数传递第一变量和第二变量为ActionScript语言;将第二变量写入第一参数并传递给调用方。解决了现有的Flash文件较大导致的下载慢、打开速度慢和占用空间多的技术问题。实现了减少SWF文件的大小,从而提高下载速度,提高打开速度和减少文件空间占用的技术效果。

Description

一种Flash文件功能库调用方法、装置、电子设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种Flash文件功能库调用方法、装置、电子设备及介质。
背景技术
目前,Flash被广泛的用于网页设计和网页动画制作及网页视频播放等。大多数的视频网站包括直播网站都采用Flash做为其视频播放器,并且大多数的网页游戏也会使用Flash来开发,Flash的具体使用文件是SWF文件。为了对代码进行复用,使得Flash能够支持C语言和C++语言开发,Flash提供了一种变相SWC的库文件,SWC功能库则可以是用C和C++语言开发,通过编写ActionScript代码则会调用SWC库,从而最终生成可以执行的SWF文件,从而可以极大的复用C和C++现有的功能代码。
然而为了使C语言和ActionScript语言都能实现同样的功能,往往会在SWC库和ActionScript主程序均设置各种相同或不同功能的功能函数,这就使得SWF文件较大。通常的视频网站使用Flash播放视频时,都会从视频网站服务器下载SWF文件,并加载进行调用。SWF文件较大会导致下载慢、打开速度慢和占用空间多的问题。
可见,现有的Flash文件较大导致的下载慢、打开速度慢和占用空间多的技术问题。
发明内容
本申请实施例通过提供一种Flash文件功能库调用方法、装置、电子设备及介质,解决了现有的Flash文件较大导致的下载慢、打开速度慢和占用空间多的技术问题。
第一方面,提供一种Flash文件功能库调用方法,所述Flash文件包括ActionScript主程序和N个SWC组件,N为正整数,所述方法包括:
通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;
通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
分配变量指针,所述变量指针用于存储所述第二变量,以所述第二变量作为所述变量指针的参数;
通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
将ActionScript语言的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
可选的,所述预设功能函数包括:与所述目标函数的目标函数接口对应的C语言接口函数;所述C语言接口函数包括:调用所述目标函数接口的调用函数;所述调用函数包括:定义的存储所述目标函数计算结果的指针和内嵌入的采用ActionScript语言描述的所述目标函数的导入函数。
可选的,所述导入函数是通过关键字import来导入所述目标函数的包名;所述导入函数是通过系统提供的宏inline_as3来在C语言中内嵌ActionScript语言的代码。
可选的,所述读取目标函数需要的计算参数到第一变量中,包括:调用系统的CModule.readString接口读取目标函数需要的计算参数到第一变量中,其中,所述第一变量包括:需要计算的字符串和/或需要计算的字符串的长度。
可选的,所述分配存储所述第二变量的变量指针,包括:调用系统的CModule.mallocString接口来分配存储所述第二变量的变量指针。
可选的,所述ActionScript主程序包含所述N个SWC组件;所述ActionScript主程序能调用所述N个SWC组件中的SWC功能函数,所述SWC功能函数包括所述预设功能函数。
第二方面,提供一种Flash文件功能库调用装置,所述Flash文件包括ActionScript主程序和N个SWC组件,N为正整数,所述装置包括:
读取模块,用于通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;
调用模块,用于通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
分配模块,用于分配变量指针,所述变量指针用于存储所述第二变量,以所述第二变量作为所述变量指针的参数;
传递模块,用于通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
写入模块,用于将传递后的ActionScript语言的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
可选的,所述预设功能函数包括:与所述目标函数的目标函数接口对应的C语言接口函数;所述C语言接口函数包括:调用所述目标函数接口的调用函数;所述调用函数包括:定义的存储所述目标函数计算结果的指针和内嵌入的采用ActionScript语言描述的所述目标函数的导入函数。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面的方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的方法、装置、电子设备及介质,通过所述SWC组件中的预设功能函数,读取ActionScript主程序中的目标函数需要的计算参数到第一变量中,再通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;然后分配存储所述第二变量的变量指针,并通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言,以便于后续将传递后的所述第二变量写入第一参数,并将所述第一参数传递给调用方使用。即通过在所述SWC组件中预设功能函数来调用ActionScript主程序中的目标函数,从而实现不需要在SWC组件中再添加所述目标函数相同功能的函数,只需要调用ActionScript主程序中的目标函数来实现相同功能,实现代码复用,避免相同的代码即在ActionScript编写的代码中也在SWC编写的C语言中,从而减少SWF文件的大小。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中Flash文件功能库调用方法的流程图;
图2为现有技术中SWF文件的结构示意图;
图3为本申请实施例中SWF文件的结构示意图;
图4为本申请实施例中Flash文件功能库调用装置的结构示意图;
图5为本申请实施例中电子设备的结构示意图;
图6为本申请实施例中计算机可读存储介质600的结构示意图。
具体实施方式
本申请实施例通过提供一种Flash文件功能库调用方法、装置、电子设备及介质,解决了现有的Flash文件较大导致的下载慢、打开速度慢和占用空间多的技术问题。实现了减少Flash的SWF文件的大小,从而提高下载速度,提高打开速度和减少文件空间占用的技术效果。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种Flash文件功能库调用方法,所述Flash文件包括ActionScript主程序和N个SWC组件,N为正整数,所述方法包括:
通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;
通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
分配变量指针,所述变量指针用于存储所述第二变量,以所述第二变量作为所述变量指针的参数;
通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
将传递后的ActionScript语言的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
具体来讲,通过所述SWC组件中的预设功能函数,读取ActionScript主程序中的目标函数需要的计算参数到第一变量中,再通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;然后分配存储所述第二变量的变量指针,并通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言,以便于后续将传递后的所述第二变量写入第一参数,并将所述第一参数传递给调用方使用。即通过在所述SWC组件中预设功能函数来调用ActionScript主程序中的目标函数,从而实现不需要在SWC组件中再添加所述目标函数相同功能的函数,只需要调用ActionScript主程序中的目标函数来实现相同功能,实现代码复用,避免相同的代码即在ActionScript编写的代码中也在SWC编写的C语言中,从而减少SWF文件的大小。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
如图1所示,一种Flash文件功能库调用方法,所述Flash文件包括ActionScript主程序和N个SWC组件,N为正整数,所述方法包括:
步骤S101,通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;
步骤S102,通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
步骤S103,分配变量指针,所述变量指针用于存储所述第二变量,以所述第二变量作为所述变量指针的参数;
步骤S104,通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
步骤S105,将ActionScript语言的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
具体来讲,所述方法应用于具备计算功能的电子设备中,所述电子设备可以是服务器、计算机、智能手机、平板电脑或笔记本,在此不作限制。
需要说明的是,所述Flash文件为SWF(shock wave flash)文件,是一种基于矢量的Flash动画文件,如图2和图3所示,一个可以执行的Flash文件包括编写的ActionScript主程序代码和各个SWC组件。所述ActionScript主程序包含N个SWC组件;所述ActionScript主程序能调用所述N个SWC组件中的SWC功能函数,所述SWC功能函数包括所述预设功能函数。
其中,图2为现有技术中的Flash文件,如图2所示,假设需要在ActionScript主程序代码和各个SWC组件中均提供目标函数201的功能,则需要在ActionScript主程序代码和各个SWC组件中均设置包含一份目标函数201,从而增加了代码量,增加了代码维护成本,从而最终的Flash文件包变大。
其中,图3为采用本申请实施例方法提供的Flash文件,如图3所示,假设需要在ActionScript主程序代码和各个SWC组件中均提供目标函数201的功能,则只需要ActionScript主程序代码中包括目标函数201,其他SWC组件都调用上层ActionScript的代码中的目标函数201,从而实现整个程序中只有一份目标函数201,从而减少了Flash文件大小。
需要说明的是,通常SWC组件的功能函数是提供给ActionScript脚本调用的,而如果需要在SWC组件中调用ActionScript的功能函数则需要通过反射的机制来调用。
下面,结合图1来详细介绍本实施例提供的Flash文件功能库调用方法的具体实施步骤:
在执行步骤S101之前,需要先在ActionScript主程序代码中编写所述目标函数,以所述目标函数为Md5功能函数为例:假设在ActionScript中已经编写了一个计算Md5的功能函数,其代码在代码包“com.adobe.crypto.MD5”中,具体提供的Md5接口是MD5.hash(s:String),其他参数s:String则是需要计算Md5的字符串。
然后,在执行步骤S101之前,还需要在SWC功能库中编写预设功能函数来调用ActionScript中的所述目标函数,具体可以是通过所述预设功能函数调用所述目标函数对应的目标函数接口来实现。具体预设功能函数的编写将在后续的步骤中进行介绍。
在编写完调用代码后,SWC组件需要执行所述目标函数时:
首先,执行步骤S101,通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序。
所述预设功能函数包括:与所述目标函数的目标函数接口对应的C语言接口函数;所述C语言接口函数包括:调用所述目标函数接口的调用函数;所述调用函数包括:定义的存储所述目标函数计算结果的指针和内嵌入的采用ActionScript语言描述的所述目标函数的导入函数。
具体来讲,由于需要通过所述预设功能函数在用C或者C++语言编写的SWC功能库中调用ActionScript的代码,即实现调用其目标函数接口的功能。故需要在SWC库中编写一个C语言的C语言接口函数,所述C语言接口函数与目标函数接口对应。所述C语言接口函数是通过调用ActionScript的代码来实现的。
在本申请实施例中,所述C语言接口函数可以为:void AAAA(char*pStrData,int*addr),其中,接口名是AAAA,传入2个参数:参数char*pStrData表示传入需要计算的字符串,其中参数int*addr表示计算得到的结果的存储指针。
举例来说,当所述目标函数为Md5函数时,所述C语言接口函数可以为:voidMd5Create(char*pStrData,int*addr),其中接口名是Md5Create。
进一步,在所述C语言接口函数中需要编写调用所述目标函数的功能函数,具体需要定义的存储所述目标函数计算结果的指针和内嵌入的采用ActionScript语言描述的所述目标函数的导入函数。所述导入函数是通过关键字import来导入所述目标函数的包名;所述导入函数是通过系统提供的宏inline_as3来在C语言中内嵌ActionScript语言的代码。
具体来讲:首先需要定义一个字符串指针用于存储所述目标函数的计算结果,具体定义代码可以为:char*pStrResult=NULL,此时,NULL为空指针,等待分配。然后通过系统提供的宏inline_as3来在C语言中内嵌ActionScript的代码,具体为代码inline_as3(),此宏的括号内则可以编写ActionScript的代码。进一步使用关键字import来导入具体的所述目标函数的包名。然后定义一个ActionScript的变量strResult用来存储所述目标函数计算的结果。
举例来说,以所述目标函数为Md5函数为例:
首先需要定义一个字符串指针用于存储所述目标函数Md5的计算结果,具体代码为:char*pStrResult=NULL;
然后通过系统提供的宏inline_as3来在C语言中内嵌ActionScript的代码,具体代码为:inline_as3(ActionScript的代码)。
再编写导入ActionScript提供Md5包,使用关键字import来导入具体的包名,假设对应本文是com.adobe.crypto.MD5,则具体代码为:"importcom.adobe.crypto.MD5;\n";
然后定义一个ActionScript的变量strResult用来存储计算的Md5结果,具体代码为:"var strResult:String=\"null\";\n"。
然后,执行步骤S102,通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中。
在本申请实施例中,可以是调用系统的CModule.readString接口读取目标函数需要的计算参数到第一变量中,其中,所述第一变量包括:需要计算的字符串和/或需要计算的字符串的长度。
具体来讲,可以通过代码"var data:String=CModule.readString(%1,%2);\n"来读取目标函数需要的计算参数到第一变量中。其中,data为所述第一变量,CModule.readString为调用的系统接口名,传入%1和%2标示传入2个参数,其中参数%1是需要计算的字符串,其中参数%2是需要计算的字符串的长度。
具体来讲,可以通过代码"strResult=BBBBB(data);\n"来调用ActionScript中所述目标函数对应的目标函数接口BBBBB,来调用所述目标函数对读取到的字符串data(所述第一变量)进行计算获得计算结果,并将所述计算结果存储到变量strResult中。
举例来说,假设所述目标函数为Md5,对应的接口是MD5.hash(s:String),则通过"strResult=MD5.hash(data);\n"调用ActionScript的Md5接口MD5.hash来对读取到的字符串data进行Md5计算,获得计算结果,并将计算结果存储到变量strResult中。
再下来,执行步骤S103,分配存储所述第二变量的变量指针,以所述第二变量作为所述变量指针的参数。
在本申请实施例中,所述分配存储所述第二变量的变量指针,包括:
调用系统的CModule.mallocString接口来分配存储所述第二变量的变量指针。
具体来讲,可以通过代码"var stringptr:int=CModule.mallocString(strResult);\n"来分配一个存储所述计算结果的字符串的变量指针。即通过调用系统提供的CModule.mallocString函数来分配用于存储所述计算结果的变量指针,其中strResult为之前存储的所述计算结果数据。再通过代码"CModule.write32(%0,stringptr);\n"将所述计算结果数据stringptr写入到参数%0中。
接下来,执行步骤S104,通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言。
具体来讲,可以通过代码::"r"(&pStrResult),"r"(pStrData),"r"(strlen(pStrData))从C语言传递参数到ActionScript语言中,其中"r"(&pStrResult)对应参数%0;"r"(pStrData)对应参数%1;"r"(strlen(pStrData))对应与参数%2。
具体来讲,将计算的参数和获得的计算结果转换为ActionScript语言,能便于后续的参数输出,因为ActionScript语言才是SWF的主程序语言,需要ActionScript语言来输出计算结果。
再下来,执行步骤S105,将传递后的ActionScript语言的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
具体来讲,可以通过代码*addr=(int)pStrResult最后的所述计算结果写入参数addr中,以传递给调用者使用。
通过上述步骤S101-步骤S105就实现了在C语言中编写内嵌的AcitonScript代码来调用AcitonScript中的所述目标函数的功能。
还需要说明的是,在具体实施过程中,考虑到,SWF文件的主程序语言为ActionsScript语言,故在SWC功能库中编写完成所述预设功能函数后,还需要在ActionsScript编写的主程序中引入SWC功能库。使得所述ActionScript主程序中包含所述N个SWC库。
这样,在所述SWF文件中,SWC功能库可以调用上层ActionsScript的接口来减少库代码大小,即只需要一份所述目标函数,就可以使ActionScript主程序和各SWC组件均能提供目标函数的功能。整份SWF文件只有一份所述目标函数的代码,可以减少最终SWF文件的功能库大小。
当然,在本申请实施例中,除了SWC功能库可以调用上层ActionsScript的接口外,所述ActionsScript主程序也可以去调用SWC中的功能函数,来完成部分功能。
举例来说,假设SWC功能库中编写有一加密计算函数,其接口函数为:StringencodeUrl(String str)。该接口会对传入进来的字符串计算MD5值从而得到加密的KEY值。
假设SWC功能库中编写的加密函数具体功能包括:调用的接口Md5Create,即Md5Create(str,key),其中,str是传入的参数,key表明结果存储在key中。然后使用加密算法TEA来加密字符串:encryptData=TEA.encrypt(str,key),并通过eturn encryptData来返回加密结果。
从而在ActionScript代码中,调用SWC功能库的加密计算函数的方法如下:
在ActionsScript主程序中首先引入编写的SWC的功能库。假设我们编写的SWC的功能库名称是XX,则可以使用语句import来引入此功能库,即代码为:import XX。
然后可以直接调用功能库编写的接口,具体通过代码String result=XX.encodeUrl(“”)实现调用功能库的接口,假设该函数需要用到Md5函数,而Md5在ActionScript主程序中,则在Md5Create接口中会调用SWC编写的MD5功能接口,SWC中编写的MD5接口最终则是调用上层ActionScript主程序编写的MD5接口来实现调用Md5函数进行计算。
具体来讲,通过所述SWC组件中的预设功能函数,读取ActionScript主程序中的目标函数需要的计算参数到第一变量中,再通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;然后分配存储所述第二变量的变量指针,并通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言,以便于后续将传递后的所述第二变量写入第一参数,并将所述第一参数传递给调用方使用。即通过在所述SWC组件中预设功能函数来调用ActionScript主程序中的目标函数,从而实现不需要在SWC组件中再添加所述目标函数相同功能的函数,只需要调用ActionScript主程序中的目标函数来实现相同功能,实现代码复用,避免相同的代码即在ActionScript编写的代码中也在SWC编写的C语言中,从而减少SWF文件的大小。
基于同一发明构思,本申请提供了实施例一对应的装置,详见实施例二。
实施例二
本实施例提供一种Flash文件功能库调用装置,如图4所示,所述Flash文件包括ActionScript主程序和N个SWC组件,N为正整数,所述装置包括:
读取模块401,用于通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;
调用模块402,用于通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
分配模块403,用于分配存储所述第二变量的变量指针,以所述第二变量作为所述变量指针的参数;
传递模块404,用于通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
写入模块405,用于将传递后的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
在本申请实施例中,所述预设功能函数包括:
与所述目标函数的目标函数接口对应的C语言接口函数;所述C语言接口函数包括:调用所述目标函数接口的调用函数;所述调用函数包括:定义的存储所述目标函数计算结果的指针和内嵌入的采用ActionScript语言描述的所述目标函数的导入函数。
由于本实施例所介绍的装置为实施本申请实施例一中一种Flash文件功能库调用方法所采用的装置,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备,详见实施例三。
实施例三
本实施例提供一种电子设备,如图5所示,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序511,处理器520执行计算机程序511时实现以下步骤:
通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;
通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
分配存储所述第二变量的变量指针,以所述第二变量作为所述变量指针的参数;
通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
将传递后的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
在具体实施过程中,处理器520执行计算机程序511时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中一种Flash文件功能库调用方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质600,如图6所示,其上存储有计算机程序611,该计算机程序611被处理器执行时实现以下步骤:
显示印象标签集合,所述印象标签集合中的印象标签为观众给主播标注的描述语;
接收在所述印象标签集合中选择目标标签的第一选择操作;
基于所述第一选择操作,显示所述目标标签对应的直播房间序列,其中,所述直播房间序列中的直播房间对应的主播为被标注过所述目标标签的主播;
接收在所述房间序列中选择目标直播房间的第二选择操作;
基于所述第二选择操作,显示所述目标直播房间的直播页面。
在具体实施过程中,该计算机程序611被处理器执行时,可以实现实施例一中任一实施方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种Flash文件功能库调用方法,其特征在于,所述Flash文件包括ActionScript主程序和N个SWC组件,N为正整数,所述方法包括:
通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;所述预设功能函数与所述目标函数实现相同功能;所述第一变量包括:需要计算的字符串和/或需要计算的字符串的长度;
通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
分配变量指针,所述变量指针用于存储所述第二变量,以所述第二变量作为所述变量指针的参数;
通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
将ActionScript语言的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
2.如权利要求1所述的方法,其特征在于,所述预设功能函数包括:
与所述目标函数的目标函数接口对应的C语言接口函数;所述C语言接口函数包括:调用所述目标函数接口的调用函数;所述调用函数包括:定义的存储所述目标函数计算结果的指针和内嵌入的采用ActionScript语言描述的所述目标函数的导入函数。
3.如权利要求2所述的方法,其特征在于,所述导入函数是通过关键字import来导入所述目标函数的包名;所述导入函数是通过系统提供的宏inline_as3来在C语言中内嵌ActionScript语言的代码。
4.如权利要求1所述的方法,其特征在于,所述读取目标函数需要的计算参数到第一变量中,包括:
调用系统的CModule.readString接口读取目标函数需要的计算参数到第一变量中,其中,所述第一变量包括:需要计算的字符串和/或需要计算的字符串的长度。
5.如权利要求1所述的方法,其特征在于,所述分配变量指针,包括:
调用系统的CModule.mallocString接口来分配存储所述第二变量的变量指针。
6.如权利要求1所述的方法,其特征在于,所述ActionScript主程序包含所述N个SWC组件;所述ActionScript主程序能调用所述N个SWC组件中的SWC功能函数,所述SWC功能函数包括所述预设功能函数。
7.一种Flash文件功能库调用装置,其特征在于,所述Flash文件包括ActionScript主程序和N个SWC组件,N为正整数,所述装置包括:
读取模块,用于通过所述SWC组件中的预设功能函数,读取目标函数需要的计算参数到第一变量中,其中,所述目标函数属于所述ActionScript主程序;所述预设功能函数与所述目标函数实现相同功能;所述第一变量包括:需要计算的字符串和/或需要计算的字符串的长度;
调用模块,用于通过所述预设功能函数调用ActionScript主程序中所述目标函数对应的目标函数接口,以使所述目标函数对所述第一变量进行计算,获得计算结果,并存储所述计算结果到第二变量中;
分配模块,用于分配变量指针,所述变量指针用于存储所述第二变量,以所述第二变量作为所述变量指针的参数;
传递模块,用于通过所述预设功能函数传递所述第一变量和所述第二变量为ActionScript语言;
写入模块,用于将ActionScript语言的所述第二变量写入第一参数,并将所述第一参数传递给调用方。
8.如权利要求7所述的装置,其特征在于,所述预设功能函数包括:
与所述目标函数的目标函数接口对应的C语言接口函数;所述C语言接口函数包括:调用所述目标函数接口的调用函数;所述调用函数包括:定义的存储所述目标函数计算结果的指针和内嵌入的采用ActionScript语言描述的所述目标函数的导入函数。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一所述的方法。
CN201810018333.5A 2018-01-09 2018-01-09 一种Flash文件功能库调用方法、装置、电子设备及介质 Active CN108268254B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810018333.5A CN108268254B (zh) 2018-01-09 2018-01-09 一种Flash文件功能库调用方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810018333.5A CN108268254B (zh) 2018-01-09 2018-01-09 一种Flash文件功能库调用方法、装置、电子设备及介质

Publications (2)

Publication Number Publication Date
CN108268254A CN108268254A (zh) 2018-07-10
CN108268254B true CN108268254B (zh) 2022-03-22

Family

ID=62773284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810018333.5A Active CN108268254B (zh) 2018-01-09 2018-01-09 一种Flash文件功能库调用方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN108268254B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542604A (zh) * 2018-11-23 2019-03-29 北京锐安科技有限公司 线程中注入接口的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169432A (zh) * 2010-02-25 2011-08-31 腾讯科技(深圳)有限公司 一种as语言接口函数及调用方法
CN104899051A (zh) * 2014-03-05 2015-09-09 博雅网络游戏开发(深圳)有限公司 Flash程序库文件的构建加载方法、系统及装置
CN106933695A (zh) * 2017-02-28 2017-07-07 武汉斗鱼网络科技有限公司 一种swf文件的校验方法及系统
CN107229844A (zh) * 2017-05-31 2017-10-03 武汉斗鱼网络科技有限公司 检测swf文件调用者的方法、装置、服务端及客户端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169432A (zh) * 2010-02-25 2011-08-31 腾讯科技(深圳)有限公司 一种as语言接口函数及调用方法
CN104899051A (zh) * 2014-03-05 2015-09-09 博雅网络游戏开发(深圳)有限公司 Flash程序库文件的构建加载方法、系统及装置
CN106933695A (zh) * 2017-02-28 2017-07-07 武汉斗鱼网络科技有限公司 一种swf文件的校验方法及系统
CN107229844A (zh) * 2017-05-31 2017-10-03 武汉斗鱼网络科技有限公司 检测swf文件调用者的方法、装置、服务端及客户端

Also Published As

Publication number Publication date
CN108268254A (zh) 2018-07-10

Similar Documents

Publication Publication Date Title
US9536261B2 (en) Resolving conflicts within saved state data
CN108563517B (zh) 系统接口的调用方法及装置
US10127294B2 (en) Idempotency of application state data
CN111277869B (zh) 视频播放方法、装置、设备和存储介质
CN104503745B (zh) 一种生成应用渠道包的方法和装置
CN110058873A (zh) 应用页面更新方法、装置、设备和存储介质
CN110597916B (zh) 基于区块链的数据处理方法、装置、存储介质及终端
CN109388766A (zh) 页面加载的方法和装置
CN108184170B (zh) 一种数据处理方法及装置
CN108170430B (zh) 一种界面展示的方法及系统
CN110909527B (zh) 文本处理模型的运行方法、装置、电子设备、及存储介质
US20230188329A1 (en) Using secure multi-party computation and probabilistic data structures to protect access to information
CN113221152A (zh) 数据处理方法、装置、设备、存储介质及程序
CN113395359A (zh) 基于远程直接内存访问的文件币集群数据传输方法、系统
CN107391622A (zh) 一种数据访问方法及设备
CN108268254B (zh) 一种Flash文件功能库调用方法、装置、电子设备及介质
CN107450959A (zh) 一种版本数据发布、获取方法、设备及装置及更新系统
CN105681823A (zh) 一种对视频文件进行在线转码的方法和装置
WO2021179697A1 (zh) 一种在虚拟机中执行功能模块的方法和装置
US9471299B1 (en) Updating code within an application
WO2023050673A1 (zh) 一种图像缓存方法、装置、电子设备、存储介质及计算机程序产品
CN110134387A (zh) 贷款业务中的单证模板数据处理方法、装置及计算机设备
CN109614536A (zh) 基于YouTuBe的视频批量爬取方法、系统、装置及可存储介质
CN111581578B (zh) 接口请求处理方法和装置
CN116702218B (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
GR01 Patent grant
GR01 Patent grant