CN102169432B - 一种as语言接口函数及调用方法 - Google Patents

一种as语言接口函数及调用方法 Download PDF

Info

Publication number
CN102169432B
CN102169432B CN201010123103.9A CN201010123103A CN102169432B CN 102169432 B CN102169432 B CN 102169432B CN 201010123103 A CN201010123103 A CN 201010123103A CN 102169432 B CN102169432 B CN 102169432B
Authority
CN
China
Prior art keywords
function
proxy
external
intrinsic
call
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
CN201010123103.9A
Other languages
English (en)
Other versions
CN102169432A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201010123103.9A priority Critical patent/CN102169432B/zh
Publication of CN102169432A publication Critical patent/CN102169432A/zh
Application granted granted Critical
Publication of CN102169432B publication Critical patent/CN102169432B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种AS语言接口函数及调用方法,属于多媒体技术领域。本发明实施例的AS语言接口函数,包括代理函数,所述代理函数能够调用与其相对应的至少两个内部函数;对应关系模块,所述对应关系模块包括外部函数、代理函数、至少两个内部函数之间的对应关系。方法包括:当调用外部函数时,调用AS语言接口函数中与所述外部函数对应的代理函数;所述AS语言接口函数中包括代理函数;且每一代理函数对应至少两个内部函数;所述代理函数调用相对应的至少两个内部函数。本发明实施例可以通过代理函数实现一个外部函数调用多个内部函数。

Description

一种AS语言接口函数及调用方法
技术领域
本发明涉及一种多媒体技术领域,特别涉及一种AS语言接口函数及调用方法。
背景技术
Flash是一种交互式矢量多媒体技术,Flash已经渐渐成为交互式矢量的标准,未来网页的一大主流。ActionScript是Flash的脚本语言,业界通称为AS语言。通过ActionScript才能在Flash中创作具有很强交互性的动画,而该语言的最新版本是ActionScript3.0,简称AS3。
现有的AS3本身提供的与外部程序的接口,现有的只有ExternalInterface接口。AS3的内部模块是通过ExternalInterface接口为非AS3实现的外部模块提供功能。其中内部模块是功能提供者,外部模块是功能使用者。
AS3的具体的实现代码中,包括有外部函数和内部函数和关联函数:
外部函数,一般表示为Fun1_ExternalName,外部函数是为功能使用者(外部模块)所调用的函数名;
内部函数,一般表示为Fun1_Implement,内部函数是在功能提供者(内部模块)所实现的函数;
关联函数,一般表示为addCallback,关联函数是将外部模块所调用的函数与内部模块所实现的函数关联起来;当外部模块在调用Fun1_ExternalName函数时,将调用Fun1_Implement函数。
现有的ExternalInterface.addCallback函数的具体代码可以为:
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有的ExternalInterface接口的关联函数addCallback只能实现一对一的绑定。即一个外部函数只能与一个内部函数绑定。当该外部函数的目的是为了从外部模块向内部模块抛出事件时,由于每一外部函数只能与一个内部函数绑定,因此每次无法实现该事件被多个内部模块监听。也就是,无法建立一套外部模块与内部模块之间的事件机制。
发明内容
为了解决现有技术中AS3的ExternalInterface无法实现一对多绑定,且绑定后取消的问题,且无法模拟外部模块调用内部模块的问题,本发明实施例提出了一种AS语言接口函数调用装置及调用方法。所述技术方案如下:
本发明实施例提出了一种AS语言接口函数调用装置,包括:
函数存储模块,用于存储代理函数;
关系存储模块,用于存储包括外部函数、代理函数、至少两个内部函数之间的对应关系;
调用模块,用于调用与代理函数相对应的至少两个内部函数;
所述装置还包括:
模拟调用模块,用于生成调用外部函数的指令,根据所述指令调用与所述外部函数对应的代理函数,并由所述代理函数调用对应的每一内部函数,所述模拟调用模块能模拟调用外部函数的过程,使所述AS语言接口函数调用装置具有自触发功能。
作为上述技术方案的优选,所述关系存储模块包括:
函数映射单元,存储有所述外部函数与函数封装单元之间的对应关系;
函数封装单元,存储有所述外部函数、代理函数、至少两个内部函数之间的对应关系。
作为上述技术方案的优选,所述函数封装单元包括:
外部函数名子单元,包括有外部函数名;
代理函数引用子单元,包括与所述外部函数名对应的代理函数的索引,所述代理函数存储于所述函数存储模块内;
内部函数引用列表子单元,包括与所述代理函数对应的至少两个内部函数的索引。
作为上述技术方案的优选,所述装置还包括:
对应关系修改模块,用于根据控制指令,修改所述函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系,和/或所述函数封装单元的所述代理函数引用子单元的索引关系,和/或所述函数封装单元的所述内部函数引用列表子单元的索引关系。
同时,本发明实施例还提出了一种AS语言接口函数调用方法,包括:
当调用外部函数时,调用AS语言接口函数中与所述外部函数对应的代理函数;所述AS语言接口函数中存储了代理函数;且每一代理函数对应至少两个内部函数;
通过所述代理函数调用相对应的至少两个内部函数;
所述方法还包括:
设置模拟调用模块用于生成调用外部函数的指令,根据所述指令调用与所述外部函数对应的代理函数,并由所述代理函数调用对应的每一内部函数,所述模拟调用模块能模拟调用外部函数的过程,使所述AS语言接口函数调用方法具有自触发功能。
作为上述技术方案的优选,所述方法具体为:
当调用外部函数时,查询所述AS语言接口函数中的函数映射单元,获得与所述外部函数对应的函数封装单元;所述函数映射单元内存储有所述外部函数与函数封装单元之间的对应关系;
查询所述函数映射单元,获得与所述外部函数对应的代理函数,以及与该代理函数对应的至少两个内部函数;所述函数封装单元内存储有所述外部函数名、代理函数、至少两个内部函数之间的对应关系;
调用所述代理函数,通过所述代理函数调用与其相对应的至少两个内部函数。
作为上述技术方案的优选,所述的调用所述代理函数,通过所述代理函数调用与其相对应的至少两个内部函数具体为:
查询代理函数引用子单元,获取与所述外部函数对应的代理函数的索引;
查询内部函数引用列表子单元,获取代理函数与的至少两个内部函数的对应关系;
根据所述代理函数的索引,调用与所述外部函数对应的代理函数;
所述代理函数根据内部函数引用列表子单元中与内部函数的对应关系,调用对应的至少两个内部函数。
作为上述技术方案的优选,所述方法还包括:
根据控制指令,修改所述函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系,和/或所述函数封装单元的所述代理函数引用子单元的索引关系,和/或所述函数封装单元的所述内部函数引用列表子单元的索引关系。
本发明实施例提供的技术方案的有益效果是:本发明实施例提出的AS语言接口函数及调用方法,可以通过代理函数实现一个外部函数调用多个内部函数,使得Flash的AS3语言可以获得更好的系统灵活性。同时,本发明实施例无需对现有的AS3语言的架构,并不需修改对外部函数进行修改,即可实现在调用一个外部函数的时候能够同时调用多个内部函数。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中使用的附图作一简单地介绍,显而易见地,下面所列附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例的结构示意图;
图2为本发明第二实施例的结构示意图;
图3为本发明第三实施例的结构示意图;
图4为本发明第六实施例的流程示意图;
图5为本发明第七实施例的流程示意图;
图6为本发明第八实施例的流程示意图;
图7为本发明的AS语言接口函数的一个具体实例;
图8为本发明实施例中增加外部函数名与内部函数绑定的流程示意图;
图9为本发明实施例中取消外部函数名到内部函数绑定的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
如图1所示,本发明第一实施例提出了一种AS语言接口函数,包括:
代理函数1,所述代理函数能够调用与其相对应的至少两个内部函数;
对应关系模块2,所述对应关系模块包括外部函数、代理函数、至少两个内部函数之间的对应关系。
本发明实施例提出的AS语言接口函数,可以通过代理函数实现一个外部函数调用多个内部函数。现有技术中外部函数与内部函数一一对应,这样使得Flash的AS3语言的系统灵活性比较差,对于类似于事件机制的情况无法通过一次调用函数完成,造成系统复杂度增加。本发明实施例中,通过在接口函数中设置代理函数,并建立代理函数与外部函数的绑定,这样在外部函数被调用时,同时调用代理函数。同时,建立代理函数与内部函数的对应关系,当代理函数被调用时,代理函数调用与其对应的内部函数。本发明实施例通过代理函数可以实现调用一个外部函数即可相应地调用多个内部函数,相比较现有的方法可以获得更好的系统灵活性。同时,本发明实施例无需对现有的AS3语言的架构,并不需修改对外部函数进行修改,即可实现在调用一个外部函数的时候能够同时调用多个内部函数。当然,每一代理函数可以对应任意个内部函数,即可以为0个、2个或多个。
实施例2
如图2所示,本发明第二实施例是在第一实施例的基础上改进而来。即第一实施例的所述对应关系模块1包括:
函数映射单元11,存储有所述外部函数与函数封装单元12之间的对应关系;
函数封装单元12,存储有所述外部函数、代理函数、至少两个内部函数之间的对应关系。
本发明第二实施例是第一实施例的一个改进,即对应关系模块可以具体的包括:函数映射单元和函数封装单元。这样就可以简单的实现外部函数、代理函数、内部函数的一一对应。在外部函数被调用时,与其绑定的代理函数同时被调用。代理函数调用与之应对的函数封装器去分发该次调用。最终,所有存储在函数封装单元的内部函数都会被执行。
本实施例是采用函数映射单元和函数封装单元的方式,实现外部函数与代理函数的绑定,以及代理函数与内部函数的绑定。采用这种方式可以更便于今后的修改。现有的AS3接口函数中对于外部函数与关联函数绑定后就无法解除绑定了。而本发明实施例中通过函数映射单元和函数封装单元的方式,可以非常方便的修改或增加或删除绑定关系。
实施例3
如图3所示,本发明第三实施例是在第二实施例的基础上改进而来。即所述装置还包括:
代理函数模块3,包括代理函数1;
所述函数封装单元12包括:
外部函数名子单元121,包括有外部函数名;
代理函数引用子单元122,包括与所述外部函数名与对应的代理函数的索引,所述代理函数2设置于所述代理函数模块3内;
内部函数引用列表子单元123,包括与所述代理函数对应的至少两个内部函数的索引。
本发明第三实施例增加了代理函数模块,并对函数封装单元进行了改进。本发明第三实施例的代理函数模块内存储有代理函数,同时将函数封装单元内设置外部函数名、代理函数引用、内部函数引用列表。这样,在修改代理函数、内部函数时,只需在系统内修改一次即可,而不需要对每一个函数封装器分别进行修改。这样极大的提高了系统的灵活性和可用性,降低后期维护投入。同时,这种方式可以简单的实现外部函数与代理函数对应,以及代理函数与内部函数对应。在调用外部函数时,通过查询函数映射单元获取对应的函数封装单元,然后通过函数封装单元内的对应关系获取与外部函数绑定的代理函数,以此实现外部函数与代理函数绑定。根据代理函数引用子单元中的索引,调用代理函数模块内的代理函数。代理函数模块内的代理函数,根据内部函数引用列表子单元调用对应的一个或多个内部函数。
实施例4
本发明第四实施例是在第三实施例的基础上改进而来。即所述装置还包括:
对应关系修改模块,用于根据控制指令,修改所述函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系,和/或所述函数封装单元的所述代理函数引用子单元的索引关系,和/或所述函数封装单元的所述内部函数引用列表子单元的索引关系。
本发明第四实施例的对应关系修改模块,增加了对所述函数映射单元和/或所述函数封装单元内代理函数引用子单元和/或内部函数引用列表子单元的索引关系进行修改。这样,对于AS3本发明实施例增设的对应关系修改模块可以对函数封装单元内存储的代理函数与内部函数的对应关系进行修改,也可以对函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系进行修改。其中修改包括但不限于:对应关系的增加、删除。
实施例5
本发明第五实施例是在第一或第二或第三或第四实施例的基础上改进而来。即所述装置还包括:
模拟调用模块5,用于生成调用外部函数的指令,并调用所述外部函数。
模拟调用模块可以模拟一个调用外部函数的过程。这样可以提高AS3语言的灵活性,使其具有自触发功能,即无需外界指令即可发起调用外部函数的进程,以便于对数据进行测试。
实施例6
如图4所示,本发明第六实施例提出了AS语言接口函数调用方法,其特征在于,包括:
步骤101、当调用外部函数时,调用AS语言接口函数中与所述外部函数对应的代理函数;所述AS语言接口函数中至少包括代理函数;且每一代理函数对应至少两个内部函数;
步骤102、所述代理函数调用相对应的内部函数。
本发明实施例提出的函数调用方法,可以通过代理函数实现一个外部函数调用多个内部函数。现有技术中外部函数与内部函数一一对应,这样使得Flash的AS3语言的系统灵活性比较差,对于类似于事件机制的情况无法通过一次调用函数完成,造成系统复杂度增加。本发明实施例通过代理函数可以实现调用一个外部函数即可相应地调用多个内部函数,相比较现有的方法可以获得更好的系统灵活性。同时,本发明实施例无需对现有的AS3语言的架构,并不需修改对外部函数进行修改,即可实现在调用一个外部函数的时候能够同时调用多个内部函数。当然,每一代理函数可以对应任意个内部函数,即可以为0个、2个或多个。
实施例7
如图5所示,本发明第七实施例是在第六实施例的基础上改进而来。即第六实施例的方法可以具体为:
步骤201、当调用外部函数时,查询AS语言接口函数中的函数映射单元,获得与所述外部函数对应的函数封装单元;所述函数映射单元内存储有所述外部函数与函数封装单元之间的对应关系;
步骤202、查询所述函数映射单元,获得与所述外部函数对应的代理函数,以及与该代理函数对应的内部函数;所述函数封装单元内存储有所述外部函数名、代理函数、至少两个内部函数之间的对应关系;
步骤203、调用所述代理函数,所述代理函数调用与其相对应的至少两个内部函数。
本发明第七实施例是第六实施例的一个具体的方式。其中,即通过函数映射单元和函数封装单元存储对应关系,并通过简单的步骤实现查询及调用过程。这样就可以简单的实现外部函数、代理函数、内部函数的一一对应。当然,在函数封装单元内不仅限于存储代理函数与内部函数之间的对应关系,还可以存储外部函数名等参数。当然,本发明实施例只是举例说明,实现这种对应关系还可以采用其他方式,只要可以将外部函数名、代理函数、内部函数进行对应即可,而上述方式都应在本发明保护范围之内。
本实施例是采用函数映射单元和函数封装单元的方式,实现外部函数与代理函数的绑定,以及代理函数与内部函数的绑定。采用这种方式可以更便于今后的修改。现有的AS3接口函数中对于外部函数与关联函数绑定后就无法解除绑定了。而本发明实施例中通过函数映射单元和函数封装单元的方式,可以非常方便的修改或增加或删除绑定关系。
实施例8
如图6所示,本发明第八实施例是在第七实施例的基础上改进而来。即第七实施例的步骤202可以具体为:
步骤2021、查询代理函数引用子单元,获取代理函数模块内的代理函数的索引;
步骤2022、查询内部函数引用列表子单元,获取代理函数与的内部函数的对应关系;
步骤2023、根据所述代理函数的索引,调用所述代理函数模块内的对应的代理函数;所述代理函数根据内部函数引用列表子单元中与内部函数的对应关系,调用对应的内部函数。
本发明第八实施例的方法中,通过代理函数模块内存储有代理函数,同时将函数封装单元内设置外部函数名、代理函数引用、内部函数引用列表。这样,函数封装单元内只存储代理函数和内部函数的索引。在修代理函数、内部函数时,只需在系统内修改一次即可,而不需要对每一个函数封装器分别进行修改。这样极大的提高了系统的灵活性和可用性,降低后期维护投入。同时,这种方式可以简单的实现外部函数与代理函数对应,以及代理函数与内部函数对应。在调用外部函数时,通过查询函数映射单元获取对应的函数封装单元,然后通过函数封装单元内的对应关系获取与外部函数绑定的代理函数,以此实现外部函数与代理函数绑定。根据代理函数引用子单元中的索引,调用代理函数模块内的代理函数。代理函数模块内的代理函数,根据内部函数引用列表子单元调用对应的一个或多个内部函数。
实施例9
本发明第九实施例是在第八实施例的基础上改进而来。即第八实施例的方法还可以包括:
根据控制指令,修改所述函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系,和/或所述函数封装单元的所述代理函数引用子单元的索引关系,和/或所述函数封装单元的所述内部函数引用列表子单元的索引关系。
该步骤可以在上述的步骤的任意时隙内。本发明第九实施例的方法增加了对所述函数映射单元和/或所述函数封装单元的修改方法。这样,对于AS3本发明实施例增设的对应关系修改模块可以对函数封装单元内存储的代理函数与内部函数的对应关系进行修改,也可以对函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系进行修改。其中修改包括但不限于:对应关系的增加、删除。
实施例10
本发明第十实施例是在第六或第七或第八或第九实施例的基础上改进而来,即所述方法还包括:
生成调用外部函数的指令,调用与所述外部函数对应的代理函数,并由所述代理函数调用对应的每一内部函数。
本实施例增加的步骤可以模拟一个调用外部函数的过程。这样可以提高AS3语言的灵活性,使其具有自触发功能,即无需外界指令即可发起调用外部函数的进程,以便于对数据进行测试。
下面通过具体的实例对本发明实施例做出进一步说明:
本发明实施例的AS语言接口函数,其结构可以如图7所示,包括:
(1)函数映射表:建立“外部函数名”到“函数封装器”之间的映射。
(2)函数封装器:对“外部函数”进行封装。用于存储“外部函数名”、“代理函数引用”、“内部函数引用列表”。
(3)函数代理器:实现一个或多个“代理函数”。“代理函数”将通过AS3自身提供的外部接口类ExternalInterface与对应的“外部函数名”进行绑定(这里称之为:直接绑定)。当外部模块调用一个外部函数时,与之直接绑定的“代理函数”将会被执行。“代理函数”执行时,会调用与之应对的“函数封装器”去分发该次调用。最终,所有存储在“内部函数引用列表”中的“内部函数”都会被执行。
(4)内部模块:现实与某“外部函数”对应的“内部函数”(或者事件响应函数)。即,功能提供者(或者事件响应者)。该“内部函数”将通过本方案与对应的“外部函数名”进行绑定(这里称之为:间接绑定)。
采用这种方式,可以在代理函数器内预制代理函数,每一代理函数对应多个内部函数。这样可以在使用时将代理函数引用指向所需的代理函数即可。同时,在调整时也可以直接调整代理函数器中的代理函数就可以实现同时修改代理函数引用。
为了方便阐述,本发明实施例中将技术方案的一个实现被封装成一个类,设该类名为ExternalIntefaceEx。其提供如下函数:
function addCallBack(functionName:String,closure:Function):void;//将代理函数与外部函数名绑定;
function removeCallBack(functionName:String,closure:Function):void;//取消外部函数名与内部函数的绑定;
function regCallBack(functionName:String,closure:Function):void;//注册一个代理函数;
function dispatchCallBack(functionName:String,...arg):void;//供代理函数调用;
function call(funName:String,...arg):Object;//用于调用现有的Flash的AS3语言中的call函数;
function dbgCallBack(funName:String,...arg):void;//模拟调用外部函数,用于调试。
1、ExternalIntefaceEx.addCallBack函数,通过调用该函数来建立外部函数名与内部函数之间的绑定;其实现流程如图8所示:
当需要建立一个外部函数名与内部函数的绑定时,先从函数映射表中查询该外部函数名对应的函数封装器是否存在;如果存在,则将该内部函数的引用添加到函数封装器里的内部函数引用列表中去;如果不存在,则创建一个函数封装器,且与该外部函数名在函数映射表中建立映射关系。同时,将该内部函数的引用添加到函数封装器里的内部函数引用列表中去。
2、ExternalIntefaceEx.removeCallBack函数,通过调用该函数来取消外部函数名与内部函数之间的绑定;其实现流程如图9所示:
当需要取消一个外部函数名与内部函数之间的绑定时,先从函数映射表中查询该外部函数名所对应的函数封装器是否存在;如果存在,则将该内部函数的引用从该函数封装器里的内部函数引用列表中移除;如果不存在,则不作任何操作。
3、ExternalIntefaceEx.regCallBack函数,通过调用该函数来注册一个代理函数;
由于代理函数比较多,因此可以设置一个函数代理器。函数代理器内存储有一系列代理函数。这些函数通过AS3自身的外部接口ExternalInterface与外部函数名进行直接绑定。
当需要注册一个代理函数时,先从函数映射表中查询注册该代理函数时的外部函数名所对应的函数封装器是否存在;如果存在,则将该代理函数引用设给函数封装器,并调用AS3自身外部接口ExternalInterface.addCallBack将该代理函数与外部函数名进行直接绑定。如果不存在,则创建一个函数封装器,且与该外部函数名在函数映射表中建立映射关系,并将该代理函数引用设给函数封装器,同时调用AS3自身的外部接口ExternalInterface.addCallBack将该代理函数与外部函数名进行直接绑定。
4、ExternalIntefaceEx.dispatchCallBack函数,该函数可以被代理函数所调用。代理函数可以简单的为只有一行代码,就是调用ExternalIntefaceEx.dispatchCallBack函数。
5、ExternalIntefaceEx.call函数,该函数用于调用现有的Flash的AS3语言中的call函数。
6、ExternalIntefaceEx.dbgCallBack函数,通过调用该函数来模拟一个外部模拟的调用:
当需要模拟一个外部模块的调用时,先通过函数映射表查询该外部函数名所对应的函数封装器;如果查询成功,则逐个调用存储于其内部函数引用列表中的内部函数。最终,相当于外部模块调用一个或者多个内部模块提供的功能(或者,相当于内部多个模块均响应到外部模块抛出的事件)。
其中,对于前述的第四和第九实施例中的对于对应关系的修改,可以通过上述第1、第2、第3的函数实现。当然,上述的第1、第2、第3函数是建立外部函数名与内部函数之间的绑定、取消外部函数名与内部函数之间的绑定、注册一个代理函数。但本发明实施例并不以此为限,既可以通过其他形式实现修改功能,还可以具有其他的函数,例如代理函数索引修改、内部函数索引修改等等,实现其他修改功能。上述亦应在本发明的保护范围之内。
上述的第五和第十实施例的模拟调用外部函数,就可以通过上述第6函数实现。
通过上述的本发明实施例可以看出,本发明实施例提出了一种AS语言接口函数及调用方法,可以通过代理函数实现一个外部函数调用多个内部函数,使得Flash的AS3语言可以获得更好的系统灵活性。同时,本发明实施例无需对现有的AS3语言的架构,并不需修改对外部函数进行修改,即可实现在调用一个外部函数的时候能够同时调用多个内部函数。
现有的AS3的内部模块是通过ExternalInterface接口为非AS3实现的外部模块提供功能,亦通过ExternalInterface接口调用外部模块的功能。其中本发明实施例的技术方案中,是用于AS3内部模块通过ExternalInterface接口为非AS3实现的外部模块提供功能。所以,在本方案中,设内部模块是功能提供者,外部模块是功能使用者。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种AS语言接口函数调用装置,其特征在于,包括:
函数存储模块,用于存储代理函数;
关系存储模块,用于存储包括外部函数、代理函数、至少两个内部函数之间的对应关系;
调用模块,用于根据所述外部函数、代理函数、至少两个内部函数之间的对应关系调用与代理函数相对应的至少两个内部函数;
所述装置还包括:
模拟调用模块,用于生成调用外部函数的指令,根据所述指令调用与所述外部函数对应的代理函数,并由所述代理函数调用对应的每一内部函数,所述模拟调用模块能模拟调用外部函数的过程,使所述AS语言接口函数调用装置具有自触发功能。
2.根据权利要求1所述的装置,其特征在于,所述关系存储模块包括:
函数映射单元,存储有所述外部函数与函数封装单元之间的对应关系;
函数封装单元,存储有所述外部函数、代理函数、至少两个内部函数之间的对应关系。
3.根据权利要求2所述的装置,其特征在于,所述函数封装单元包括:
外部函数名子单元,包括有外部函数名;
代理函数引用子单元,包括与所述外部函数名对应的代理函数的索引,所述代理函数存储于所述函数存储模块内;
内部函数引用列表子单元,包括与所述代理函数对应的至少两个内部函数的索引。
4.根据权利要求3所述的装置,其特征在于,所述装置还包括:
对应关系修改模块,用于根据控制指令,修改所述函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系,和/或所述函数封装单元的所述代理函数引用子单元的索引关系,和/或所述函数封装单元的所述内部函数引用列表子单元的索引关系。
5.一种AS语言接口函数调用方法,其特征在于,包括:
当调用外部函数时,调用AS语言接口函数中与所述外部函数对应的代理函数;所述AS语言接口函数中存储了代理函数;且每一代理函数对应至少两个内部函数;
通过所述代理函数调用相对应的至少两个内部函数;
所述方法还包括:
设置模拟调用模块用于生成调用外部函数的指令,根据所述指令调用与所述外部函数对应的代理函数,并由所述代理函数调用对应的每一内部函数,所述模拟调用模块能模拟调用外部函数的过程,使所述AS语言接口函数调用方法具有自触发功能。
6.根据权利要求5所述的方法,其特征在于,所述方法具体为:
当调用外部函数时,查询所述AS语言接口函数中的函数映射单元,获得与所述外部函数对应的函数封装单元;所述函数映射单元内存储有所述外部函数与所述函数封装单元之间的对应关系;
查询所述函数映射单元,获得与所述外部函数对应的代理函数,以及与该代理函数对应的至少两个内部函数;所述函数封装单元内存储有所述外部函数名、代理函数、至少两个内部函数之间的对应关系;
调用所述代理函数,通过所述代理函数调用与其相对应的至少两个内部函数。
7.根据权利要求6所述的方法,其特征在于,所述的调用所述代理函数,通过所述代理函数调用与其相对应的至少两个内部函数具体为:
查询代理函数引用子单元,获取与所述外部函数对应的代理函数的索引;
查询内部函数引用列表子单元,获取所述代理函数与至少两个内部函数的对应关系;
根据所述代理函数的索引,调用与所述外部函数对应的代理函数;
所述代理函数根据内部函数引用列表子单元中与内部函数的对应关系,调用对应的至少两个内部函数。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
根据控制指令,修改所述函数映射单元内的所述外部函数与所述函数封装单元之间的对应关系,和/或所述函数封装单元的所述代理函数引用子单元的索引关系,和/或所述函数封装单元的所述内部函数引用列表子单元的索引关系。
CN201010123103.9A 2010-02-25 2010-02-25 一种as语言接口函数及调用方法 Active CN102169432B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010123103.9A CN102169432B (zh) 2010-02-25 2010-02-25 一种as语言接口函数及调用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010123103.9A CN102169432B (zh) 2010-02-25 2010-02-25 一种as语言接口函数及调用方法

Publications (2)

Publication Number Publication Date
CN102169432A CN102169432A (zh) 2011-08-31
CN102169432B true CN102169432B (zh) 2014-09-03

Family

ID=44490599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010123103.9A Active CN102169432B (zh) 2010-02-25 2010-02-25 一种as语言接口函数及调用方法

Country Status (1)

Country Link
CN (1) CN102169432B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268254B (zh) * 2018-01-09 2022-03-22 武汉斗鱼网络科技有限公司 一种Flash文件功能库调用方法、装置、电子设备及介质
CN116700838B (zh) * 2023-06-09 2024-02-02 广州万彩信息技术有限公司 一种as语言接口函数、音视频处理方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731361A (zh) * 2005-08-26 2006-02-08 北京中星微电子有限公司 一种跨平台函数调用系统
CN1763717A (zh) * 2005-11-24 2006-04-26 北京中星微电子有限公司 一种利用脚本及其编译器调用宿主软件函数的系统与方法
CN101441566A (zh) * 2008-11-18 2009-05-27 腾讯科技(深圳)有限公司 一种嵌入式平台和在嵌入式平台上动态链接程序的方法
CN101458633A (zh) * 2007-12-13 2009-06-17 华为软件技术有限公司 通过脚本程序访问宿主程序的方法及其系统和装置
CN101630248A (zh) * 2009-08-06 2010-01-20 腾讯科技(深圳)有限公司 flash处理装置和处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731361A (zh) * 2005-08-26 2006-02-08 北京中星微电子有限公司 一种跨平台函数调用系统
CN1763717A (zh) * 2005-11-24 2006-04-26 北京中星微电子有限公司 一种利用脚本及其编译器调用宿主软件函数的系统与方法
CN101458633A (zh) * 2007-12-13 2009-06-17 华为软件技术有限公司 通过脚本程序访问宿主程序的方法及其系统和装置
CN101441566A (zh) * 2008-11-18 2009-05-27 腾讯科技(深圳)有限公司 一种嵌入式平台和在嵌入式平台上动态链接程序的方法
CN101630248A (zh) * 2009-08-06 2010-01-20 腾讯科技(深圳)有限公司 flash处理装置和处理方法

Also Published As

Publication number Publication date
CN102169432A (zh) 2011-08-31

Similar Documents

Publication Publication Date Title
De Santis et al. Zero-knowledge proofs of knowledge without interaction
CN104216912B (zh) 一种无侵入式的业务表单工作流化的实现方法与装置
CN101697139B (zh) 一种远程过程调用方法、装置和注册库
CN103049320A (zh) 在浏览器中启动外部应用程序的方法和装置
CN101645020A (zh) 虚拟操作系统创建方法
US10949220B2 (en) Object-oriented programming system and library
CN103988211B (zh) 用于增加计算机安全的方法和系统
CN104778075A (zh) Android系统中native层调用Java层API的方法和装置
CN102169432B (zh) 一种as语言接口函数及调用方法
WO2020215833A1 (zh) 离线缓存方法、装置、终端及可读存储介质
CN110851123A (zh) 基于SpringMVC的WebGIS电网可视化框架的构建方法、系统及装置
CN104731598A (zh) 一种基于Webkit内核提供网页浏览的方法及装置
CN104866335A (zh) 一种移动终端基于Egret Runtime运行游戏的方法及装置
CN103678099B (zh) 一种实现硬件平台与软件平台通讯的方法以及装置
CN103164409A (zh) 一种网络广告展现样式后验方法及系统
US7664997B2 (en) Failure handling and debugging with causalities
CN109522507B (zh) 一种网页组件统一管理的方法
CN116466915A (zh) 一种基于MVP架构的iOS开发框架构建方法和装置
CN110278480A (zh) 电视机频道预置方法、装置、计算机设备及可读存储介质
CN103107898A (zh) 用于同时发送或接收多个管理对象的方法、设备以及系统
CN103077016B (zh) 一种活动对象创建方法、装置及浏览器
CN113641577A (zh) 一种终端产品应用程序的调试方法、装置
CN104102496A (zh) 一种基于windows平台的银行自助系统跨浏览器插件的开发方法
US7925487B2 (en) Replaying distributed systems
Adamek et al. Erroneous architecture is a relative concept.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant