首页 百科知识 的交互功能概述

的交互功能概述

时间:2023-08-26 百科知识 版权反馈
【摘要】:多媒体的三个显著特征是集成性、交互性和同步性。交互功能的出现,不仅使多媒体程序能够向用户演示信息,同时也允许用户向程序传递控制信息,并以此作出实时的反应。交互图标的功能体现了Authorware的强大和卓越。交互分支上端的小方块称之为“响应标志”,不同的交互类型会有不同的“响应标志”。执行程序,结果画圆之后将退出交互作用,这不符合要求。执行程序,可以看到,新的一页出现以后,这些交互功能依然存在。

第13章Authorware的交互功能

【学习内容】

◆Authorware的交互设计

◆Authorware的变量与函数

◆运用变量与函数进行Authorware交互设计

◆Authorware判断图标的应用

◆Authorware导航结构的应用

13.1 Authorware的交互功能概述

13.1.1 程序的交互

多媒体的三个显著特征是集成性、交互性和同步性。简单地说,交互就是一种通过各种接口与计算机对话的机制。交互功能的出现,不仅使多媒体程序能够向用户演示信息,同时也允许用户向程序传递控制信息,并以此作出实时的反应。上一章所举实例大多是按照程序流程线上设计图标的顺序执行的,而这种按照固定顺序执行的程序无法使用户参与其中,从而失去了交互性多媒体的特征。

交互图标的功能体现了Authorware的强大和卓越。Authorware提供了11种交互类型,如图13.1所示。

图13.1 Authorware交互类型

13.1.2 交互结构的建立

使用交互图标创建交互结构,添加“响应”图标的方法为单击工具栏的“新建”按钮,建立一个新文件。将图标面板的“交互图标”拖到流程线上,再在交互图标的右侧拖入一个或几个“响应”图标(常用群组图标作为“响应”分支,便于制作较复杂的流程结构。这些图标用于“响应”用户的鼠标动作、按键、文本输入、特定事件等,故而称为“响应”图标),当拖入一个响应图标松开鼠标左键时,会弹出如图13.1所示的“交互类型”对话框,选择一种类型如“按钮”,单击“确定”,就将响应类型设置成为“按钮交互”类型了,如图13.2所示。

图13.2 添加“按钮交互”响应图标

13.2 Authorware的交互设计1

13.2.1 通过按钮交互(Button)学习交互设计的一般方法【案例13-1、13-2】

通过按钮交互来进行交互设计的过程有以下几步。

(1)在主流程线上放置交互图标,命名为“绘图组”。

(2)在“绘图组”图标右下边放置一个显示图标,在弹出窗口中选择“按钮”(Button),显示图标会自动下挂,取名字“画圆”;在“画圆”图标内画一个圆,填充颜色。交互分支上端的小方块称之为“响应标志”,不同的交互类型会有不同的“响应标志”。

(3)使用同样的方法加上“画方”图标,画一个矩形。添加两个擦除图标,分别擦除“圆”和“方”,如图13.3所示。这时运行程序,屏幕上将出现四个按钮,分别执行各自的功能。但是单击任何按钮都可导致擦除已有的其他对象,而不是分别对应擦除,这是因为系统默认另一个分支被响应之后将“擦除对象”(After Next Entry)。有两种方法可以解决这个问题,第一种是单击“画圆”图标之上的响应标志,打开属性面板,选“响应”标签,在“擦除”(Erase)项右边的下拉列表框中选择“不擦除”(Don’t Erase)。第二种是打开“画圆”图标属性对话框,选中“防止自动擦除”(Prevent Automatic Erase)。

图13.3 添加交互按钮

(4)当单击响应标志,打开响应属性面板时,可以编辑按钮的大小和位置,其方法是在“大小”和“位置”中修改数据,也可以使用鼠标直接选中按钮来编辑。如图13.4所示。还可单击“鼠标”(Cursor)项后面的“…”按钮,在弹出的对话框中选择鼠标指向按钮时新的鼠标指针形状。

图13.4 按钮交互响应属性面板

(5)现在完成了一个功能完整的程序,但程序永远停留在这一组交互之中。比如在下面加一个新的图标“新的一页”,但流程线是断的。解决方法是单击“画圆”的响应标志,打开属性对话框,选择“响应”标签,在“分支”项右边的下拉列表框中选择“退出交互”(Exit Interaction)。执行程序,结果画圆之后将退出交互作用,这不符合要求。为解决问这一题,可将“分支”项恢复为“重试”(Try Again)。在交互组中增加一个空的群组图标“退出”,并将“分支”项改为“退出交互”(Exit Interaction)。

(6)本例中,一旦退出交互,交互作用将不复存在,如要让交互在程序运行全程存在,可进行以下设置:单击响应标志,打开属性对话框,选择响应标签,将“范围”项下的“永久”(Perpetual)选中,然后把“分支”(Branch)项改为“返回”(Return),其余分支设置类似。执行程序,可以看到,新的一页出现以后,这些交互功能依然存在。“退出”项已经失去了意义,可以删掉,如图13.5所示。

图13.5 在程序运行全程保持交互功能

(7)本例中,交互图标右侧的一个分支只有一个图标,如果希望在一个分支中有多个图标,即不但画一个圆,还要让圆做一个运动,甚至还要添加下级交互功能,可以选中“画圆”,执行菜单命令“修改”→“群组”,得到一个群组图标,则原来的显示图标“画圆”成为该群组图标的下一级包含图标,也可以直接在交互图标下拖放入一个群组图标。打开群组图标,就可以加入运动图标、交互图标等,数目不限,还可以嵌套群组图标。

13.2.2 热区交互(Hot Spot)【案例13-3、13-4】

屏幕特定区域像按钮一样能激活交互功能,这样的屏幕区域称为热区。一般把热区设在画面上有一定意义的区域。

做一个热区交互的例子,如图13.6所示的细胞简图(不包括虚线和文字),当指向细胞的某区域时,出现名称提示。实现这个效果的具体过程分为以下几步。

图13.6 热区交互示例的细胞简图

(1)在显示图标中导入细胞图,在它的下方放置一个交互图标。添加下挂的显示图标时,在选择“交互类型”对话框中选“热区域”(Hot Spot)。在交互图标下挂的4个显示图标上,分别输入相应的文字,如图13.7所示。

(2)单击虚线小矩形响应标志,打开属性对话框,这时能够在显示窗口中看到带8个句柄的虚线框,用来定义热区。这里的虚线和句柄都能被拖放,如图13.8所示。

图13.7 确定交互类型为热区域交互

图13.8 定义热区

【注意】在设计过程中随时可以执行以便查看效果。拖放改变4个下挂显示图标的相互位置,发现当热区相重叠时,面积小的热区交互分支应该在前,否则将被覆盖。

(3)现在要将响应改成只要鼠标指向交互区域,就能出现提示,而不需要点击,如果鼠标移开,提示便消失。设置方法是单击响应标志,打开属性对话框,设置“匹配”项由“单击”(Single-click)改为“鼠标指针在区域”(Cursor in Area)。4个交互分支都作此修改,如图13.9所示。

图13.9 热区交互响应属性面板

【注意】鼠标指向热区,则出现提示,但鼠标离开所有热区时,还有提示存在。原因是“擦除”(Erase)项设置为“下次进入交互分支之后”(After Next Entry)擦除对象,将其改为“下次进入交互之前”(Before Next Entry)擦除对象即可,如图13.10所示。

图13.10 热区交互“热区域”属性面板

13.2.3 热对象交互(Hot Object)【案例13-5】

所谓热对象交互,就是以一个显示图标对象充当按钮,下面来完成一个热对象交互案例。

(1)在交互图标右侧放一系列显示对象。建立交互时选取热对象(Hot Object)类型。

图13.11 热对象交互

(2)如图13.11所示“画方”分支和“小方块”匹配,单击响应标志,打开属性对话框,找到显示窗口中的小方块图形,单击鼠标左键即可完成定义。

(3)仿照前面“按钮交互”的构造程序。也可以加上“退出”功能。

(4)不要忘了给“画方”、“画圆”两个图标加上“防止自动删除”属性,或将交互属性“擦除”(Erase)设置为“不擦除”(Don’t Erase)。

【注意】容易出现的问题是找不到要定义的热对象。这时可以先取消对话框,打开“小方块”图标,然后关闭,再打开交互属性对话框定义热对象。

13.2.4 目标区域交互(Target Area)【案例13-6】

有的软件中有这样的游戏,要求拖放对象,位置放正确了对象就停住,位置放错了对象还返回原位置。这种功能在Authorware中很容易实现,具体步骤如下。

(1)如图13.12所示,在“根尖”图标中画一个或引入一个根尖的剖面图,其中“分生区”和“成熟区”是文字对象。

(2)交互图标下放置一个空的组图标,选交互类型为“目标区”(Target Area)。

(3)以“分生区T”为例,这是将“分生区”字样移动到正确位置的分支。单击对应的响应标志打开属性对话框。在显示窗口用单击的方式选中要移动的对象(“分生区”三个字),把显示窗口中的虚线框移动到正确的目标区域(根尖分生区),调整好大小。设置“放下”(On Drop)项为“停止到中央”(Stop to Center),其含义为当对象被移动到正确的目标区域时,自动停留在目标区的中央。

以“分生区F”为例,这是将“分生区”字样没有移动到正确位置时自动返回的分支。在显示窗口用单击的方式选中要移动的对象(“分生区”三个字),把显示窗口中的虚线框扩大到整个窗口。设置“放下”(On Drop)项为“返回”(Put Back),其含义为当对象被移动到任何位置(除正确区域),都自动返回原位置。

图13.12 目标区域交互

“成熟区T”和“成熟区F”分别定义“成熟区”三个字的正确移动和错误移动,还可以再加上“根冠”、“伸长区”等对象的目标区域交互,每增加一个对象需要增加两条交互分支。

13.2.5 下拉菜单交互【案例13-7】

菜单交互可以提供一组标准的“下拉菜单”。程序构造与执行结果如图13.13所示。分支的具体内容可以任意,设置方法参照前面所学的交互类型。其中“重新开始”计算图标中键入“Restart()”,“退出”计算图标中键入“Quit()”。

图13.13 下拉菜单交互

13.3 变量和函数的引入

Authorware是一款可视化的多媒体制作软件,其程序主要由各种设计图标组合完成。同时,Authorware还提供了大量的系统变量和函数,它们可以作为Authorware设计的辅助手段。适当运用变量和函数,将使多媒体程序具有更高级别的交互性能以及更完善的信息处理功能。通过本节的学习,用户可以掌握Authorware中变量、函数和表达式的知识及其简单的应用。

在流程线上添加计算图标,然后双击计算图标,或者在该图标上单击鼠标右键,在弹出的快捷菜单中选择“计算”命令都可以打开脚本编辑窗口。同大多数窗口一样,计算图标的脚本编辑窗口也有自己的工具栏和状态栏,如图13.14所示。

图13.14 计算图标的脚本编辑窗口

13.3.1 用户自定义变量与计算图标【案例13-8、13-9】

变量是一个值可以改变的量,分为自定义变量和系统变量。变量名是字母开头的一串字符,可以包括字母、数字、下划线等,最好本身有一定的意义,且变量中的字母不区分大小写。

当变量在程序中第一次出现时,系统将弹出一个新变量定义的对话框,显示变量名,要求输入“初值”(Initial Value),如果不输入,则默认为0。若输入数字,则变量为数值型变量;若输入值带双引号,则变量为字符型变量;若初值为TURE或FALSE,则变量为逻辑型变量。变量可以被赋值,语句必须写在计算图标中(“=”和“:=”是等效的)。如:

变量可以用于运算,写在计算图标中或对话框输入框中。

写作:

计算图标中还可以写注释,注释跟在连续两个以上的减号后面。

如:

如图13.15所示,【案例13-8】利用变量进行有关投资利率的逐步计算。

计算图标“变量初始化”中语句为:

显示图标中,如果要显示变量,变量需用花括号括起来。而且必须在打开的显示图标属性对话框中(属性打开方法:“修改”(Modify)→“图标”(Icon)→“属性”(properties))选择“随时更新显示变量”(Update Displayed Variables),以保证变量“{Money}”等的随时更新显示。

若干“累加”计算图标中(图中只给出了2个)都键入:

如图13.16所示,【案例13-9】设计了一个程序,每点一次鼠标,滑块就沿路径走一格。“初始化”中的语句为:

其中“移动滑块”是以“沿路径到计算点”方式驱动“滑块”的移动图标,“路径”与“轨迹”吻合,“运动速度”框中填“Speed”,“目标值”框中填“High”,运动的“并发性”设为“永久”。“上升”计算图标中写“High=High+Step”,“下降”计算图标中写“High=High-Step”。

图13.15 自定义变量计算利率

图13.16 点击鼠标时滑块移动

在显示图标中,变量名如果带有大括号,将显示其代表的值。在轨迹图标中写入文字“高度:{High}”,并在显示图标属性中选择“随时更新显示变量”(Update Displayed Variables)。这样,当滑块高度变化时,也就是“High”变化时,其值的变化就会显示出来。

13.3.2 系统变量的应用【案例13-10】

图13.17 系统变量的应用

Athorware提供了一套系统变量,有固定的写法(其中与图标有关的要写成变量名@“图标名”),用来跟踪图标或系统的当前信息。

如图13.17所示,【案例13-10】这个实例可以在屏幕上拖动一个对象,来驱动另一个对象在轨迹上的运动。“轨迹”画两条直线,有一定距离;“主动对象”可以画一个小方块,“被动对象”画一个小圆。

(1)为“主动对象”设置轨迹,在图标属性对话框中,选“位置”(Positioning)为“在路径上”(On Path),选“移动”(Movable)为“在路径上”(On Path),为其设置一条路径(和设置运动路径类似),与一条直线吻合。

(2)用一个移动图标来驱动“被动对象”。设置“运动方式”为“沿路径到计算点”,设置路径与另一条直线吻合,设为“永久”型,填写“目标值”为:PathPosition@“主动对象”。Path-Position@“图标名”将得到这个图标在路径上的位置的量,这个量被作为移动图标的“目标值”来驱动“被动对象”移动到路径上的计算点。

系统函数和系统变量可以通过单击两个图标打开响应对话框查找,并可直接“粘贴”(Paste)当前光标位置。

13.3.3 系统函数的应用【案例13-11】

函数用来提供特殊操作,它的格式必须是函数名(参数1,参数2,…),其中参数可以是1个或没有,但括号不可省略。如数学函数Sqrt(b**2-4*a*c),意为

如图13.18所示,【案例13-11】中“图形”的内容出现后,又被擦除,那么它怎么被重新显示?可以用图标类系统函数。“图形一”计算图标中写入“DisplayI-con(IconID@"图形1")”,“图形二”计算图标中写入“DisplayIcon(IconID@"图形2")”,“擦除”中写入“EraseIcon(IconID @"图形1")”和“EraseIcon(IconID@"图形2")”,“退出”分支设为“永久返回”式,写入“Quit()”。

函数“DisplayIcon()”和“EraseIcon()”分别用来显示和擦除图标对象;“Quit()”使程序退出,其参数可以省略。

图13.18 系统函数的应用

13.4 Authorware的交互设计2

13.4.1 文字输入交互和条件交互【案例13-12】

(1)文字输入交互(Text Entry):为多媒体程序的浏览者提供一个输入文本框,如果浏览者的输入与预定的内容一致,就会激活响应分支。

(2)条件交互(Conditional):程序可以判断某个条件是否成立,成立则执行这个分支。

下面【案例13-12】是一个解一元二次方程的程序,综合运用了这两种交互。

“初始化变量”中引入了若干变量,书写程序内容如下。

如图13.19所示,在显示图标“题目”中输入提示,如方程的形式等提示内容。

图13.19 文字输入交互和条件交互示例

文字输入交互的设置中“输入系数”部分是关键。“输入a”选用文字输入交互类型,并在其交互属性对话框的标题输入框中输入一个星号,设置为“退出交互”。这个星号的意义是用户可以输入任何的字符(如果不用星号而直接写“5”,那么只有输入“5”才能通过程序)。其下的计算图标中输入“a=EntryText”,意思是把输入数字赋给变量a。然后在“显示a”中输入{a}。(其中“a=EntryText”的完整形式是“a=EntryText@‘输入a’”,如果省略图标名,就返回最近一次输入的内容)。“输入b”和“输入c”的设置方法类似。

三个变量都接受输入后,程序在计算图标“计算判别式”中写入d=b**2-4*a*c。

下面程序将进入一组条件交互,程序根据对判别式的判断,执行某一分支。构造交互时选择“交互类型”为“条件”(Conditional),三个条件分别在交互属性对话框的标题输入框中写入d>0、d=0、d<0逻辑表达式,设置为“退出”交互类型。程序执行条件交互时,将检查逻辑表达式是否成立,成立则执行这个分支。

三个分支的显示图标将显示不同的内容。d>0分支显示图标写入“因为判别式={d}>0,所以方程有两个不相等的实根。x1={(-b+Sqrt(d))/(2*a)}x2={(-b-Sqrt (d))/(2*a)}”;d=0分支写入“因为判别式=0,所以方程有两个相等的实根。x1=x2={(-b/(2*a))”;d<0分支写入“因为判别式={d}<0,所以方程没有实根”。

这样程序就完成了一次解一元二次方程的过程。此外程序还提供给用户两个选择,即重新开始解另外一道题目还是退出程序。退出函数是“Quit()”,从头开始重新执行程序的函数是“Restart()”,分别输入到两个分支的计算图标中。

【注意】d>0是一个逻辑表达式,当d的当前值为5时,其结果为TRUE,交互分支被执行;当d的当前值为-2时,其结果为FALSE,交互分支不被执行。如果不写d>0,而写TRUE,这个交互分支总是能执行。如果写一个代数式计算结果为一个非零的数,也相当于TRUE,0相当于FALSE。

组合条件的表达中,“&”代表“且”,“|”代表“或”,“<>”代表“不等于”。如a大于0且不等于1,写作“a>0&a<>1”。再如b大于等于5或小于-5,写作“b>=5|b<-5”。

13.4.2 尝试次数交互和时间限制交互【案例13-13】

一组交互如果都设为“重新尝试”型(Try Again)时,程序将一直等待用户一次次尝试。但可以通过“尝试次数”交互对尝试次数加以限制或通过“时间限制”交互对等待时间加以限制,时间或尝试次数超过则退出交互。

如图13.20所示,【案例13-13】程序的主体是一个目标区域交互,前面已经做过。现在增加两个空组图标的交互分支,交互类型分别选“尝试次数”(Tries Limit)和“时间限制”(Time Limit)。

图13.20 尝试次数交互和时间限制交互

在“尝试次数”交互属性对话框“最大限制”(Maximum Tries)项中输入一个数字3,如图13.21所示,即只给用户三次尝试机会,不论对错,程序将自动退出循环。在“时间限制”交互属性对话框“时限”(Time Limit)项中输入一个数字如20,如图13.22所示,即过20秒钟,不论用户尝试了几次,程序自动退出交互。当“Game Over”展示图标内的内容出现,就知道程序退出了交互。

图13.21 尝试次数交互属性面板

在“时间限制”交互属性中,还可以选择选项中的“显示剩余时间”(Show Time Remaining)项,程序运行时会出现一个倒计时的时钟;选择“每次输入重新计时”(Restart for Each Try),程序每进行一次新的交互尝试,将重新开始计时。

图13.22 时间限制交互属性面板

13.4.3 按键交互

“按键”交互非常简单,它不需要鼠标点击,用户只要按键盘上的一个或一组键就可以激活交互,即定义一组热键。可以建立一个交互,选择“交互类型”为“按键”(Keypress)。在交互属性对话框中的标题文字框和“热键”(Key(s))框中,输入热键。

热键的设置技巧有以下几种。

(1)如果把字母A设为热键,则要设置成A|a,即大小写字母都有效。

(2)如果要设字母A和数字1都起作用,可设置成A|a|1。

(3)组合键的设置方法。如果希望按下【Ctrl】键的同时按【S】键,交互被激活,可以设置成【Ctrl】+【S】键(这里不必区分大小写)。【Alt】键的用法也类似。

(4)键名的写法一般与键盘上标明的一样,如【Esc】、【F2】、【Home】、【PgDn】、【Enter】、【Backspace】等键。但方向键有单独的写法,上、下、左、右(↑、↓、←、→)分别是UpArrow、DownArrow、LeftArrow、RightArrow。空格键敲进一个空格即可。

(5)如果希望任意键都响应,可以输入通配符“?”。

13.4.4 交互作用的激活

交互作用的激活是一种高级的用法。在交互属性按钮中,如果有“激活条件”(Active if)项,则可输入逻辑表达式。当逻辑表达式的值为TRUE时,交互起作用(被激活);当逻辑表达式的值为FALSE时,交互将不起作用,不论单击按钮还是按快捷键都不起作用。“激活条件”(Active if)项不填,交互默认为“激活状态”(相当于TURE)。

13.5 判断图标的应用

判断图标的主要作用是在Authorware中实现循环操作,它主要用于设置一种决策手段来控制程序的流程,如某些图标能否被执行,按什么顺序执行以及总共执行多少次等。Authorware中判断结构的实现与其他程序语言有所不同,在不使用变量和跳转函数的情况下同样能够实现对程序流程的控制。这里讲述判断图标的属性设置以及判断结构的应用。

在Authorware中,判断结构由判断图标和附属于该图标的其他图标共同组成。为了方便流程的组织和程序的修改,一般将群组图标拖动到判断图标的右侧,此时该群组图标成为分支图标。分支图标所处的分支流程称为判断分支,每个判断分支都有一个与之相连的分支符号,如图13.23所示。

13.5.1 用判断图标创建循环结构【案例13-14、13-15】

图13.23 判断分支

用“指向固定路径终点”的方式创建一个地球绕太阳运动的程序,但运动一圈之后就停止了。循环往复的运动就需要循环结构,用判断图标就可以创建。如图13.24所示,【案例13-14】加入一个判断图标,把运动图标下挂其下,这时程序依然还只能运动一圈。双击判断图标,打开属性对话框。“重复”(Repeat)项默认为“不重复”(Don’t Repeat),要想更改则有两种方法:一种是改为“固定次数”(Fixed Number of Times),并在其下填入数字,如填“100”,就转100圈;另一种是改为“直到点击鼠标或按键”(Until Click/Keypress),程序将一直循环,直到用户点击鼠标或按键。

【案例13-8】中,为计算6次结果,就要重复利用等待和计算图标,流程线很长。【案例13-15】中利用循环结构,在名称为“累加”的群组图标中放入等待图标和计算图标即可。程序因此而更简洁,还可以任意增加循环次数,如图13.25所示。

图13.24 使用判断图标创建循环结构

图13.25 利用循环结构简化程序流程

13.5.2 用判断图标创建分支结构【案例13-16、13-17】

判断图标下可下挂多个分支,每个分支可以是一个图标,也可以是群组图标中的任意多个图标。如果判断图标没有被设置为“不重复”(Don’t Repeat),那么将在分支结构“循环”(Repeat)项中定义次数。程序每次执行分支究竟会执行哪一个,是通过属性对话框的“分支”(Branch)项来定义的。如图13.26所示。

“分支”(Branch)项默认为“顺序”(Sequentially),程序将按分支1、分支2、分支3、分支4的顺序执行;当选择“随机分支路径”(Randomly to Any Path)时,每次都随机进入任意路径,并且可以重复进入某个路径。当选择“在未执行过的路径中随机选择”(Randomly to Unused Path)时,每次都随机进入任意路径,但只在还未进入过的路径中选择。当选择“计算分支结构”(To Calculated Path)时,将在下面填入数字或变量、变量表达式,其值为1时,执行第一条路径,其值为2时,执行第二条路径,依此类推。

图13.26 判断(决策)图标属性设置面板

【案例13-16】和【案例13-17】分别使用了顺序方式和随机方式,执行结果各不相同。

【注意】每个分支的对象执行后是否擦除,双击分支上的小“◇”标志,在“擦除内容”(E-rase Contents)项中设置。

图13.27 顺序分支方式

图13.28 随机分支方式

13.6 导航结构的应用

图13.29 Authorware外部导航与框架结构

Authorware提供了框架图标,如图13.29所示,利用该图标可以创建导航结构。框架图标能够将一些基本设计图标的功能综合在一起,对程序进行整体上的管理。导航结构还能够实现程序间的任意跳转。通过本节的学习用户将学会如何在Authorware中使用决策判断分支结构和导航结构。

在Authorware中,每一个附属在框架图标之下的图标都称为一个页,框架结构为页提供了管理模式,而且这些页是按照从左至右顺序排列的。当框架确定后,对页的控制则由其内部的导航图标来实现。通过框架图标与导航图标的相互配合,用户可以对程序所要跳转的方向和位置作出详细的控制,这种方法比使用Goto函数更加便捷和高效。

框架图标本身有一个内部导航结构。在流程线上双击框架图标,将打开如图13.30所示的框架图标内置导航结构。从该窗口中可以看出,框架图标是由显示图标、交互图标、导航图标以及按钮交互响应结构组成的。

图13.30 框架图标内置导航结构

13.6.1 默认导航按钮

如图13.31所示,①是返回按钮,②是最近页按钮,③是查找按钮,④是退出框架按钮,⑤是第一页按钮,⑥是上一页按钮,⑦是下一页按钮,⑧是最后页按钮。

13.6.2 用框架图标和定向图标创建翻页结构【案例13-18】

框架图标一般和导航图标配合使用。【案例13-18】中在程序线上放置一个框架图标,并下挂几个分支,每个下挂的分支图标叫做“页”,如图13.32所示。

图13.31 框架图标默认导航按钮

图13.32 创建翻页结构

执行程序,会出现默认导航按钮,这些按钮的位置、形状、大小、类型都可在中断程序后进行更改。要打开翻页结构图标,在其对应的每个导航图标上修改。导航图标的功能可以是指向框架图标下挂的“页”,也可以指向其他框架的下挂的“页”。导航图标可以放在框架以外的任意位置,但必须指向某个框架下的某个分支“页”。

框架结构内部可以放置任意的图标。程序执行进入框架,就不容易被框架以外的功能所干扰;退出框架时,程序又会恢复到进入前的状态。可以看出,框架具有很好的封装性。

13.7 利用交互对声音和数字化电影进行控制

13.7.1 声音图标【案例13-19、13-20、13-21】

使用声音图标可以引入一个声音文件。Authorware支持的声音文件类型有WAV、PCM、AIFF、SWA、VOX等。

拖放一个声音图标,双击打开属性对话框。单击左下角的“导入”(Import),找到所需的声音文件(比如WAV格式)。将“记时”标签下的“执行方式”设置为“等待直到完成”(Wait Until Done),则声音播放完成后才能执行下面的程序;选择“同时”(Concurrent)则声音开始后,同时继续执行后面的程序;选择“永久”(Perpetual)通常和同时类似,但它还可以监视“开始”(Begin)项中的条件,任何时候条件只要满足,声音就会发生。

“播放”(Play)项是对声音播放次数的设定。设“固定次数”(Fixed Number of Times),则可在下面填入数字或变量、变量表达式;设“直到条件为真”(Until True),则需填入逻辑表达式,当条件为真时,声音可以循环播放。

“速率”(Rate)项为变速播放,但有的声卡可能不可用。一般可以用25、50、100、150、200、250……这些数字,其中25为慢速,100为原速,100以上为快速。

“开始”(Begin)项中输入一个逻辑表达式,表达式的值为TRUE时,才可以播放。如果“执行方式”设置为永久,则程序将时刻监视条件的变化,一旦条件为TRUE,声音就开始播放。

【案例13-19】的“变量初始化”中设了一个Music=0作为开关。“音乐”图标中导入一个声音文件;“执行方式”设置为“永久”(Perpetual);“播放”(Play)项设为“直到条件为真”(Until True),填入Music=0;“开始”(Begin)项输入Music=1。含义为,当Music=1时,音乐开始播放,当Music=0时,音乐停止播放。

下面的交互中,“音乐开始”计算图标输入Music=1,“音乐停止”计算图标输入Music=0,如图13.33所示。

作为一种高级应用,还可以设置一个“音乐开关”复选按钮(改变按钮类型),其下包含一个顺序不重复型判断图标,两个分支的计算图标中语句分别为Music=1和Music=0。

【案例13-20】中给【案例13-6】加上声音反馈,对了返回一种声音,错了返回另一种声音,如图13.34所示。在【案例13-20】中,只要给每个选项下挂一个相应的声音图标就可实现。但是可以设想,如果选项很多,连续使用很多的声音图标,程序就会变得非常臃肿,因此,在【案例13-21】中,只使用两种声音图标各一次,用变量来控制其发声。当Tmusic=1时,发出正确的反馈音;当Fmusic=1时,发出错误的反馈音,声音发出后还要将变量回零。两个声音都要设为“永久”型,“开始”(Begin)项中分别填Tmusic=1和Fmusic=1,如图13.35所示。

图13.33 声音控制设置示例

图13.34 给【案例13-6】加上声音反馈

图13.35 用变量控制声音以简化流程

13.7.2 数字电影图标【案例13-22】

Authorware支持的数字电影格式有FLC、FLI、AVI、MPEG、DIB、PIC、MOV和Flash等。其中FLC、FLI、PIC格式的数字电影直接输入Authorware(内部文件),其他格式作为外部链接文件处理。

拖放一个数字化电影图标,双击打开属性对话框。单击左下角的“导入”(Import),找到所需的数字电影文件。

“电影”(Movie)标签中“层”(Layer)的设置与显示图标相同;“模式”(Mode)的设置分别为“不透明”、“边缘透明”、“透明”和“反色”,和显示图标也类似。

“计时”(Timing)标签的“执行方式”(Concurrency)设置不再赘述。

“播放”(Play)项对于不同的数字电影也有所不同;“重复”(Repeatedly)将重复播放动画;“播放次数”(Fixed Number of Times)为固定次数;“直到为真”(Until Ture)为重复播放直到条件为TRUE;“只有被移动时”(Only While in Motion)为数字电影被拖动或被移动图标驱动时才播放。

“速度”(Rate)项填入的数字或变量表达式表明每秒播放多少帧。如果速度为负值,数字电影将倒放。“起始帧”(Start Frame)和“结束帧”(End Frame)定义数字电影的播放范围。数字电影的总帧数在对话框的左边能看到,并且可以播放预览。如果“结束帧”比“起始帧”小,数字电影将倒放。

“版面布局”(Layout)标签定义数字电影的可移动性,与显示图标类似,数字电影可以像显示图标一样被移动和擦除。

数字电影本身是线性的,为了能够灵活控制,一般需要用一组“Media”打头的系统变量和函数来控制。这些变量和函数也可用于声音,但用法有区别,也不常用。

【案例13-22】制作一个动画播放器,带有像录像机一样的几个按钮。

初始化定义了两个变量,一个是Speed=24,一个是逻辑变量Pause=FALSE。动画图标属性中设置了“永久”性,并在Rate项中填入了变量Speed。“数字显示”动态显示变量{MediaPosition@“染色体动画”}和{Speed}。

在若干永久性交互中,“播放”计算图标写入:

“暂停/继续”计算图标写入:

回零(返回起始点)计算图标:

在下挂的“调速”组图标中完成一个输入交互,并把输入的值赋给Speed,如图13.36所示。

13.7.3 再谈Authorware程序的打包和发行

Authorware最终文件应该是一个能独立发行的可执行文件系统,包括打包后的程序文件和其他文件。如某个文件的最终打包发行文件结构如图13.37所示。

“.exe”格式的文件为打包后的主程序文件。和主程序在同一文件夹下,还应包含一个Xtras子文件夹,此文件夹及包含内容可以从Authorware系统文件夹中直接拷贝得到。程序使用的外部媒体如“素材三维电影.mpg”,应随程序发行,而其他嵌入内部的多媒体则不必。因为程序调用了MPEG格式的电影,因此需要“a5mpeg32.xmo”文件支持,并放在主程序所在文件夹中,此文件也可以在系统文件夹中找到。其他可能用到的支持文件、扩展函数文件也放在此文件夹。

图13.36 动画播放器的制作

图13.37 最终打包发行文件结构

【注意】Xtras子文件夹及其包含的内容,可通过菜单“命令”(Commands)→“查找Xtras”(Find Xtras)→“查找”(Find)→“复制”(Copy)得到。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈