系统函数实例介绍
在authorware中,系统函数是非常重要的,利用authorware提供的系统函数,读者可以实现某些特定的功能,并可以将各种函数相组合来实现新的功能。在该部分内容中,我们将简单地学习部分系统函数的语法规则和使用方法。
在该部分内容中,共学习如下内容:
实现程序跳转的系统函数;
笔者在程序设计过程中最常用的一些系统函数及其应用实例。
在利用authorware进行交互式多媒体程序设计过程中,各程序模块之间的跳转和调用是非常频繁的,authorware作为一个交互式多媒体设计的平台,为编程人员提供了大量改变程序流程的函数来实现程序的跳转和模块之间的调用。下面首先让我们来学习改变程序流程的系统函数。
步骤1 改变程序流程的系统函数:
(1) goto:
作用:将程序跳转到某设计按钮中,执行该设计按钮中的内容。
语法格式:goto(iconid@"icontitle")
(2) jumpfile :
作用:将程序从程序的一个模块文件跳转到另一个模块文件中去执行。
语法格式:jumpfile("filename", ["variable1, variable2, ?,"folder"])
(3) jumpfilereturn :
作用:将程序从一个模块文件跳转到另一个模块文件中,执行完后一个文件后返回到原文件处。
语法格式:jumpfilereturn("filename", ["variable1, variable2, ?,"folder"])
(4) jumpout:
作用:退出authorware环境,执行program参数设置的程序。
语法格式:jumpout("program", ["document"] [,"creator"]))
(5) jumpoutreturn :
作用:执行program参数设置的程序,执行完该程序后,回到authorware环境中。语法格式:jumpoutreturn("program", ["document"] [,"creator"])
(6) jumpprintreturn :
作用:启动参数program指定的程序,并打印document 参数中指定的文件,在文件打印完毕后,直接返回authorware环境。
语法格式:jumpprintreturn(["program"], "document" [, "creator"])
(7) quit
作用:结束当前运行的authorware程序。
语法格式:quit([option])
(8) quitrestart :
作用:退出子程序,从主程序的起始位置恢复运行主程序。
语法格式:quitrestart([option])
(9) restart:
作用:将程序跳转到文件的起始位置,重新执行程序。
语法格式:restart()
步骤2 常用系统函数及其应用实例;
(1) displayicon
displayicon函数用来显示一个设计按钮内容,该函数同流程线上的设计按钮一样显示一个设计按钮中的内容。语法格式为:
displayicon(iconid@"icontitle")
如果读者正在用一个计算的结果来确定显示的对象时,该函数是非常有用的。在图6-42所示的【运算】设计按钮对话框中我们来实现这种控制。
图6-42 使用displayicon函数显示流程线上已经存在的设计按钮
注意:
在我们的程序设计过程中,我们应该尽量使用displayicon函数来显示流程线上已经存在的设计按钮,不要重复地使用设计按钮来显示相同的内容。
(2) eraseicon:
同displayicon的性质和使用方法相同,唯一的不同是该函数是用来擦除设计按钮的。
语法格式为eraseicon(iconid@"icontitle")
实例如图6-43所示。
图6-43 使用eraseicon函数擦除一个显示在展示窗口中的设计按钮
(3) find:
该函数的功能是在某一特定字符串内寻找符合某种模式的字符。如果在字符串中查找到该模式字符后,函数返回一个在特定字符串中查找到的第一个与所设定模式相匹配的字符的位置。语法格式为:number := find("pattern", "string")
实例1:
appleposition := find("apple","banana, orange, apple")
appleposition的返回值是17,因为与apple相匹配的字符串中的第一个字符的位置是字符串中的第17个字符(包括字符之间的空格)。
实例2:
lyric := "the rain in spain falls mainly on the plain"
start := find("?ain",lyric)
因为“?ain”同“rain”相匹配,所以start的值是5。
提示:
对于find函数的返回值,当没有寻找到与设定模式相匹配的字符时,该函数的返回值为0。
(4) getline:
读者可以将字符串作为一个小型数据库来使用。利用getline函数,读者可以从字符串中连续获取信息。
语法格式:resultstring := getline("string", n [, m, delim])
下面请读者以实例来学习该函数的使用方法:
文本文件phone.txt中的内容如下所示:
john<tab>smith<tab>555-1234<return>jane<tab>doe<tab>5555678<return>
sam<tab>spade<tab>555-9012<return>
为了取得该文件中的某一人的电话号码,我们需要三个操作:
①读取文件的内容。
②读取行的内容。
③读取行中某一区域的内容,该内容就是所需要的电话号码。
下面让我们来逐步实现上述操作:
filecontents := readextfile("phone.txt")
读取文件的内容,存储在变量filecontents中;
fileline := getline(filecontents, 2)
读取文件内容的第二行,存储在变量fileline中。
phone := getline(fileline, 3, 3, tab)
读取第二行内容中的第3个区域的全部内容。以tab键来分隔区域。
变量fileline 的值是jane<tab>doe<tab>555-5678。
存储电话号码的变量phone 的值是555-5678。
(5) if then 条件判断语句
条件判断并执行。该函数可以根据不同的条件,来判断执行不同的内容。通过使用该函数,可以为用户的应用程序提供一种对变化的信息的观察和判断能力,从而实现灵活的程序的交互性。
该函数的语法格式有如下多种:
①if 条件1
then 任务1
end if
②if 条件1
then
任务1
任务2 …..
end if
③if 条件1
then 任务1 else 任务2
④if 条件
then 任务1…
else
任务n…
end if
⑤if 条件1 then
任务1…
else if 条件2 then
任务n…
else
任务m…
end if
下面让我们来看一个实例:
if(明天旅游) then
(要准备食品)
(要准备现金)
else
(在家学习)
end if
源程序如图6-44所示:
图6-44 if-then 语句用于对条件做出决定
(6) insertline:
我们用getline()来从字符串获取信息,用insertline来设置信息,insertline函数将一行插入到字符串中指定的位置。
语法格式为:result := insertline("string", n, "newstring", [delim])
实例为:
我们有两个字符串,即字符串string1和string2。
string1:= "monday"^return^"wednesday"^return
string2:= "tuesday"
使用insertline函数将string2中的字符串添加到string1字符串中的第二行:
string3:= insertline(string1, 2, string2)
在【运算】设计对话框中的设置如图6-45所示:
字符串string3的值为:"monday ^return^ tuesday ^return^ wednesday"
(7) quit():
在交互式多媒体作品中,我们关闭了用户的菜单栏,使用了图形界面。但是,当我们这样做的时候,也取消了用户使用authorware自带的文件菜单来退出的能力。
为了让用户能够顺利的退出authorware程序,而不需要重新启动计算机。我们在程序流程线上的【运算】设计按钮中使用了quit函数。
语法格式为:quit([option])
在使用quit()函数时,不同quit()函数的参数可以达到不同的退出效果:
下面,请读者学习该函数各参数的含义:
0:退出程序模块,显示程序管理器(windows 3.1)和桌面(windows 95或nt)。如果该程序模块是由其它程序所调用的,则authorware返回调用它的程序中,继续执行。
1:退出程序模块,显示windows 3.1程序管理器和windows 95桌面。
2:重新启动计算机(windows 95 或nt)或返回dos(windows 3.1)。
3:关闭计算机(windows 95 或nt)或退出authorware程序,显示windows 3.1程序管理器。
提示:
该参数是一个可选项,我们可以使用quit( ),不要任何参数,此时,authorware默认的参数是0。
注意:
请读者注意,因为authorware遇到quit( )函数时,就立即退出应用程序,在quit( )函数后的源程序将被忽略。
(8) repeat while循环控制函数:
repeat while函数类似于if-then函数,该函数可以使authorware在读者所设定的条件下运行某些功能。
repeat while(天下雨)
(带雨伞)
end repeat
在此实例中,循环将继续重复,直到天不下雨。
(9) writeextfile:
使用该函数来写外部文件。该函数的语法格式为:
writeextfile("filename", "string")
提示:
读者可以使用authorware变量filelocation和recordslocation来辅助设置或定位要读写的文件。
注意:
如果读者以一个已经存在的文件名写文件,那么该已经存在的文件将被覆盖。
(10) random():
该函数用于生成一个随机数。语法格式为:
图6-46设置声音播放的随机次数
random(min, max, units)
其作用是生成一个介于min和max间的随机数和两个随机数的小数点后的位数。
例如:当min ,max 和units分别为1,10和0.1时,产生的随机数将类似于:1.2和5.8的数。
下面的例子中,我们将对声音的播放进行控制,播放的次数随机地从最多3次,最少1次,该控制可以在设置声音的对话框中设置,如图6-46所示在【fixed number of times】选项的正文输入框中输入随机函数randow(1,3,1)来生成对声音播放次数的控制。
新闻热点
疑难解答