Authorware程序设计Word文档格式.docx
《Authorware程序设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《Authorware程序设计Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。
10.2函数
10.2.1函数的基本定义
函数通常指能够实现某种指定功能的程序语句段,并通过一个代号(函数名)来表示,当程序设计过程中需要实现某一功能时,只需调用事先编写好的具有实现该功能的函数,而无须重新编写,这无疑
有利于程序的结构化与模块化。
大部分的函数都有自己的参数,每一个参数都代表不同的意义,因此在调用函数时往往需要传递实际参数,告诉函数实现哪一部分功能。
Authorware6.5开始支持用户的自定义函数功能,是一个革命性的创新。
10.2.2函数的分类
Authorware的函数功能无论大小,归纳起来有三大类型的函数:
系统函数、外部扩展函数、Authorware自定义函数。
1.系统函数
Authorware的系统函数有300多个,按其函数功能可分为18类:
Character(字符)、File(文件)、CMI(计算机管理教学)、Framework(框架)、General(常规)、Graphics(图形)、Icons(图标)、Jump(跳转)、Math(数学)、OLE(对象链接和嵌入)、Platform
(平台)、Time(时间)、Video(视频)、Language(语句)、List
(列表)、Network(网络)、Target(目标对象)、Xtras等。
2.外部扩展函数外部扩展函数一般指第三方扩展开发商利用编程语言和开发工
具如VCBCBDelphi等开发的外部扩展U32(UCD、DLL(动态链接库)、Xtras,封装在它们内部的函数可以供Authorware调入使用。
通常外部扩展函数都是实现一些系统控制功能,弥补Authorware在某些方面的不足。
在Authorware7的安装目录下就可以找到以u32为后缀的Macromedia公司开发的几款外部扩展U32(UCD函数。
3.Authorware自定义函数
这是自Authorware6.5以来开始支持的一个全新的函数定义方式:
它支持把某一计算图标内的程序代码或者是存储于外部文本文件的程序代码,甚至是一段字符串程序语句,Authorware都支持把它们定义为函数形式,增强了程序代码的结构化和重复使用性。
比如在流程线上加一个计算图标“Hello”,打开后在里面输入程序代码:
SystemMessageBox(WindowHandle,“Hello,world!
!
“Information”,64)要把计算图标“Hello”的程序代码定义为函数形式,在其属性中勾选“ContainsScriptFunction”即可,其调用函数名自然就为"
Hello"
,调用函数时使用语句:
CallScriptIcon(@"
)即可。
10.2.3系统函数的使用
单击“窗口”菜单下的“面板”选项中的“函数”命令,或直接单击工具栏上的“丛”按钮,都可以打开“函数”窗口。
如图10-3所示。
图10-3系统函数窗口
首先,要在函数列表框中选择适当的函数,然后,在函数描述文
本框中选择与函数相关的语法结构,单击鼠标右键,在快捷菜单中选择“复制”选项,最后,在函数输入的位置处再单击鼠标右键,选择
“粘贴”选项,接下来只要将粘贴的函数进行相应的修改就可以使用
了。
如图10-3所示,或者直接在打开的计算图标的前提下,双击选择好的函数,该函数会自动的复制粘贴到该计算图表中,只需要修改
相关的参数就行了
图10-4复制函数窗口
10.2.4外部扩展函数的使用
使用Authorware的内部系统函数和用户自定义函数不需要调入,直接在计算图标等函数使用场所内直接按格式粘贴使用即可,而外部扩展函数则需要导入,否则无法正常工作。
下面我们介绍常用的U32(UCD和DLL的函数导入方法步骤。
1.打开函数列表窗口,在函数窗口中选择“分类”列表下选择欲导入函数的a7p或a7l文件,此时按钮“载入……”变为可用状态。
2.单击按钮“载入……”后选择欲导入的函数库,即U32(UCD或者DLL文件。
3.假如是导入U32(UCD内封装的函数,则会出现如图10-4所示的界面,此时选择好欲导入的函数后单击按钮“载入……”导入即可。
如果要在函数列表中同时导入多个函数,可以按住“Ctrl”键的同时用鼠标进行点选。
假如是导入DLL内封装的函数,则会出现如图10-5所示的界面,输入相关的函数名和参数类型后单击按钮“Load”即可,成功导入后在窗口的左下角有一提示信息。
如此重复导入其它的DLL函数,导入完毕后单击按钮“DonS结束DLL函数导入工作。
4.
图10-4导入UCD封装函数
TheDLL"
USER32.DLL"
whichyouhaveselecteddoe$nothavefunctiondefinitionsincludedinit.
InorderloloeidcustomfunctionscontainedinthisDLL,Authorwareneedsthefollowingdefinitions(asinvourDLLdocumentation]:
图10-5导入DLL函数
10.3变量
10.3.1变量的基本定义变量通常是用来存储程序执行过程中涉及的数据。
变量可以存储的数据类型有:
数值型、字符型、逻辑型,也可以存储以数组、列表等形式存在的数据。
变量的加入,使Authorware的交互编程更加灵活多变。
10.3.2变量的分类
在Authorware7中,变量分为系统变量、自定义变量和逻辑变量三种类型。
1.系统变量
Authorware7内部提供了一系列的系统变量,它们包括CMI(计
算机管理教学)、Decision(决策)、File(文件)、Framework(框架)、General(常规)、Graphics(图形)、Icons(图标)、Interaction(交互)、Network(网络)、Time(时间)、Video(视频)等共
11大类。
变量窗口的打开和函数很相似,如图10-6所示。
这些系统变量不但能够“各司其职”,完成各自的功能任务;
更可以“有机结合”,协同完成复杂的程序需求。
图10-6系统变量窗口
对于某些特殊的系统变量,使用时后面要有一个“@字符再加
上一个图标标题,例如“Movable@“lconTitle”:
二False”的格式,这种语句称为引用变量,此赋值语句表示在程序执行过程不允许用户对“IconTitle”图标进行任何的移动。
2.用户自定义变量
自定义变量是用户根据程序设计与执行的需求而自己添加定义的变量。
可以通过调出变量分类窗口执行菜单“窗口”下的“变量”命令后选择“新建”按钮进行新建自定义变量操作,如图10-6所示;
亦可在任何的变量使用场合下直接定义变量,如计算图标代码编辑器
里,确定后系统会自动判断该变量为何类型变量,如果为用户自定义则提示新建之。
变量名通常用英文字母+数字来表示,但是不可以出现和系统变量或已有自定义变量同名的情况,即要保证变量名表示的唯一性,否则会出现错误提示,如图10-7所示。
图10-6新建变量
图10-7变量错误提示窗口
3.逻辑变量
逻辑变量十分简单,Authorware系统使用的是正逻辑,即只有
True
(1)或False(0)两种逻辑值代表真与假。
逻辑变量经常使用于某些判断语句或函数返回值中。
1033变量的应用场合
了解变量的类型后,我们继续来研究变量的应用场合。
一般变量在Authorware中的使用场合主要可以分为以下三种情况:
1.在属性对话框的文本框中使用变量
在设置属性对话框中,经常会遇到条件等文本框,定义的变量即可在文本框内使用,例如图10-8所示的声音图标属性对话框,其中
的“播放”域的条件文本框内即可输入包含变量的条件表达式。
类似的应用场合还包括条件响应的条件表达式等等。
图10-8属性对话框中使用变量
2.在计算图标代码编辑器中使用变量
最普遍的应用场合莫过于在计算图标的代码编辑器内使用变量
了,这也是变量得以灵活运用的核心表现场所如图10-8所示。
变量在
其中发挥了其应有的功能:
存储数据、限制条件等等,充当了Authorware程序设计的重要成员角色。
图10-8计算窗口中使用变量
3.在显示图标或交互图标中使用变量
在显示图标或者交互图标内也可以进行变量的显示与计算,变量在显示图标或者交互图标内“引用”都必须使用大括号“{}”括起来,否则系统会默认为普通文本字符串而不作为变量使用对待。
若显示变量时,需根据变量值的变化时时更新显示结果,则需要勾选显示图标或交互图标属性的“UpdateDisplayedVariables”。
10.4Authorware语言简介
利用Authorware提供的表达式、函数、语句,可以在Authorware进行程序设计。
进行程序设计时的基本方法与其它程序设计有点类似。
在此我们介绍一下Authorwarern提供的基本语句结构。
在进行程序设计的时候,我们必须先了解它的基本构成。
Authorware程序是由变量、函数、运算符、表达式以及决定程序流程的一些语句组成的。
在计算图标中,我们把这些语句按照书写要求,一行行地键入,只要符合Authorware的语法结构,程序就能执行,而要获得正确的运行结果,则要求程序还具有正确的逻辑结构,或者说是具有正确的算法。
掌握和运用好算法,最好能学会一门算法语言,如VBC/C++等,而且还要有不断实践的过程。
这里我们只能对语法结构进行介绍。
10.4.1运算符的类型
Authorware涉及的运算符号主要包括赋值运算符、关系运算符、算术运算符、连接运算符、逻辑运算符共五大类。
1.赋值运算符“:
=”把赋值运算符右边的值赋予左边的变量,例如Variable:
=Value即把右边“Value”的值赋予左边的变量“Variable”,这种运算关系可以包括数值、字符串文本等各种Authorware支持的数据类型的赋值。
例如:
A:
=10
List:
=[1,2,3,4,5,6]newHandle:
=tmsCreatePopupList(WindowHandle)
2.关系运算符:
=(等于)、<
>
(不等于)、<
(小于)、>
(大于)、<
=(小于或等于)、>
=(大于或等于)。
关系运算符主要实现对两个值(字符串、数值等)进行比较并返
回一个逻辑比较结果True
(1)或False(0),一般用于条件分支判断。
A<
B(A不等于B)
3.算术运算符:
+(加)、-(减)、*(乘)、/(除)、**(乘方)这类运算符主要是完成程序中一些基本的算术演算,包括有等。
3+5*20(即3+5X20=103)
4.连接运算符“八”:
主要用于两个或多个字符串之间的连接。
A:
二"
Authorware"
八"
7.0"
(即A的值为"
Authorware7.0"
)
5.逻辑运算符:
~(逻辑非)、&
(逻辑与)、|(逻辑或)。
这类运算符主要是完成两个逻辑值的比较操作,比较返回的结果是True
(1)或False(0),一般用于条件分支判断。
A&
B(假如A=1,B=0,则A&
B的逻辑值为False,即0)
10.4.2运算符的优先级
Authorware种算术运算符优先级有高到低的排名如下:
()
~+(正号)-(负号)
**
=、<>、<、>、<=、>=
&
、|
■
10.4.3表达式的使用
把变量用运算符连接起来的式子称为表达式。
根据所用的运算符不同,可有数学表达式,关系表达式、逻辑表达式和字串连接表达式。
表达式是一种语句,它可以通过运算产生一个结果或完成某种操作,如为变量赋值。
可以在计算窗口、对话框、文本对象等所有使用函数与变量的地方使用表达式。
表达式由函数、变量、运算符、数字、字母、字符串、常数以及为其加注释组成。
Number=Number+1实现数字累加。
PhoneNumber='
GetLine(contacInfo,6)实现将contaelnfo字符变量中的第五行取出赋给PhoneNumbe。
1.条件语句
顾名思义条件判断语句就是用于某种事件或者结果的判断上,并根据判断结果决定执行哪条分支动作,条件判断语句结构一般以if开头,而以Endif结束。
ifA>
10then
DisplayIcon(iconid@"
hello"
else
Eraseicon(iconid@"
good"
endif
如果A>
10的情况下则执行DisplayIcon(iconid@"
)语句
显示显示图标"
的内容;
否则执行Eraseicon(iconid@"
)语句擦除显示图标"
的内容。
一条件判断语句下允许镶嵌多重更复杂的条件判断语句,例如下面的代码:
if条件1then执行语句1
elseif条件2then执行语句2
else执行语句3
上述程序代码段含义是:
如果满足条件1,程序将执行语句1;
而如果满足条件2,将执行语句2;
否则的话程序只能执行语句3;
执行完这个条件结构后,程序自动由EndIf来结束整个条件判断。
2.循环判断语句
循环判断语句可以在条件仍然满足的情况下重复执行某一段程序代码,而被重复执行的这段程序代码通常被称为循环体。
Authorware7.0支持的循环判断语句结构都以repeat开头,endrepeat结束。
repeatwithi:
=1to10
str:
=String(i)
endrepeat
即自变量i在1三i三10的范围内将重复执行赋值语句str:
=String(i),每循环一次i自增+1,直到i值大于10结束退出循环。
Authorware支持的循环判断语句结构共有以下几类:
repeatwithcounter:
=start[down]tofinish
循环体语句
这种循环结构中,值start和finish分别是循环的上下限,当循环执行到计数器counter超出循环范围时,将自动退出循环。
此种循环结构可以指定计数器counter的自增方式,即每次递增1还是递减1(down)。
repeatwith变量in列表
这种循环结构通常被应用在数组上,如果变量元素在指定的列表中,将重复执行循环体的程序语句;
每执行完一次循环后,就会自动指定列表中的下一个变量元素,直到该变量元素超出列表索引范围,才执行endrepeat结束循环。
repeatwhile条件
这种循环结构相对简单,即在条件满足的情况下循环执行循环体的程序语句,直到条件不满足为止才
10.5任务驱动训练调用和控制flash播放
Authorware和Flash在平时的课件制作中应用都很广泛,教师们在教学中也常会遇到在Authorware中调用Flash动画的情况,那么如何在Authorware中方便地控制Flash动画呢?
如:
播放、暂停、快进、快退等操作。
本文将以实例的形式和大家一起来探讨这方面的问题。
本实例的程序流程图如图10.9。
*禹说羊J
图10.9动画控制程序流程图
步骤一:
启动Authorware7.0,按“Ctrl+Shift+D”快捷键打开“Properties:
File”对话框,将“Playback/Options”下所有选项全部取消选择。
选择菜单“Insert/Media/FlashMovie…”命令,弹出对话框,勾选其中的“Paused'
选项,让动画开始时为暂停,其余选项均为默认值。
单击[Browse…]按钮导入所需要的Flash动画,最后单击对话框中的[OK]按钮,会自动在流程线上添加一个图标,将这个图表重新取名为“动画”。
步骤二:
拖一个交互图标至流程线,将其取名为“动画控制”。
拖一个计算图标至交互图标下,交互类型选择为“Button”,单击计算图表上面的按钮弹出对话框,在“Label”选项中输入“ButtonName,单击[OK]会弹出“NewVariable”对话框,在“InitialVaiue”中输入“播放”,这样就设置了按钮的初始名称是“播放”,最后单击[OK]即可。
步骤三:
双击打开计算图标,在里面输入如下语句:
ifGetSpriteProperty(@"
动画"
#Playing)=FALSEthen
判断动画是否播放CallSprite(@"
动画"
#play)如果没有播放则让动画开始播放
ButtonName:
="
暂停"
在动画播放时,将按钮名称设置为“暂停”
CallSprite(@"
#Stop)
如果正在播放则让动画暂停
ButtonName:
播放”
在动画暂停时,将按钮名称设置为“播放”
上面的语句其实主要介绍了二合一按钮的制作及交互。
步骤四:
在交互图标下,放置两个计算图标,分别取名为“快进”和“快退”,双击打开“快进”计算图标,输入以下语句:
dangqianzhen:
=GetSpriteProperty(@"
#frame)获取动画当前所在的帧
#gotoFrame,dangqianzhen+20)
在原来的帧数上加20,这样实现“快进”。
双击打开“快退”计算图标,输入以下语句:
#frame)CallSprite(@"
#gotoFrame,dangqianzhen-20)在原来的帧数上减去20,这样实现“快退”。
步骤五:
在交互图标下,再次放置两个计算图标,分别取名为“首帧”和“尾帧”,双击打开“首帧”计算图标,在里面输入以下语句:
#gotoFrame,1)
让动画播放第一帧,即“首帧”
双击打开“尾帧”计算图标,输入以下语句:
Allframes:
=GetIconProperty(@"
#frameCount)
获取动画的总帧数
#gotoFrame,Allframes)
让动画播放最后一帧,即“尾帧”
最后,按“Ctrl+R”键运行程序即可测试效果。
注意:
如果在快进或快退过程中,发现并没有跳转到预期的动画帧,可能就是由于Flash动画的主场景中嵌套了影片(MovieClip)对象,Authorware无法对其进行控制。
所以在制作Flash动画时,尽量将所有的帧都放置在主场景中,少用影片对象。
如果发现播放/暂停按钮的标签名(ButtonName)与动画状态不符合,这说明Flash动画的当前帧加入了Stop语句,不会影响按钮的控制功能。
Authorare中控制Flash的语句还有很多,如:
调节动画的尺寸、位置、角度、播放速度等等,有兴趣的读者可以参考Authorware的帮助多多研究,相信会有所收获的。
思考题:
函数、变量的分类及应用。
教学小结: