第五节 设置判断分支
本节要介绍“判断”图标,这也是除了“交互”图标和“框架”图标外,能够进行交互控制的最后一个图标。与“交互”图标和“框架”图标相比,“判断”图标的设置更为简单,用户需要重点掌握的只是它的重复次数和三种分支方式,即顺序路径、随机路径和运算路径。
一、准备工作—设置判断图标在进行实例讲解之前,首先要了解一下“ 判断 ”图标的具体设置,以便在后面的例子中能够灵活应用。下面我们分别讲解重复次数的设置及分支的设置。
流程线上放置一个“判断”图标,然后双击该图标,打开Prope-
rties:Decision Icon(判断图标属性)对话框 ,如图8.5.1所示。在Time Limit文本框中输入某个数值,这个数值就限制了程序执行“判断”图标所需的时间。同“等待”图标一样,单击Show Time Remai-
ning复选框,程序运行时,在窗口上会显示一个时钟。
图8.5.1 判断图标属性对话框打开Repeat下拉列表框 ,在列表框中显示“判断”图标提供的5种循环方式。如果选择Don’t Repeat(不重复)选项 ,Authorware执行完“判断”图标中的一条分支路径后就直接退出该判断结构,而不管“ 判断 ”图标设置的是何种分支;若选择Until All Paths Used(直到所有的路径都被执行)选项,Authorware就会在执行完所有分支路径后才会退出判断结构;如果选择Until Click/Keypress选项,在程序执行“判断”图标时,按下任意键或在屏幕上单击鼠标,Author
ware就会退出判断结构。
选择Fixed Number of Times或Until True选项时 ,下面的文本框变为可用,此时就可以进行循环次数及循环条件的设置了。
提示:选择Fixed Number of Times选项 ,在下面文本框中输入的数值就是“判断”图标循环的次数;选择Until True选项,在下面的文本框中您可以输入一个 变量或表达式 ,当变量或表达式的值为TRUE(真)时,Authorware就会退出判断结构;如果变量或表达式的值为FALSE(假),则Authorware将不断执行判断结构。
打开Branch下拉列表框,在其中显示Authorware支持的四种分支路径:Sequentially(顺序路径)、Randomly to Unused Path(随机执行未执行过的路径) 、Randomly to Any Path(随机执行任意路径)、To Calculate Path(运算路径)。
注意:路径的方式表现在“判断”图标上,如分支设置为顺序路径时,“ 判断 ”图标为
标记;若分支设置为随机路径时,“判断”图标为
标记或
标记;若分支设置为运算路径时,“判断”图标为
标记,即字母标志分别对应为S、R、U和C。
打开Branch下拉列表框 ,如图8.5.2所示 ,在列表框中有4个选项,这就是“判断”图标具有的4种分支路径 ,下面我们分别进行介绍。
图8.5.2 分支路径
(1)选择Sequentially选项, Authorware在执行“判断”图标时,将按顺序分别执行每一个分支,即按分支号从左至右开始执行。要使用此功能,必须将Reset Paths on Entry选项关闭。
(2)选择Randomly to Any Path选项,在程序执行时,Author-
ware随机选择任一分支来执行,因此不可避免的会将同一分支执行多次而有些分支从未执行过。
(3)选择Randomly to Unused Path选项,Authorware会在从未执行的分支中选择一条来执行,这样就会保证Authorware在重复执行同一分支之前,将所有分支执行完毕。选择此项时,同样要注意不能选择Reset Paths on Entry复选框 ,否则Randomly to Unused Path选项也将失去意义。
(4)选择To Calculated Path选项 ,可以在下面的文本框中输入变量或表达式,变量或表达式的值决定“判断”图标将执行哪一条分支。例如,变量或表达式的值是1 ,Authorware将执行第一分支,值是2,将执行第二分支。
提示:如果选择Reset Paths on Entry复选框,Authorware将重新设置已经执行过的路径。如果在一个应用程序中多处要使用该判断结构,而且每次还要重新设置分支路径的变量的值,选择此选项将非常有用。
同“交互”图标一样,在“判断”结构中也要对判断路径属性进行设置 。双击“判断”图标分支上的响应按钮 ,打开Properties:Decision Path(判断路径属性)对话框,如图8.5.3所示。 单击Erase Contents下拉列表框,里面设置了三种内容擦除方式。
图8.5.3 判断路径属性对话框
(1)Before Next Selection:选择此选项,程序在执行下一分支前擦除当前内容。
(2)Upon Exit:选择此选项,程序在退出“判断”图标时擦除当前内容。
(3)Don't Erase:选择此选项,当前内容将停留在屏幕上,除非使用“擦除”图标将其擦除。
单击Pause Before Branching复选框,当程序执行到“判断”图标时,在进入分支之前, 屏幕上将出现一个Continue (等待)按钮,只有在单击该按钮后,程序才会继续往下执行。
二、使用顺序路径制作实例“空当接龙”
在第4章已经举过一个纸牌游戏的例子 ,当时,是使用按键响应的方式制作的,在下面,我们来为此程序设置一个启动画面,即当游戏刚进入时,纸牌自动从左到右排列显示,如果你玩过空当接龙的游戏,对此画面可能再熟悉不过了。
如图8.5.4所示 ,当游戏启动后,屏幕上就会出现从左到右叠放的纸牌,纸牌的出现顺序是固定的,即纸牌2、3、4、9、7、8、10等依次弹出。
图8.5.4 游戏启动界面
在这个例子中,我们将使用顺序路径的方式来制作,这种方式有一个特点,即当程序执行“判断”图标时,首先要执行第一条路径,然后将此路径记下。当第二次执行“判断”图标时,将会执行第二条路径,将此路径也记下。若第三次执行“判断”图标时,就会自动执行第三分支路径,然后依此类推。根据这个特点,我们可以这样考虑该程序:由于纸牌的弹出顺序是固定的 ,因此 ,要达到画面上的效果,必须将纸牌2、3、4、9、7、8依次放于“判断”图标的右侧,这样,当“判断”图标顺序执行时,对应的纸牌才会像画面上那样逐个弹出。流程图如8.5.5所示。
图8.5.5 流程图
注意:“判断”图标同“交互”图标相似,它也能够创建分支路径,只不过它的路径只有一种,另外,它对路径的执行是靠判断来决定的。
提示:如图8.5.5中箭头所示 ,在“群组”图标中,我们依然要放置一个“显示”图标和一个“动画”图标,“显示”图标中放置对应的纸牌,同时使用“动画”图标来驱动纸牌的弹出。
双击“判断”图标,打开Properties:Decision Icon(判断图标属性)对话框 。如图8.5.6所示 ,选择Repeat下拉列表框中的 Until
Click/Keypress选项,则只有在单击鼠标或按下键盘后,分支路径的执行才会停止。选择Branch下拉列表框中的Sequentially选项,“判断”图标将从左至右执行分支路径。
图8.5.6 判断图标属性对话框
设置完Properties:Decision Icon (判断图标属性)对话框后,单击OK按钮返回流程线。双击分支上的响应按钮,打开Properties:Decision Path (判断路径属性)对话框,如图8.5.7所示,在Erase下拉列表框中选择Don't Erase选项 ,这样,当纸牌弹出后且在执行下一分支前,纸牌将不会消失。
图8.5.7 判断路径属性对话框
技巧:要达到上面的效果,也可以采用另一种办法:打开Proper
ties:Display Icon(显示图标属性)对话框 ,在Display选项卡中单击Prevent Automatic Erase选项。
进入“2”交互图标,然后双击“动画”图标,打开Properties:Motion Icon(动画图标属性)对话框,如图8.5.8所示,用鼠标拖动纸牌移到适当位置,然后单击OK按钮。另外,还要在Motion选项卡中设置纸牌运动的时间,比如1秒。
图8.5.8 设置动画过程
用同样的方法分别设置另外几个群组图标,应当注意的是要把纸牌移动的最后位置对齐,最后运行的画面要与图8.5.4相吻合。
三、使用随机路径制作实例“模拟题库1”
也许用户玩过掷骰子的游戏,每次掷完后,骰子的号码有可能不同,有时也会相同,很难找到规律,就像数学中的随机函数,令人无法琢磨、无法控制。在“ 判断 ”图标中也有一种与此类似的分支路径,这就是下面我们要讲的随机路径。当程序执行“判断”图标时,Authorware执行哪一个路径是无规律的,具有随机性。这种性质在实际生活中很有用,也比较常见,例如,大家都知道学校的考试中心有一个题库,每次考试出题时,老师们总会从题库里抽调一份试题作为考卷,而考试的内容有时也不免会出现重复的试题。这种抽调试题的方法就是利用了随机函数。
在下面的例子中,我们也来制作一个题库,不过这个题库不是用来刁难学生的 ,只不过用它来演示 一下题库调用具体是一个什么情况。不过事先要声明一下,一旦了解了题库调用的机密,可不要作弊哟!
前面已经提到过,“判断”图标的分支路径共有两种形式:一种是“判断”图标随意执行任意分支路径,不管前面是否执行过。另一种是“判断”图标任意执行未执行过的分支路径。假设题库里有10道题,如果我们的考卷要抽调5道选择题 ,并且在一份考卷内不能有重复的试题,因此就必须使用“判断”图标的第二种分支执行方式。
如图8.5.9所示 ,可以根据题目的要求编写流程线,由于题库共有10道题,因此我们使用十个“ 群组 ”图标构成10个分支来提供选择,在每个“群组”图标内,可以使用相同的流程结构,如“群组”图标“1”中所示 ,我们可以在“显示”图标中存放试题。使用“等待”图标可以使画面暂停 ,以便于观察试题 。在下面还要放置一个“计算”图标,我们用它来控制选择试题的数目,在后面再对其具体功能进行介绍。
图8.5.9 流程图
双击“判断”图标,打开Properties:Decision Icon(判断图标属性)对话框 ,如图8.5.10所示 ,在Repeat下拉列表框中选择Until
True选项,然后在下面的文本框中输入判断结束的条件“Ti=5”。然后在Branch下拉列表框中选择Randomly to Unused Path选项 。如果返回到流程线,用户会看到“判断”图标的标记变为。在此例中,我们使用变量Ti来控制选择考题的数目,也就是说 ,当变量Ti的值是5的时候,“判断”将退出,不再执行分支路径中的内容。
图8.5.10 设置重复次数
当关闭该对话框时,Authorware会弹出一个New Variable (新变量)窗口 ,要求用户对该变量进行初始化 ,如 图8.5.11 所示 ,在Initial Value文本框中输入数值0,然后单击“OK”按钮。
图8.5.11 变量初始化
提示:在此处我们令变量Ti=0 ,也就是定义了变量Ti从0开始记数,即试题从第一道开始抽调。
打开“计算”图标的文本框,如图8.5.12中箭头所示,在文本框中输入“Ti:=Ti+1”,如果用户学过某种编程语言 ,对此表达式可能不会陌生 ,实际上该表达式就是一个计数器 ,每当执行该表达式时,Ti的数值就会增加1,当它的值增加到5时,“判断”图标就会退出。
图8.5.12 设置计数器
提示:在每一个“群组”图标中都应该放置一个与此相同的“计算”图标,因为“判断”图标将随意执行其中的任意一条分支。只要执行了一条分支,变量Ti的值就会增加1,表示抽调了一道题。
在“ 群组 ”图标中我们还使用了一个“等待”图标,这个“等待”图标不是用来设置程序的,我们主要是用它来调试程序。在程序运行时,当Authorware每次进入一条分支路径时,都会执行“等待”图标 ,因此你可以打开Properties:Wait Icon(等待按钮属性)对话框 ,单击Events的Mouse Click复选框和Options下的Show Button复选框。在程序运行时,每当抽调一份试题,屏幕上就会出现一个等待按钮,单击该按钮,“判断”图标就开始执行下一条分支,当执行第五条分支后,程序将跳出“判断”图标,试题也抽调结束。
如果怀疑试题抽调是否 真的带有随机性质 ,可以多运行几次程序,然后单击等待按钮,逐步运行程序,观察是否每次抽调的都不一样。
四、使用运算路径制作实例“模拟题库2”
除以上两种方式外,我们最后要提到的是“判断”图标的运算分支路径,这种分支路径实际上提供了一种条件响应的方式,它可以根据在Branch文本框中的变量的值来决定“判断”图标要执行哪一条路径。
设置运算分支路径的方法很简单,你只需要在“判断”图标的属性对话框中选择Branch下的 To Calculated Path (设置运算路径)选项,然后在下面的文本框中输入相应的变量或表达式即可。但运算分支路径的使用比较麻烦,它需要根据不同的程序要求来设置不同的变量或表达式,这对多媒体制作者有一定的较高要求,虽然如此,但这种分支路径带来的灵活多变的执行方式确是有目共睹的。
“判断”图标执行运算分支路径的具体过程实际上也是按照分支的编号来进行的 ,所不同的是Branch 文本框中的变量的值代表“判断”图标的分支编号。如图8.5.13所示,如果变量或表达式的值等于1,例如图中的Number = 1,则Authorware就会执行第一条分支路径;如果变量式表达式的值等于5,即Number=5 ,则Authorware执行第二条分支路径;其余情况依次类推。
图8.5.13 设置变量
注意:如果变量或表达式的值等于0 ,则Authorware将直接跳出“判断”图标。
关于运算分支路径的例子我们不打算列举复杂的程序,下面把以上的例子做一下改动 ,希望通过这个例子能了解 运算分支路径的特点,并在以后的多媒体作品制作中做到举一反三。在下面的例子中,我们不再使用“判断”图标来随机控制试题的选择,在试题的选择方式上 ,我们采用试题编号的输入来控制题目的调用 。如图8.5.14所示,在流程线上,添加一个“交互”图标,同时使用文本输入响应来控制题目的调用,比如,在程序运行时的文本输入框内输入1 ,程序就会调用第一道试题,输入2 ,程序就会调用第二道试题。如图8.5.
14中的“计算”图标所示,我们使用变量No来接受从键盘上输入的数值,然后将该变量送到下面的“判断”图标中去。
图8.5.14 流程图
另外,还应注意两点,首先是在程序的最后设置了一个“显示”图标,利用它来显示程序何时退出;其次,在“计算”图标文本框中输入结束后,单击“关闭”按钮,在弹出的新变量的窗口中输入变量的初值为0。
打开“判断”图标 ,在Repeat 下拉列表框中选择Until True选项,然后在下面的文本框中输入重复条件Ti>= 5,即当试题抽调五套时跳出“判断”图标。打开Branch下拉列表框 ,选择To Calculated
Path选项,然后在下面的文本框输入控制变量No,如图8.5.15所示。
图8.5.15 设置控制变量
注意:此处的变量No与上面的“No :=NumEntry”中的No对应,当键盘输入数值赋予No后,其数值将直接控制“判断”图标要执行的路径。
在输入一次数值后,程序往往不能继续要求进行输入,因此,还要使用前面曾经提到过的跳转返回函数GoTo。如图8.5.16所示,打开“1”群组图标中的“计算”图标 ,在文本框中再加上一条语句“Go
To ( IconID@‘ 选题 ’) ” ,这样 ,在每次抽调完一次试题后,Authorware将由GoTo函数跳转到程序的最前面“试题”图标处等待继续输入。同样道理,在“判断”图标每一个分支中的“计算”图标中都要输入此语句。也许你会问,每一分支中都使用跳转函数,程序不就变得永远结束不了了吗?不要忘了,在图8.5.15的条件文本框中还设置了判断结束的条件“ti>=5” ,因此 ,当“判断”图标执行5次后,将自然退出判断结构。
![]()
图8.5.16 设置程序跳转
注意:如果设置的变量或表达式的值为一个小数,则Authorware只取整数部分的值。例如,当设置的变量或表达式的值为4.35或4.65时,Authorware会执行第四条分支路径。