CN105739983B - 脚本程序编辑装置及其实现方法 - Google Patents
脚本程序编辑装置及其实现方法 Download PDFInfo
- Publication number
- CN105739983B CN105739983B CN201610066732.XA CN201610066732A CN105739983B CN 105739983 B CN105739983 B CN 105739983B CN 201610066732 A CN201610066732 A CN 201610066732A CN 105739983 B CN105739983 B CN 105739983B
- Authority
- CN
- China
- Prior art keywords
- user
- tree structure
- code
- node
- script
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000004044 response Effects 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 110
- 238000012545 processing Methods 0.000 claims description 23
- 238000012937 correction Methods 0.000 claims description 13
- 238000012986 modification Methods 0.000 claims description 9
- 230000004048 modification Effects 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 4
- 238000011161 development Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241000555745 Sciuridae Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- 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/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了脚本程序编辑装置,包括:面向用户的编辑装置和代码提供装置;代码提供装置包括代码模块,利用任一代码模块的脚本代码可实现一应用程序功能;当创建应用程序的脚本程序时,面向用户的编辑装置响应于用户的操作创建树形结构,该树形结构用于描述该应用程序欲实现的各功能以及各功能之间的控制逻辑;响应于用户的操作,根据树形结构向代码提供装置发出调用命令以调用树形结构中各结点对应的代码模块;代码提供装置中的任一代码模块,响应于调用命令,生成对应于该调用命令的脚本代码再将其脚本代码发送给面向用户的编辑装置;面向用户的编辑装置根据脚本代码以及树形结构创建脚本程序。本申请还公开了相应的方法,能提高程序开发效率。
Description
技术领域
本申请涉及信息技术(IT,Information Technology)领域,尤其涉及一种脚本程序编辑装置及其实现方法。
背景技术
在开发软件应用程序(比如:游戏程序、手机APP等)时,通常需要使用脚本语言来编写脚本程序。目前,业界也存在一些用于编写脚本程序的脚本编辑器,比如Lua、AngelScript、GameMonkey、Io、Pawn、Squirrel、Scheme、Python、Ruby等编辑器。
在使用这些脚本编辑器来制作脚本程序时,开发人员可以将所要实现的功能配置在诸如Excel等表格中,比如在表格中填写各接口函数的参数,再令脚本编辑器基于表格生成相应的脚本代码,或者,开发人员可以直接利用脚本编辑器来编写脚本代码。然而,采用现有的这两种方法开发软件应用程序存在如下问题:
1、对于控制逻辑比较复杂的应用程序(比如:游戏程序),配置表格的方式扩展性较差,多逻辑的处理能力弱,并不适用,这种方法在很多情况下配置复杂度较高,不易保证准确性,开发效率也较低。
2、直接编写脚本代码的方式,对开发人员的编程能力要求较高,开发人员需要熟悉脚本语言并且具有足够专业的编程经验才能够完成开发。
3、采用这两种方式开发的脚本程序扩展性较差,不易后续debug和维护,如果有修改和扩充功能的需求,开发人员的工作量比较大,难于保证准确性,开发效率较低,开发成本较高。
发明内容
有鉴于此,本发明实施例提供了一种脚本程序编辑装置,以提高脚本程序的开发效率、提高程序的扩展性。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种脚本程序编辑装置,包括:面向用户的编辑装置和代码提供装置;其中,所述代码提供装置包括至少一个代码模块,利用其中任一代码模块包括的脚本代码可实现一应用程序功能;当创建一应用程序的脚本程序时,所述面向用户的编辑装置,响应于用户的操作创建一树形结构,该树形结构用于描述该应用程序欲实现的各功能以及各功能之间的控制逻辑,其中,各功能被分别描述为该树形结构中的各结点,各功能之间的控制逻辑被描述为该树形结构中对应结点之间的链接关系;响应于用户的操作,根据所述树形结构向所述代码提供装置发出调用命令以调用所述树形结构中各结点对应的代码模块;所述代码提供装置中的任一代码模块,响应于来自所述面向用户的编辑装置的调用命令,利用本代码模块包括的脚本代码生成对应于该调用命令的脚本代码,再将所生成的脚本代码发送给所述面向用户的编辑装置;所述面向用户的编辑装置根据来自所述代码提供装置的脚本代码以及所述树形结构中各结点之间的链接关系创建所述脚本程序。
本发明实施例还提供了一种脚本程序编辑方法,该方法应用于包括至少一个代码模块的装置,其中,利用其中任一代码模块包括的脚本代码可实现一应用程序功能;该方法包括:当创建一应用程序的脚本程序时,执行如下处理:响应于用户的操作创建一树形结构,该树形结构用于描述该应用程序欲实现的各功能以及各功能之间的控制逻辑,其中,各功能被分别描述为该树形结构中的各结点,各功能之间的控制逻辑被描述为该树形结构中对应结点之间的链接关系;响应于用户的操作,根据所述树形结构向所述树形结构中各结点对应的代码模块发出调用命令;其中,任一代码模块,响应于任一调用命令,利用本代码模块包括的脚本代码生成对应于该调用命令的脚本代码并输出;根据来自各代码模块的脚本代码以及所述树形结构中各结点之间的链接关系创建所述脚本程序。
本发明实施例所提供的上述装置及方法能显著提高开发效率以及准确性,并且也使后期对脚本程序的扩展和维护变得简单易行。
附图说明
为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中,
图1为本申请所涉及的实施环境示意图;
图2为依据本申请一实例的方法流程示意图;
图3为本申请一实例中创建脚本程序时一可视化界面图;
图4为本申请一实例中一树形结构示意图;
图5为本申请一实例中一树形结构示意图;
图6A~6F为本申请实例中编辑装置所提供的各种功能的示意图;及
图7为本申请一实例中的装置及设备组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本申请所涉及的实施环境示意图。参见图1,在进行应用程序开发及调试/运行时,主要涉及两个部分:脚本程序编辑装置100和应用程序调试/运行装置200。其中,脚本程序编辑装置100用于生成脚本程序并提供给应用程序调试/运行装置200,该脚本程序包含符合预定脚本语言规范的脚本代码;应用程序调试/运行装置200用于通过运行脚本程序而调用应用程序代码进而实现应用程序功能。
其中,脚本程序编辑装置100和应用程序调试/运行装置200可以位于同一计算设备,也可以位于不同的计算设备,它们可以是各种类型的计算设备,包括但不限于台式计算机、智能手机、掌上电脑、平板电脑、可穿戴智能设备等。
基于上述实施环境,以下结合方法流程图对本申请提供的脚本程序编辑方法加以详述。该方法应用于上述脚本程序编辑装置100,其中包括至少一个代码模块,利用其中任一代码模块包括的脚本代码可实现一应用程序功能。
在一实例中,如图2所示,该方法包括如下步骤:
当创建一应用程序的脚本程序时,执行如下处理:
步骤201:响应于用户的操作创建一树形结构。
其中,该树形结构用于描述该应用程序欲实现的各功能以及各功能之间的控制逻辑,其中,各功能被分别描述为该树形结构中的各结点,各功能之间的控制逻辑被描述为该树形结构中对应结点之间的链接关系。
步骤202:响应于用户的操作,根据该树形结构向该树形结构中各结点对应的代码模块发出调用命令。
其中,任一代码模块,响应于任一调用命令,可利用本代码模块包括的脚本代码生成对应于该调用命令的脚本代码并输出。
步骤203:根据来自各代码模块的脚本代码以及该树形结构中各结点之间的链接关系创建脚本程序。
在一实例中,该方法还可修改一应用程序的脚本程序,包括如下步骤:
步骤204:响应于用户的操作,提取该脚本程序对应的树形结构并对其进行修改。其中,修改可包括以下中的至少一个:删除其中至少一个结点、修改其中至少一个结点的参数、修改其中至少一个结点之间的链接关系、增加至少一个结点及其链接关系。
步骤205:响应于用户的操作,根据修改后的树形结构向该树形结构中各结点对应的代码模块发出调用命令。
步骤206:根据来自各代码模块的脚本代码以及修改后的树形结构中各结点之间的链接关系更新脚本程序。
在另一实例中,用户可通过该脚本程序编辑装置手动修改一应用程序的脚本程序,此时,该编辑装置可响应于用户操作而提取指定的脚本程序,并展示该脚本程序以供用户对其中的脚本代码进行修改,并根据用户对于该脚本程序的修改内容更新该脚本程序。
上述实例中,任一代码模块包括的脚本代码可以包括接口函数。这样,在创建树形结构时,可响应于用户的操作配置各结点对应的接口函数的参数值,并在向任一代码模块发出的调用命令中携带对应结点的参数值。其中,任一代码模块,响应于接收到的调用命令,使用该调用命令中携带的参数值对本代码模块包括的接口函数进行赋值以生成对应于该调用命令的接口函数并输出该赋予参数值的接口函数。这样,所创建的脚本程序可包含来自各代码模块的各接口函数以及它们之间的链接关系,当应用程序调试/运行装置200运行该脚本程序时,各接口函数可依据该链接关系而被调用,当任一接口函数被调用时,对应的应用程序代码被执行以实现对应的应用程序功能。
上述实例中,用户可以通过编辑树形结构来编辑脚本程序(包括创建、修改脚本程序),由于树形结构中的每个结点对应一个应用程序功能,这样用户通过在树形结构中填加各个结点即可基于实现需求在脚本程序中填加对应于应用程序功能的脚本代码(比如:接口函数等),同时,也不必编写复杂的控制逻辑,通过设定树形结构中各个结点的链接关系即可基于实现需求在脚本程序中填加各种脚本代码之间的控制逻辑(比如:调用关系、从属关系等)。可以,采用上述实例来编辑脚本程序时,对于用户的编程专业能力要求不高,用户从应用程序的实现需求考虑就很容易上手进行脚本程序开发,而不必考虑脚本语言语法规则、复杂的编程逻辑等,显著提高了开发效率以及准确性,并且也使后期对脚本程序的扩展和维护变得简单易行。
在一实例中,该方法还可提供可视化用户界面,使得用户可以更直观的确定树形结构中各结点的具体内容以及链接关系,进而便于用户完成脚本程序的编辑工作,进一步提高开发效率和准确性。
在此实例中,该方法进一步包括:展示可视化用户界面;响应于用户对于所述用户界面的第一操作,创建所述树形结构中的各结点及其链接关系,并在所述用户界面中展示所述树形结构;响应于用户对于所述用户界面的第二操作,根据所述树形结构向所述对应的各代码模块发出所述调用命令。
具体的,用户可以通过点击用户界面中特定控件来发出第一操作,如点击图3中的“文件”按钮,可出现下拉框,然后点击其中的“创建项目”按钮就可以开始创建对应于脚本程序的树形结构。如图3所示,当创建树形结构时,首先默认生成一个包含三个结点的树(如方框301所示),其中,项目(Project)为根结点,该Project结点对应一个脚本程序,基础(Base)结点和阶段(Stage)结点(图3所示是默认生成的编号为“01”的Stage结点)为两个叶子结点,Base结点对应一个脚本程序中的全局函数,一个Stage结点对应应用程序的一个功能模块。用户通过操作用户界面发出一系列第一操作,可在Base结点和Stage结点下添加各种子结点,也可以在Project结点下增加新的Stage结点及其子结点,Stage结点数量不限,跟应用程序的功能模块划分以及实现需求有关。其中,以Base结点为根结点的子树用于配置全局模块(比如各接口函数及各子功能模块之间的控制逻辑)及全局的初始化操作,以某一Stage结点为根结点的子树用于配置对应功能模块的所涉及的局部参数、局部的初始化操作、各子功能模块(比如各接口函数)及各子功能模块之间的控制逻辑。
在一个实例中,用户创建的是游戏应用的脚本程序(也可称为游戏脚本)当用户创建一个游戏脚本时,一个Stage结点可对应游戏剧情流程中的某一阶段(类似戏剧的某一幕),以Stage结点为根结点的子树用于配置游戏剧情流程中对应阶段涉及的局部参数、局部的初始化操作以及可能发生的各种行为(即各种功能模块及它们之间的控制逻辑),包括但不限于:此阶段涉及的事件,包括:角色行为及环境变化,如角色走到某个区域、角色击败boss、非人控制玩家角色(NPC)执行完预设的动作等,事件的监听及处理逻辑(如召唤出新的NPC、给角色添加物品、显示特效、播放动画等)。
图4为一实例中以Base结点为根结点的子树(可称为Base树)示意图。如图4所示,Base树的根结点(Base结点)下默认包含“客户端初始化”,“客户端全部数据推送”,“事件”三个子节点。其中,“客户端初始化”结点可调用各类客户端数据的初始化接口,进而可根据各叶子结点对应的接口和配置生成用于初始化的客户端脚本代码,所实现的初始化功能包括:初始化主用户界面(UI)显示内容、初始化进度条、初始化事件目标追踪用户界面等;“客户端全部数据推送”结点对应的功能模块则用于处理组队中后加入的玩家与之前玩家数据同步的一系列问题;以“事件”结点为根结点的子树用于定义全局的事件监听和响应,例如判定玩家离开事件时做数据清理操作。
图5为一实例中以Stage结点为根结点的子树(可称为Stage树)示意图。如图5所示,Stage树的根结点(Stage结点)下默认包含“开始”、“事件”、“函数”三个子结点。其中,以“开始”结点为根结点的子树用于初始化对应的阶段开始时的服务器数据,例如:增加一个怪物、设置一个随机种子、定时等,该“开始”结点下的各子结点对应的内容在逻辑进入后立即执行;“事件”结点与Base树中的“事件”结点作用类似,不同的其是只在当前阶段中生效,逻辑离开该阶段后即无效,可通过在该结点下添加各种子结点来定义各类需要监听的事件,以及监听到指定事件后的逻辑判定及操作,例如:当某怪物死亡后,即判定玩家是否满足等级条件给予奖励;以“函数”结点为根结点的子树则用于定义可被多次调用的函数体,可在以“开始”结点为根结点的子树和以“事件”结点为根结点的子树中被多次调用。
由以上实例可知,上述脚本程序编辑方法通过提供可视化用户界面,可令用户通过创建可视化的树形结构来创建一应用程序的脚本程序,整个创建脚本程序的过程中,用户不必面向代码,而是通过用户界面操作来创建一个非常接近自然语言的图形化逻辑结构,这样,没有专业编程基础的用户(比如游戏策划人员)也能够利用此编辑装置完成具有复杂控制逻辑的脚本程序的开发,具有良好的上手性和极高的程序制作效率,同时还能保证准确性。
为进一步提高可操作性和操作效率,该方法还可进一步提供以下功能中的至少一项:
1、在创建树形结构时,在用户界面中展示各结点对应的应用程序功能的说明和/或参数配置说明。例如:图6A所示的某结点对应的应用程序功能的说明(如图6A中“描述”项对应的说明,已用虚线框标出),图6B所示的某结点的参数配置说明(如图6A中“描述”项对应的说明,已用虚线框标出)。这种说明可以由编辑装置主动展示在用户界面中也可响应于用户对于用户界面中某控件的操作而展示在用户界面中,依据这种说明,用户可以跟方便、准确的在树形结构中配置结点及参数。
2、响应于用户对于用户界面的第三操作,在当前所展示的树形结构中查找该第三操作指定的关键词,并展示查找结果。如图6C所示,响应于用户对用户界面中某控件的操作,可弹出查找窗口,用户可以在其中输入关键词“3201”,进而可以在树形结构中查找带有该关键词的结点。
3、响应于用户对于用户界面的第四操作,在当前所展示的树形结构中选择该第四操作指定的结点(比如:用户点击树形结构中某结点),并将所选择的结点高亮展示。
4、响应于用户对于用户界面的第五操作,在当前所展示的树形结构中查找该第五操作指定的关键词(如前面第2点所述的查找方式),并将查找到的结点高亮展示。
上述第3和4点功能,可将所选择的和/或查找到的结点高亮展示。比如:图6D示出的结点中,当在图左边示出的界面下进行选择结点“NPC说话”的操作或者查找结点“NPC说话的操作时,参加图右边示出的界面,“NPC说话”结点被高亮展示了。
5、响应于用户对于用户界面的第六操作,在当前所展示的树形结构中选择该第六操作指定的结点,针对所选择的结点展示控件以供用户输入该结点的注释并保存该注释;响应于用户对于用户界面的第七操作,展示已保存的该第七操作指定的结点的注释。例如,可响应于用户对树形结构中的某结点的点击操作而选择该结点,并展示一文本框来供用户输入对于该结点的注释并保存,该文本框随后可隐藏,之后,响应于用户的操作,可在该结点旁边展示该文本框进而展示出对该结点的注释。如图6E中,文本框601对于结点611的注释,文本框602对于结点612的注释。
6、在树形结构中创建一用于提供注释的结点时,针对该结点展示控件以供用户输入对于其它结点的注释并保存该注释;在展示该树形结构时,其中用于提供注释的结点中展示有已保存的对于其它结点的注释。如图6E中,结点611、612、6112、6122均为用于提供注释的结点,它们分别提供了对于各自子结点的注释。
上述第5和6点所述的提供注释的方式,可以结合起来应用,也可以择一应用。
7、对当前创建的或者正在编辑的树形结构进行纠错处理,并将处理结果展示在用户界面中。
这里,在生成脚本程序之前,在创建或者正在编辑某树形结构时,该编辑装置可进行实时的纠错处理,可提取用户界面当前展示的树形结构中结点的相关信息(包括:某个结点的参数配置和逻辑关系、多个结点之间的链接关系和参数配置),对结点对应的脚本代码进行纠错处理(包括:语法检查、函数参数填写规则的检查、结点参数填写规则的检查、结点链接关系规则检查等等),同时,可实时的将处理结果展示在用户界面上,比如:用户刚填写完某结点的参数,该编辑装置可实时检查参数填写是否符合规则,如果有错误则可直接在用户界面中弹出指示窗口来提示存在何种错误(如图6F所示),进一步的可在用户界面中提示哪些结点存在问题,比如:将存在错误的结点高亮显示。
基于上述方法实例,本申请还提供了一种脚本程序编辑装置,如图1所示,该脚本程序编辑装置100至少包括:面向用户的编辑装置110和代码提供装置120。其中,代码提供装置120包括至少一个代码模块104(如:代码模块1~代码模块n),利用其中任一代码模块104包括的脚本代码可实现一应用程序功能。
当创建一应用程序的脚本程序时,该脚本程序编辑装置100涉及如下处理:
面向用户的编辑装置110,响应于用户的操作创建一树形结构,该树形结构用于描述该应用程序欲实现的各功能以及各功能之间的控制逻辑,其中,各功能被分别描述为该树形结构中的各结点,各功能之间的控制逻辑被描述为该树形结构中对应结点之间的链接关系;响应于用户的操作,根据该树形结构向代码提供装置120发出调用命令以调用该树形结构中各结点对应的代码模块104。
代码提供装置120中的任一代码模块104,响应于来自面向用户的编辑装置110的调用命令,利用本代码模块104包括的脚本代码生成对应于该调用命令的脚本代码,再将所生成的脚本代码发送给面向用户的编辑装置110。
面向用户的编辑装置110根据来自代码提供装置120的脚本代码以及树形结构中各结点之间的链接关系创建脚本程序。
当修改一应用程序的脚本程序时,该脚本程序编辑装置100涉及如下处理:
面向用户的编辑装置110,响应于用户的操作,提取该脚本程序对应的树形结构并对其进行修改,修改可包括以下中的至少一个:删除其中至少一个结点、修改其中至少一个结点的参数、修改其中至少一个结点之间的链接关系、增加至少一个结点及其链接关系;响应于用户的操作,根据修改后的树形结构向代码提供装置120发出调用命令以调用树形结构中各结点对应的代码模块104;根据来自代码提供装置120的脚本代码以及修改后的树形结构中各结点之间的链接关系更新该脚本程序;和/或,面向用户的编辑装置110,响应于用户的操作,展示该脚本程序以供用户对其中的脚本代码进行修改,并根据用户的修改更新该脚本程序。
当对应用程序进行功能扩展时,比如新增一应用程序功能时,应用程序代码提供模块202中会增加相应的代码模块以提供新增的应用程序功能的应用程序代码,同时,在脚本程序编辑装置100中会增加对应脚本代码的配置,包括:在代码提供装置120中增加包含对应脚本代码的代码模块,在面向用户的编辑装置110中增加可调用该代码模块的结点参数配置,以使用户可以通过在树形结构中添加此新结点来获得对应于新增应用程序功能的脚本代码可见,采用此种脚本程序编辑装置,用户在进行脚本程序制作时不必考虑代码因素,只需要从应用程序功能的角度去考虑问题,显著提高了程序开发效率,也使得编辑出的脚本程序具有很强的可扩展性。
其中,当运行或调试脚本程序时,脚本程序编辑装置100可输出脚本程序至应用程序调试/运行装置200。该应用程序调试/运行装置200可包括:代码调试/运行模块201和应用程序代码提供模块202。代码调试/运行模块201接收来自脚本程序编辑装置100的脚本程序,并通过对该脚本程序进行解释、执行而调用应用程序代码提供模块202中对应的代码模块,其中,应用程序代码提供模块202中预先配置多个代码模块,每一代码模块中保存其对应的一应用程序功能的应用程序代码。之后,应用程序代码提供模块202随着其中代码模块的被调用而按一定的顺序返回应用程序代码至代码调试/运行模块201,代码调试/运行模块201通过执行应用程序代码而实现相应的应用程序功能。
在一实例中,任一代码模块104包括的脚本代码包括接口函数,其为未赋予参数值的空的接口函数。面向用户的编辑装置110,在创建树形结构时,响应于用户的操作配置各结点对应的接口函数的参数值,其向代码提供装置120发出的调用命令中携带树形结构中各结点对应的参数值。代码提供装置120中的任一代码模块104,响应于来自面向用户的编辑装置110的调用命令,使用该调用命令中携带的参数值对本代码模块104包括的接口函数进行赋值以生成对应于该调用命令的接口函数,再将所生成的接口函数发送给面向用户的编辑装置110。面向用户的编辑装置110创建的脚本程序包含来自代码提供装置120的各接口函数以及它们之间的链接关系。其中,当脚本程序运行时,各接口函数依据所述链接关系而被调用,当任一接口函数被调用时,对应的应用程序代码被执行以实现对应的应用程序功能。比如:代码调试/运行模块201在运行脚本程序时,按其中脚本指定的逻辑依次调用其中的接口函数,当一接口函数被调用时,通过该赋有参数值的接口函数可以调用应用程序代码模块202中与该接口函数对应的代码模块,并获得对应一应用程序功能的一段应用程序代码,通过执行该段应用程序代码可以实现该应用程序功能。
在一实例中,面向用户的编辑装置110包括:用户界面模块101和代码生成模块102。用户界面模块101,展示可视化用户界面,响应于用户对于用户界面的第一操作而创建树形结构中的各结点及其链接关系,并在用户界面中展示该树形结构,响应于用户对于用户界面的第二操作而向代码生成模块102发出指令。代码生成模块102,响应于来自用户界面模块101的指令,根据用户界面模块101创建的树形结构向代码提供装置120发出调用命令,并根据来自代码提供装置120的脚本代码以及树形结构中各结点之间的链接关系创建脚本程序。
为进一步提高可操作性和操作效率,该脚本程序编辑装置100还可进一步提供以下可视化功能中的至少一项:
1、用户界面模块101在创建树形结构时,进一步展示各结点对应的应用程序功能的说明和/或参数配置说明。
2、用户界面模块101,进一步响应于用户对于用户界面的第三操作,在当前所展示的树形结构中查找该第三操作指定的关键词,并展示查找结果。
3、用户界面模块101,进一步响应于用户对于用户界面的第四操作,在当前所展示的树形结构中选择该第四操作指定的结点,并将所选择的结点高亮展示。
4、用户界面模块101,进一步响应于用户对于用户界面的第五操作,在当前所展示的树形结构中查找该第五操作指定的关键词,并将查找到的结点高亮展示。
5、用户界面模块101,进一步响应于用户对于用户界面的第六操作,在当前所展示的树形结构中选择该第六操作指定的结点,针对所选择的结点展示控件以供用户输入该结点的注释并保存该注释;响应于用户对于用户界面的第七操作,展示已保存的该第七操作指定的结点的注释。
6、用户界面模块101创建的结点中包括用于提供注释的结点,在创建一用于提供注释的结点时,针对该结点展示控件以供用户输入对于其它结点的注释并保存该注释;在展示该树形结构时,在其中用于提供注释的结点中展示有已保存的对于其它结点的注释。
7、面向用户的编辑装置110进一步包括纠错模块103。纠错模块103,对用户界面模块101创建的或者正在编辑的树形结构进行纠错处理,并将处理结果反馈给用户界面模块101。用户界面模块101,进一步在用户界面中展示来自纠错模块103的处理结果。
上述各种可视化功能的具体实例在前文已有描述,这里不在赘述。
另外,在本申请各个实例中的各装置及各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
在一实施例中,上述的脚本程序编辑100装置可运行在任一用于编辑脚本程序的计算设备中,并加载在该计算设备的存储器中。如图7所示,该计算设备除了包括上述脚本程序编辑装置100中的各个装置和模块,还可包括:存储器701、处理器703、总线702、端口704。处理器703和存储器701通过总线702互联。处理器703可通过端口704接收和发送数据以实现网络通信和/或本地通信。上述各装置110~120和各模块101~104可以是存储器701中存储的机器可执行指令模块。处理器703通过执行存储器701中各装置110~120和各模块101~104中包含的机器可执行指令,进而能够实现上述各装置110~120和各模块101~104的功能。
上述计算设备中,各装置110~120和各模块101~104实现各自功能的具体方法在前述方法实例中均有描述,这里不再赘述。
另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此,本申请还提供了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述方法的任何一种实例。
以上所述仅为本申请的实例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (14)
1.一种脚本程序编辑装置,其特征在于,包括:面向用户的编辑装置和代码提供装置;其中,所述代码提供装置包括至少一个代码模块,利用其中任一代码模块包括的脚本代码可实现一应用程序功能;当创建一应用程序的脚本程序时,
所述面向用户的编辑装置,响应于用户的操作创建一树形结构,该树形结构用于描述该应用程序欲实现的各功能以及各功能之间的控制逻辑,其中,各功能被分别描述为该树形结构中的各结点,各功能之间的控制逻辑被描述为该树形结构中对应结点之间的链接关系;响应于用户的操作,根据所述树形结构向所述代码提供装置发出调用命令以调用所述树形结构中各结点对应的代码模块;
所述代码提供装置中的任一代码模块,响应于来自所述面向用户的编辑装置的调用命令,利用本代码模块包括的脚本代码生成对应于该调用命令的脚本代码,再将所生成的脚本代码发送给所述面向用户的编辑装置;
所述面向用户的编辑装置根据来自所述代码提供装置的脚本代码以及所述树形结构中各结点之间的链接关系创建所述脚本程序。
2.根据权利要求1所述的脚本程序编辑装置,其特征在于,当修改一应用程序的脚本程序时,
所述面向用户的编辑装置,响应于用户的操作,提取该脚本程序对应的树形结构并对其进行修改,所述修改包括以下中的至少一个:删除其中至少一个结点、修改其中至少一个结点的参数、修改其中至少一个结点之间的链接关系、增加至少一个结点及其链接关系;响应于用户的操作,根据修改后的所述树形结构向所述代码提供装置发出调用命令以调用所述树形结构中各结点对应的代码模块;根据来自所述代码提供装置的脚本代码以及修改后的所述树形结构中各结点之间的链接关系更新所述脚本程序;和/或
所述面向用户的编辑装置,响应于用户的操作,展示该脚本程序以供用户对其中的脚本代码进行修改,并根据用户的修改更新该脚本程序。
3.根据权利要求1所述的脚本程序编辑装置,其中,任一代码模块包括的所述脚本代码包括接口函数;
所述面向用户的编辑装置,在创建所述树形结构时,响应于用户的操作配置各结点对应的接口函数的参数值,向所述代码提供装置发出的所述调用命令中携带所述树形结构中各结点对应的所述参数值;
所述代码提供装置中的任一代码模块,响应于来自所述面向用户的编辑装置的调用命令,使用该调用命令中携带的参数值对本代码模块包括的接口函数进行赋值以生成对应于该调用命令的接口函数,再将所生成的接口函数发送给所述面向用户的编辑装置;
所述面向用户的编辑装置创建的所述脚本程序包含来自所述代码提供装置的各接口函数以及它们所对应的结点之间的链接关系,其中,当所述脚本程序运行时,各接口函数依据所述链接关系而被调用,当任一接口函数被调用时,对应的应用程序代码被执行以实现对应的应用程序功能。
4.根据权利要求1所述的脚本程序编辑装置,其中,所述面向用户的编辑装置包括:用户界面模块和代码生成模块;其中,
所述用户界面模块,展示可视化用户界面,响应于用户对于所述用户界面的第一操作而创建所述树形结构中的各结点及其链接关系,并在所述用户界面中展示所述树形结构,响应于用户对于所述用户界面的第二操作而向所述代码生成模块发出指令;
所述代码生成模块,响应于来自所述用户界面模块的所述指令,根据所述用户界面模块创建的所述树形结构向所述代码提供装置发出所述调用命令,并根据来自所述代码提供装置的脚本代码以及所述树形结构中各结点之间的链接关系创建所述脚本程序。
5.根据权利要求4所述的脚本程序编辑装置,其中,所述用户界面模块在创建所述树形结构时,进一步展示各结点对应的应用程序功能的说明和/或参数配置说明。
6.根据权利要求4所述的脚本程序编辑装置,所述用户界面模块,进一步响应于用户对于所述用户界面的第三操作,在当前所展示的所述树形结构中查找所述第三操作指定的关键词,并展示查找结果。
7.根据权利要求4所述的脚本程序编辑装置,其中,所述用户界面模块,进一步响应于用户对于所述用户界面的第三操作,在当前所展示的所述树形结构中选择所述第三操作指定的结点,并将所选择的结点高亮展示;和/或
所述用户界面模块,进一步响应于用户对于所述用户界面的第三操作,在当前所展示的所述树形结构中查找所述第三操作指定的关键词,并将查找到的结点高亮展示。
8.根据权利要求4所述的脚本程序编辑装置,其中,所述用户界面模块,进一步响应于用户对于所述用户界面的第三操作,在当前所展示的所述树形结构中选择所述第三操作指定的结点,针对所选择的结点展示控件以供用户输入该结点的注释并保存该注释;响应于用户对于所述用户界面的第四操作,展示已保存的所述第四操作指定的结点的注释;和/或
所述用户界面模块创建的结点中包括用于提供注释的结点,在创建一所述用于提供注释的结点时,针对该结点展示控件以供用户输入对于其它结点的注释并保存该注释;在展示所述树形结构时,其中所述用于提供注释的结点中展示有已保存的对于其它结点的注释。
9.根据权利要求4所述的脚本程序编辑装置,其中,所述面向用户的编辑装置进一步包括纠错模块;
所述用户界面模块,进一步响应于用户对于所述用户界面的第三操作而向所述纠错模块发出指令;
所述纠错模块,对所述用户界面模块创建的或者正在编辑的树形结构进行纠错处理,并将处理结果反馈给所述用户界面模块;
所述用户界面模块,进一步在所述用户界面中展示来自所述纠错模块的所述处理结果。
10.一种脚本程序编辑方法,其特征在于,该方法应用于包括至少一个代码模块的装置,其中,利用其中任一代码模块包括的脚本代码可实现一应用程序功能;该方法包括:
当创建一应用程序的脚本程序时,执行如下处理:
响应于用户的操作创建一树形结构,该树形结构用于描述该应用程序欲实现的各功能以及各功能之间的控制逻辑,其中,各功能被分别描述为该树形结构中的各结点,各功能之间的控制逻辑被描述为该树形结构中对应结点之间的链接关系;
响应于用户的操作,根据所述树形结构向所述树形结构中各结点对应的代码模块发出调用命令;
其中,任一代码模块,响应于任一调用命令,利用本代码模块包括的脚本代码生成对应于该调用命令的脚本代码并输出;
根据来自各代码模块的脚本代码以及所述树形结构中各结点之间的链接关系创建所述脚本程序。
11.根据权利要求10所述的方法,其特征在于,进一步包括:
当修改一应用程序的脚本程序时,执行如下处理:
响应于用户的操作,提取该脚本程序对应的树形结构并对其进行修改,所述修改包括以下中的至少一个:删除其中至少一个结点、修改其中至少一个结点的参数、修改其中至少一个结点之间的链接关系、增加至少一个结点及其链接关系;
响应于用户的操作,根据修改后的所述树形结构向该树形结构中各结点对应的代码模块发出调用命令;及
根据来自各代码模块的脚本代码以及修改后的所述树形结构中各结点之间的链接关系更新所述脚本程序;
和/或
响应于用户的操作,展示该脚本程序以供用户对其中的脚本代码进行修改,并根据用户的修改更新该脚本程序。
12.根据权利要求10所述的方法,其中,任一代码模块包括的所述脚本代码包括接口函数;
在创建所述树形结构时,响应于用户的操作配置各结点对应的接口函数的参数值,向任一代码模块发出的所述调用命令中携带对应结点的所述参数值;
其中,任一代码模块,响应于所述调用命令,使用该调用命令中携带的参数值对本代码模块包括的接口函数进行赋值以生成对应于该调用命令的接口函数并输出;
其中,所创建的所述脚本程序包含来自各代码模块的各接口函数以及它们所对应的结点之间的链接关系,其中,当所述脚本程序运行时,各接口函数依据所述链接关系而被调用,当任一接口函数被调用时,对应的应用程序代码被执行以实现对应的应用程序功能。
13.根据权利要求10所述的方法,进一步包括:
展示可视化用户界面;
响应于用户对于所述用户界面的第一操作,创建所述树形结构中的各结点及其链接关系,并在所述用户界面中展示所述树形结构;
响应于用户对于所述用户界面的第二操作,根据所述树形结构向所述对应的各代码模块发出所述调用命令。
14.根据权利要求13所述的方法,进一步包括以下步骤中的至少一项:
在创建所述树形结构时,在所述用户界面中展示各结点对应的应用程序功能的说明和/或参数配置说明;
响应于用户对于所述用户界面的第三操作,在当前所展示的所述树形结构中查找所述第三操作指定的关键词,并展示查找结果;
响应于用户对于所述用户界面的第四操作,在当前所展示的所述树形结构中选择所述第四操作指定的结点,并将所选择的结点高亮展示;
响应于用户对于所述用户界面的第五操作,在当前所展示的所述树形结构中查找所述第五操作指定的关键词,并将查找到的结点高亮展示;
响应于用户对于所述用户界面的第六操作,在当前所展示的所述树形结构中选择所述第六操作指定的结点,针对所选择的结点展示控件以供用户输入该结点的注释并保存该注释;响应于用户对于所述用户界面的第七操作,展示已保存的所述第七操作指定的结点的注释;
在所述树形结构中创建一用于提供注释的结点时,针对该结点展示控件以供用户输入对于其它结点的注释并保存该注释;在展示所述树形结构时,其中所述用于提供注释的结点中展示有已保存的对于其它结点的注释;及
对当前创建的或者正在编辑的树形结构进行纠错处理,并将处理结果展示在所述用户界面中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610066732.XA CN105739983B (zh) | 2016-01-29 | 2016-01-29 | 脚本程序编辑装置及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610066732.XA CN105739983B (zh) | 2016-01-29 | 2016-01-29 | 脚本程序编辑装置及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105739983A CN105739983A (zh) | 2016-07-06 |
CN105739983B true CN105739983B (zh) | 2019-03-15 |
Family
ID=56248061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610066732.XA Active CN105739983B (zh) | 2016-01-29 | 2016-01-29 | 脚本程序编辑装置及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105739983B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250100B (zh) * | 2016-08-15 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 系统逻辑控制方法及装置 |
CN107872481A (zh) * | 2016-09-26 | 2018-04-03 | 平安科技(深圳)有限公司 | 代理自动配置脚本的处理方法及代理自动配置脚本服务器 |
CN107957909B (zh) * | 2016-10-17 | 2022-01-07 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、终端设备及服务器 |
CN106647642A (zh) * | 2016-12-08 | 2017-05-10 | 上海维宏电子科技股份有限公司 | 数控系统中通过扩展m子程序调用自定义子程序的方法 |
CN108287717B (zh) * | 2017-03-13 | 2021-03-09 | 平安科技(深圳)有限公司 | 一种jar包生成方法及终端 |
CN106873465B (zh) * | 2017-03-23 | 2020-01-14 | 广东工业大学 | 一种船舶报警控制系统 |
CN107357567B (zh) * | 2017-06-07 | 2020-10-16 | 珠海金山网络游戏科技有限公司 | 一种可视化脚本编辑器的设计系统和方法 |
CN108021363B (zh) * | 2017-12-06 | 2021-06-15 | 广州多益网络股份有限公司 | 可视化游戏逻辑编辑方法及系统 |
CN108170953B (zh) * | 2017-12-27 | 2021-07-13 | 中国科学院微电子研究所 | 一种电路图迁移方法和装置 |
CN110286894B (zh) * | 2019-05-09 | 2023-07-04 | 华自科技股份有限公司 | 脚本生成方法、装置、计算机设备和存储介质 |
CN110647328A (zh) * | 2019-08-21 | 2020-01-03 | 珠海国津软件科技有限公司 | 一种it服务脚本系统 |
CN110554865B (zh) * | 2019-09-10 | 2021-05-18 | 联想(北京)有限公司 | 可视化编程的方法、装置、计算设备以及介质 |
KR102385381B1 (ko) * | 2019-12-11 | 2022-04-11 | 스노우 주식회사 | 카메라 이펙트를 위한 스크립트 생성 방법 및 시스템 |
CN112286517A (zh) * | 2020-11-30 | 2021-01-29 | 埃泰克汽车电子(芜湖)有限公司 | 基于AutoSAR的汽车电子MCAL配置系统 |
CN117111917B (zh) * | 2023-10-23 | 2024-02-27 | 福建自贸试验区厦门片区Manteia数据科技有限公司 | 医疗辅助系统的交互方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159185B1 (en) * | 2000-09-14 | 2007-01-02 | Microsoft Corporation | Function objects |
CN101601012A (zh) * | 2006-12-01 | 2009-12-09 | 莫雷克斯公司 | 具有场景支持的面向生成器图形的编程框架 |
CN102246150A (zh) * | 2008-12-16 | 2011-11-16 | 微软公司 | 转换用户脚本代码来进行调试 |
CN103677772A (zh) * | 2012-09-07 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 脚本编写方法及相应的脚本编写系统 |
CN104268072A (zh) * | 2014-09-03 | 2015-01-07 | 武汉烽火网络有限责任公司 | 图形化脚本编辑器及快速开发通信设备测试脚本的方法 |
CN104699519A (zh) * | 2015-04-03 | 2015-06-10 | 四川效率源信息安全技术有限责任公司 | 基于GDI+实现的结合C#类库的JavaScript脚本编辑器 |
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2001294704A1 (en) * | 2000-09-25 | 2002-04-08 | Databites, Inc. | System and method for automatic retrieval of structured online documents |
US7917895B2 (en) * | 2001-07-27 | 2011-03-29 | Smartesoft, Inc. | Automated software testing and validation system |
US9160624B2 (en) * | 2012-07-03 | 2015-10-13 | Opera Software Ireland Limited | Linked list scripting engine |
-
2016
- 2016-01-29 CN CN201610066732.XA patent/CN105739983B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159185B1 (en) * | 2000-09-14 | 2007-01-02 | Microsoft Corporation | Function objects |
CN101601012A (zh) * | 2006-12-01 | 2009-12-09 | 莫雷克斯公司 | 具有场景支持的面向生成器图形的编程框架 |
CN102246150A (zh) * | 2008-12-16 | 2011-11-16 | 微软公司 | 转换用户脚本代码来进行调试 |
CN103677772A (zh) * | 2012-09-07 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 脚本编写方法及相应的脚本编写系统 |
CN104268072A (zh) * | 2014-09-03 | 2015-01-07 | 武汉烽火网络有限责任公司 | 图形化脚本编辑器及快速开发通信设备测试脚本的方法 |
CN104699519A (zh) * | 2015-04-03 | 2015-06-10 | 四川效率源信息安全技术有限责任公司 | 基于GDI+实现的结合C#类库的JavaScript脚本编辑器 |
CN105068929A (zh) * | 2015-08-06 | 2015-11-18 | 网易(杭州)网络有限公司 | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105739983A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105739983B (zh) | 脚本程序编辑装置及其实现方法 | |
US8862975B2 (en) | Web-based workflow service visualization and navigation | |
US9524279B2 (en) | Help document animated visualization | |
US8726233B1 (en) | System and method of using an active link in a state programming environment to locate an element | |
US8881097B2 (en) | System and method for creating and using graphical object instances in a statechart environment | |
US8296721B2 (en) | Template-based software development | |
US8341593B2 (en) | Integrated development framework for composite applications | |
CN111862699B (zh) | 可视化编辑教学课程的方法和装置、存储介质和电子装置 | |
Julius et al. | Transformation of GRAFCET to PLC code including hierarchical structures | |
CN108027721A (zh) | 用于使用控件来配置通用程序的技术 | |
US20100313181A1 (en) | Application building | |
CN114564199A (zh) | 一种生成使用页面的方法、装置、设备及可读存储介质 | |
Bernaschina et al. | Online model editing, simulation and code generation for web and mobile applications | |
CN113986741A (zh) | 一种组件调试方法、装置及计算机设备 | |
Jiang et al. | Log-it: Supporting Programming with Interactive, Contextual, Structured, and Visual Logs | |
Giunchi et al. | DreamCodeVR: Towards Democratizing Behavior Design in Virtual Reality with Speech-Driven Programming | |
CN113010168B (zh) | 一种基于场景树的用户界面生成方法 | |
CN114741071A (zh) | 一种应用构建方法及装置 | |
US9542165B2 (en) | Model to Petri-Net transformation | |
CN116304442A (zh) | 页面代码生成方法、装置、电子设备以及存储介质 | |
CN117707530A (zh) | 应用程序页面的生成方法、装置、存储介质及电子设备 | |
CN107562476B (zh) | 一种生成应用程序的方法及装置 | |
Roubi et al. | Extending graphical part of the interaction Flow Modeling Language to generate Rich Internet graphical user interfaces | |
Wingrave et al. | A natural, tiered and executable UIDL for 3D user interfaces based on Concept-Oriented Design | |
Cimitile et al. | Automatic Generation of Multi Platform Web Map Mobile Applications. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |