authorware提供的系统函数
authorware提供的变量是用来存储模块信息,authorware所提供的函数是用来完成特定的任务。
函数使用的位置是:
1.【运算】设计按钮的对话框中。
2.作为设计按钮的装饰。
3. 用于对话框的相关项的设置。
通过使用authorware所提供的系统函数,读者可以设计基于终端用户交互时获取的信息来进行判断调用的程序模块。这样,在终端用户和计算机之间便形成了人机的对话的环境。
使用【window】菜单中的【functions】命令选项(快捷键为ctrl+shift+f),弹出图6-32所示的authorware的【function】函数对话框。该对话框中的相关内容在下面我们将系统地学习。
图6-32 【functions】函数对话框
(1)【category】:函数类型列表:在该下拉列表(如图6-33)中是authorware所提供的系统函数和读者自定义的函数类型的列表。
authorware函数分为19种类型,读者在使用函数时,最好能知道函数所属的类,如果能知道函数所属的类。则我们可以快捷地使用函数类型列表,从该类函数的函数名列表中我们可以迅速地寻找到所需的authorware函数的位置。
下面请读者来学习autorware提供的所有系统函数的类型:
a.【character】:字符管理函数:这些authorware所提供的函数主要是用来处理文本内容及字符串的处理。
b.【file】:文件管理函数:这些authorware所提供的函数能使读者可以方便地创建和维护外部文件。
c.【framework】:框架管理函数:这些函数使读者可以实现在框架结构内部的某些特定功能,例如在框架结构内实施一个对某一关键词的查找等特定功能。
d.【general】:一般目的函数:这些函数执行一些系统普通级的任务。例如删除一个显示对象,播放媒体信息等等。
e.【graphic】:绘图函数:这些函数决定显示的对象如何在展示窗口中显示。例如在展示窗口画方框或圆。并为方框或圆设置填充模式和颜色。
f.【icons】:设计按钮管理函数:利用这些函数来管理流程线上的设计按钮。例如使用这类函数显示或删除设计按钮或在一个【显示】设计按钮中改变一个显示对象所处的层级别。
g.【jump】:跳转控制函数:跳转函数不仅能够从一个设计按钮跳转到另一个设计按钮中,而且还能够跳转到一个外部文件中。例如我们可以设置:当最终用户在一定时间内没有反应时,authorware程序跳转去执行某一特殊的设计按钮中的内容,或跳转执行某一特定的外部程序模块,以便实现特殊的自动演示功能。
h.【language】:编程语言函数: authorware提供的这些函数用来执行特殊的语言编程操作。例如if-then 语句、repeat while等语句。
i.【list】:列表函数(该类函数是autorware4.0新增的函数类型):使用该类函数,可以对相关对象按照一定的规则排序,或按照特定的规则建立索引。
j.【math】:数学运算函数:这些函数能完成复杂的数学运算,从简单的加法到随机数的生成。autorware可以执行大多数我们所需要的数学运算。
k.【network】:网络管理函数:对于要在国际互联网上运行的模块,我们使用这类函数来实现某些特定的功能。例如:访问外部文件,或从网络上下载内容到本地硬盘上,都是通过使用该类函数来实现的。
l.【ole】:ole管理函数:ole处理函数用来处理展示窗口中的ole对象。authorware 4.0支持所有标准的ole通信。
m.【platform】:平台管理函数: 平台管理函数用来获取以后xcmds或dll要使用的信息。例如一个平台函数将返回发生器类型,以便确定authorware当前是否在执行应用程序。
n.【time】:时间管理函数:该类函数根据不同的规则将日期转化为数字格式,方便我们的程序设计中对日期的比较,或者显示系统的日期和时间。
o.【video】:视频管理函数:该类函数用来管理程序设计中引入的视频,包括视频的播放、暂停、寻找特定帧等等对视频内容进行操作的特殊功能。该类函数详细使用方法参见【视频的引入】中视频函数的使用。
p.【xtras】:xtras函数:该类函数可以控制和使用xtras文件,或者获取xtras文件的相关信息。
q.【xtra activex】:activex控件函数;
r.【xtra fileio】:xtra文件输入输出控制函数。
除了上面我们学习的19大类函数外,还有其它两个选项:
①【all】全部:选择该选项,则在函数名列表中按照字母顺序显示authorware所提供的所有的系统函数的名称。
②定制:定制函数类型列表是以读者所开发的程序模块文件名为标志。选择该类型选项,在函数名列表中将显示所有用户自己创建的和使用的xcms(macintosh)或dll(windows)生成的所有函数。
(2) 函数名列表:一旦读者选定了某种函数类型,则在类型菜单下面的列表框中的内容就变成该类函数的所有函数名的列表。读者可以在该显示框中选择函数,单击一个函数名,【functions】函数对话框中的相关内容会相应改变。
(3) 【referenced by】:引用:一旦读者选定了函数后,在引用区域显示框中将显示所有使用该函数的设计按钮。
(4) 【show icon】:显示设计按钮命令按钮:单击该命令按钮,使用读者所选中函数的设计按钮在流程线上高亮显示。
提示:
双击函数名列表中的该函数,可以达到同显示设计按钮命令按钮相同的功能。
(5) 【description】:描述窗口:在该窗口中具体描述了函数的语法规则和参数含义,为读者使用该函数提供了详细的步骤。
(6) 【load】命令按钮:单击该命令按钮,使读者可以定位及输入外部函数。这些外部函数可以是cms(macintosh)、dll或ucd(windows),或者其它包含用户自行设计的代码的应用程序。
(7) 【rename】命令按钮:使用该命令按钮,读者可以修改在函数名列表中选择的函数。
注意:
对于authorware所提供的系统函数来说,该命令按钮无效,该命令按钮只能修改用户自定义的函数。
(8) 【unload】:卸载命令按钮:当一个用户自定义的函数在程序模块中的任何一个地方都不再使用时,读者可以卸载或删除它,要删除一个不再使用的自定义函数,只需在函数名列表中选择该函数,然后单击【delete】删除命令按钮来删除该函数即可。
(9) 【paste】粘贴命令按钮:同变量的粘贴命令按钮相同,读者可以使用该命令按钮将函数名列表中选中的函数粘贴到打开的【运算】设计按钮对话框或可以接受函数的区域或外部对象中。
当一个函数被粘贴到应用位置时,它包含了为确保函数能够正确运行所需的所有域的占位符。
前面我们学习了authorware【functions】对话框中相关选项的含义和使用方法,在今后的学习中,我们还要使用到该对话框来实现特殊的功能。而且,在程序的调试过程中,【functions】函数对话框同【variables】变量对话框一样,可以作为一个独立的浮动窗口出现在windows窗口上,读者可以随时通过该对话框来了解自己所使用的函数语法的正确性。从而,可以加快程序的设计和调试。
函数的参数和返回值
函数是具有特殊的语法规则,用来实现特定任务的程序。所以,当我们使用一个函数时,必须要遵循正确的语法规则。在语法规则中最重要的是要正确地使用参数,函数的参数是读者提供给函数为完成某一特定任务所需要的输入信息。几乎所有的系统函数都需要输入参数。
在authorware所提供的众多函数中,参数的使用和函数的返回值的类型有很大的差别。
1. 参数的类型
首先,让我们来介绍一下参数的类型:
(1) 带双引号的参数:如果将字符串作为一个函数的一个参数,则在输入该字符串作为参数时,必须为该字符串加上双引号。例如函数presskey("keyname"),如果我们希望设置该按键为字符串enter,则我们在使用该函数的时候,要为字符串enter加上一个双引号,使用实例为:presskey("enter");如果我们用一个变量keyname来代替字符串enter,即keyname=“enter”,则我们在使用该函数时,变量不能再加双引号,应该设成presskey (keyname),否则authorware会错将该变量名作为字符串对待。
(2) 任选项参数:在authorware的系统函数中,有许多函数带有几个参数,而在实际的使用过程中,函数的有些参数不一定每一个都必须使用,而是根据实际任务的情况选用不同的参数。例如:jumpfile("filename"[, "variable1, variable2, ...", ["folder"]])函数是一个具有任选项参数的函数。使用该函数有两种语法规则:
jumpfile("filename")
jumpfile("filename"[, "variable1, variable2, ...", ["folder"]])
如果authorware的程序仅仅是从一个应用模块跳转到另一个应用模块(如examp1.a4p)。则可以使用第一种语法,该函数设置为jumpfile(“examp1”)。如果在examp1.a4p文件中有两个变量与variable1和variable2同名,现在要将另外两个值(如username和userid)传递给这两个参数,则可以使用第二种语法方式。该函数设置为:jumpfile("examp1", " username,userid")。
2. 函数的返回值
在authorware所提供的系统函数中,有些有返回值,而有些函数是没有任何返回值。有返回值的函数占大多数。
例如:beep( )函数只是实现一个响铃的功能,所以没有任何返回值。
getline("string", n [, m, delim])函数的返回值是一个字符串。
函数的使用位置和使用方法
在【运算】设计按钮对话框中插入函数:
图6-34 在运算对话框中选择插入函数的位置
在流程线上的【运算】设计按钮对话框中我们可以插入函数,具体的步骤如下:
(1) 在【运算】设计按钮对话框中现在要插入函数的位置,如图6-34所示。用鼠标单击对话框中要插入函数的位置,光标在该位置闪烁,表示处在等待插入的状态。
(2) 使用authorware中的【window】菜单中的【functions】命令选项(快捷键为ctrl+shift+f),弹出authorware的【functions】函数对话框。
图6-35 插入函数后的【运算】设计按钮对话框
(3) 在函数类型列表中选择要插入函数所属的函数类型,如果不知道函数的类型,则在函数类型列表中选择【all】选项。这里,我们选择【all】选项。
(4) 在函数名列表中用鼠标单击要插入的函数,使其高亮处在被选中状态。此时,在描述区域显示框中显示该系统函数的语法规则和使用方法的简单描述。在这里我们选择“circel”函数。
(5) 单击【paste】命令按钮,将所选择的函数插入到【运算】设计按钮对话框中,插入后如图6-35所示。
(6) 将插入后的函数中的参数用读者所使用的变量代替。
(7) 如果读者需要插入另外的函数,则不需要关闭【functions】函数对话框,读者只需要重新在【运算】设计按钮对话框中选择新的插入位置,重复步骤(3)至(6)的操作即可。
(8) 关闭【运算】设计按钮对话框,结束函数的插入。
注意:
关闭【运算】设计按钮对话框后,authorware有可能会弹出新建变量对话框,这是因为读者在设定函数的参数时,使用了新的变量,读者需要在新建变量对话框中设置这一新的变量。
注意:函数的使用位置和方法基本上同变量的使用位置和方法,重要的是读者要特别留意函数中各参数的使用,还要注意函数返回值的意义和在程序设计中的应用。
使用自定义函数
由于特殊任务的需要,在authorware所提供的系统函数不能满足需求的情况下,用户需要引入一些自己定义的函数来实现特定的任务,这些函数我们称为authorware引入的自定义函数。
创建自定义函数有专门的介绍,在这里,我们先学习如何使用自定义函数。
在使用自定义函数之前,必须要加载这个自定义函数。之所以要加载自定义函数,目的是使authorware能知道存放该函数的地点,从而能够直接从磁盘上读取该函数。当一个自定义函数加载后,就可以象使用authorware所提供的系统函数一样来使用自定义函数。因此,使用自定义函数有两步;
(1) 加载自定义函数。
(2) 将自定义函数插入到需要使用的地方。
下面请读者来学习这两个使用自定义函数的步骤:
加载自定义函数:
在authorware中,可以以很多方式来加载所需要的自定义函数。综合起来有下面三种方式。而事实上,三种方式最终都要使用【load functions】对话框,不同之处是打开【load functions】对话框的方式不同,所以事实上有两种:
(1) 用【functions】对话框来加载自定义函数。
①使用authorware中的【window】菜单中的【functions】命令选项(快捷键为ctrl+shift+f),弹出如图6-36所示的authorware的【function】函数对话框。
② 在【category:】函数类型下拉列表中选择【untitled】选项。
③ 用鼠标单击图4-36所示的【load】命令按钮,则屏幕上会弹出图6-37所示的对话框,在此来选择自定义函数所在的自定义函数文件。
图6-37 定位自定义函数对话框
④ 选择需要加载的自定义函数所在的文件,单击【打开】命令按钮,authorware会弹出如图6-38所示的引入文件中所包含的自定义函数的列表。
图6-38 自定义函数列表
⑤ 在图6-38所示的对话框中,在左边自定义函数列表区域中选择要加载的函数名,则该函数的使用方法便在该对话框的【name:】显示框中出现。单击对话框中的【load】命令按钮,加载所选择的自定义函数。
提示:
在windows系统中,自定义函数文件扩展名为dll,它是一个动态连接库中的文件。
⑥ 则读者可以观察到在【functions】函数对话框的函数名列表中出现图6-39所示的自定义函数,该函数名的出现,表示我们已经将该自定义函数加载到authorware中。
图6-39 加载自定义函数后的【functions】函数对话框
⑦ 将自定义函数插入到需要的位置的方法同系统函数的插入方法相同,读者可以自行实践。
(2) 在【运算】设计按钮对话框、对话框的正文输入框或正文显示对象中直接加载自定义函数。步骤如下:
① 在合适的位置直接输入自定义函数名及其参数。
② 关闭【运算】设计按钮对话框、对话框或用于创建正文显示对象的设计按钮,此时,弹出图6-37所示的【load function】定位自定义函数对话框。
③ 其它的设置方法参见(1)中的操作步骤(4)~(7)。
使用自定义函数:
当加载了一个自定义函数后,在authorware中该自定义函数的使用就完全和系统函数相同了。
提示:
如果读者在作品中使用了自定义函数,则在最后发行该应用程序作品的时候,必须要包括存储该自定义函数的文件。关于作品的最终打包与发行我们会在后续的实例中详细介绍。
创建自定义函数
由于特殊任务的需要,authorware所提供的系统函数不能满足需求的情况下,用户需要引入一些自己定义的函数来实现特定的任务,这些函数我们可以称为authorware引入的自定义函数。
对于所引入的自定义函数有以下两种:
具有返回值的函数。
没有返回值,只执行某种操作的函数,我们可以称之为命令。
在该部分内容中我们学习下述要点:
什么时候使用自定义函数;authorware应用程序的开发过程中,使用外部的自定义函数是最后的手段。
如何创建自定义函数:自定义函数文件可以使用多种编程语言或编译器来建立。
当引入的自定义函数不遵循authorware的约定时的处理: 当authorware认为动态连接库(dll)并没有遵循authorware的约定时,将在设置的过程中加入更多的步骤。
1. 什么时候使用自定义函数
使用authorware的好处是用户不必是一个经过专门训练的编程人员,就可以创建高级的应用程序。在实际的使用过程中,读者会偶尔遇到authorware所不能解决的问题或不支持的功能,在不考虑对执行效果的影响和时间的需求上,我们可以求助于引入外部代码-自定义函数来实现这些。
笔者提醒初学者,在编程过程中,要真正地抵制authorware自定义函数便利性的诱惑。新的authorware编程者由于下述的两个原因而习惯于使用外部代码-自定义函数。
(1) 传统的编程背景的影响:具有传统编程经验的新的authorware编程者有一种依赖于他们已经知道的东西的趋势,笔者也一样。在authorware的编程过程中,一碰到复杂的控制、制作一个动画等比较复杂的操作时,总是趋向于用已经知道的工具来寻求帮助,而不去仔细的研究authorware是否能实现这些功能。
(2) 忽略了authorware编程的实质:有很多编程人员只注重autorware的编程规则,而不去开发和领会authorware的编程实质,对于编程规则只是表面的使用,而不能对authorware的编程规则融会贯通,并在其规则的基础上进行进一步的创新,实现新的功能。
不注重autorware编程的实质,一旦碰到较复杂的问题,就迅速地求助于外部的文件代码-自定义函数来实现特定的功能。
提示:
读者在今后程序的设计过程中,要充分利用authorware的编程规则,并在其基础上进行创新,尽量少地使用外部代码。尽量少地引入自定义函数。
2. 如何创建自定义函数
在该部分内容中我们将介绍创建authorware自定义函数的一些基础知识。在这里,首先我们对在windows环境下创建自定义函数的一些基本规则向读者简单地介绍一下:
内容一:dll和ucd:
对于windows系统来说,自定义函数是以动态连接库(dll)文件格式存储的,因此,存储自定义函数的文件和应用程序模块是分开的,所以自定义函数文件是外部文件。在打包和最终发行作品时,必须包含使用了其函数的自定义函数文件。
尽管authorware有强大的功能,但其并不支持dll文件的编写,如果要创建dll文件,则要借助于其它种类的编程语言来进行windows下的编程。这已超出了本书的范围,我们就不再这里详细介绍了。具体dll文件的创建参见其它编程语言的书籍(c、c++语言等)。
虽然我们在这里不详细介绍dll文件的创建,但是,我们要在这里向读者介绍创建dll文件时要注意的事项:在创建一个自定义函数的dll文件时,读者必须在该文件中包含加载和使用一个自定义变量时所需要的特定信息:
函数存放的位置
函数名
函数的参数个数和参数类型
函数的返回值
当authorware加载一个自定义函数时,是用一个被称为调用转换的标准格式来显示这些信息的。因此,在创建一个自定义函数时,必须包含上述信息,以便于authorware准确地调用函数。
在我们使用自定义函数时,通常会遇到下面两种情况:
(1) dll符合authorware的调用转换标准格式:authorware加载自定义函数所需的信息已经直接插入到dll中,所以当authorware选择该dll文件后,该自定义函数就已经被直接加载到authorware中。
(2) dll不符合authorware的调用转换标准格式:因为dll不符合authorware的调用转换标准格式,所以必须由用户在加载该自定义函数时手工给出自定义函数的信息,否则,当调用该自定义函数时,authorware会提示用户输入相关信息。提示对话框如图6-40所示。
对于对windows编程不熟悉的用户来说,使用dll是比较困难的。为了方便用户的使用,authorware提供了一种对dll文件的透明方式加载(ucd)。当加载一个ucd文件时,读者会发现一个dll文件中可以使用的函数列表,用户只需象粘贴一个系统函数一样,将一个想使用的自定义函数粘贴到要插入的位置。
内容二:自定义函数的创建规则:
(1) 函数名的格式:dll文件和调用它的程序模块是相互独立的文件,因此,在程序模块调用dll文件时,必须指定准确的搜索路径。在authorware中,识别一个自定义函数有三种方式。下面我们以自定义函数hotclick()(数字标识为30)为例来说明这三种识别方式:
① 自定义函数原先的函数名:hotclick:当使用这种形式时,autorware将寻找名为hotclick的函数,并用这个名称进行加载。
② 存储函数名的变量:hclick= hotclick:当使用该形式时,authorware寻找名为hotclick的函数,然后将它命名为hclick。
注意:
当一个自定义函数名与系统函数或已定义的自定义函数名相同时,这种形式是避免函数名冲突的有效方法。
③ 被称为该函数原型的数字标识:hclick=@30:当使用该形式时,authorware就直接通过自定义函数的数字标识来选择自定义函数。因此在使用hotclick自定义函数时可以用hclick来代替。
注意:
使用该方式,可以使authorware迅速地调用要使用的自定义函数,大大地提高程序执行的速度。
图6-40 为自定义变量重新命名
提示:
加载自定义函数后,读者可以在【functions】函数对话框中的函数名列表中看到自定义函数名,读者可以使用该对话框中的【rename】命令按钮来弹出图6-40中所示的【rename function】对话框来为自定义变量重新命名。
(2) 函数参数列表的格式:用户可以使用参数列表的形式来输入函数的参数。如果自定义函数的参数不止一个时,参数之间要用逗号隔开。在用列表形式来输入函数参数时,参数的数量和参数的类型必须和原型函数中所定义的内容相一致。
表6-1所示的是authorware中所有有效的参数类型。
表6-1 authorware中有效的参数类型
参数类型 | 含义 | 等效于windows编程中的参数类型 |
char | 有符号byte | char |
byte | 无符号byte | unsigned char、byte |
short | 有符号整数 | int、shoot、boot |
word | 无符号整数 | unsigned word handle |
long | 有符号整数 | long long |
dword | 无符号长整数 | dword unsigned long |
float | 浮点数 | float |
double | 双精度型浮点数 | double |
point | 远程指针 | far lppoint |
string | 以零结束的字符串远程指针 |
|
void | 空函数 | void void |
表6-2 参数类型之间的转换规则
要求的参数类型 | 整型 | 实型 | 字符串 |
char byte short word | 取最低的字节 | 转换为整型后,再取最低字节 | 转换为整型后,再取最低字节 |
long dword | 不变 | 转换为有符号常整型 | 转换为有符号常整型 |
float | 转换为浮点型值 | 按浮点型值判断 | 转换为浮点型值 |
double | 转换为双精度浮点型值 | 不变 | 转换成双精度浮点型值 |
pointer | 不变 | 截断成为符号长整型 | 转换成指向字符串的远程指针 |
string | 转换为指向数值格式化字符串的远程指针 | 转换成指向数值格式化字符串的远程指针 | 转换成指向字符串的远程指针 |
如果用户输入的参数类型与自定义函数中要求的参数不一致,则authorware会自动将输入的参数类型按照表6-2中的转换方式来进行转换。
(3) 函数的返回格式:如表6-3所示为自定义函数的返回类型列表:
表6-3 自定义函数有效返回值类型
参数类型 | 含义 | 等效于windows编程中的参数类型 |
char | 有符号byte | char |
byte | 无符号byte | unsigned char,byte |
short | 有符号整数 | int,shoot、boot |
word | 无符号整数 | unsigned word handle |
long | 有符号整数 | long long |
dword | 无符号长整数 | dword unsigned long |
float | 浮点数 | float |
double | 双精度型浮点数 | double |
point | 远程指针 | far lppoint |
string | 指向以零结束的字符串 |
|
void | 无返回值 | void void |
(4) 加载不符合authorware调用转换格式的自定义函数时的设置:当读者在【functions】对话框中使用【load】命令按钮来加载自定义函数时,如果dll文件的格式不符合authorware调用转换格式的话,则authorware会自动弹出如图6-41所示的对话框来要求用户来输入所加载函数的相关信息。包括如下内容:
函数名
参数名
参数列表
函数返回值
函数相关描述等信息。
在该对话框中,函数的描述是可选的输入区域,其它的输入区域是必须填写的。否则自定义函数无法加载。
在【function name】正文输入框中输入函数名;
在【arguments:】正文输入框中输入参数的列表;
在【return:】正文输入框中输入返回值的类型;
在【description】正文输入区域中输入对函数的相关描述,该选项可选。
设置好该对话框后,单击【load】命令按钮加载自定义函数。
图6-41 输入自定义函数相关信息对话框
新闻热点
疑难解答