该分支下的显示图标中显示“no, try again”的文字,其附属运算图标中的代码如下:
user answers:=user answers^lastobjectclicked^tab
其中lastobjectclicked 是一个系统变量,保存了用户单击的显示对象的设计图标标题。例如,如果用户单击了答案a,则该变量中保存答案a所在的显示图标的图标标题“this is answer a”;同理单击答案b或答案c则变量中保存的是“this is answer b”或“this is answer c”。
由于user answers变量用于保存用户选择的答案,连接运算符“^”的应用使用户每次选择的答案均被累计到user answers变量中,并且每个答案之间以一个“tab”符号为间隔。
程序在保存了选择答案并显示了“no,try again”后返回交互入口处等待用户的又一次选择。
及时点评 true条件交互响应虽设置为永久有效,但其automatic栏选择了off,这表示关闭了分支的自动响应方式,因此进入交互后并不自动进入该分支显示出“no,try again”的文字。只有当用户作出了响应后仍满足目标条件,系统才执行本条件响应的结果图标。所以用户单击答案a或答案c后,程序进入true条件响应分支显示出“no,try again”的文字提示。
另外,用户每次选择的答案能被累计保存下来,是因为每个答案单独放在一个显示图标中,并且答案文字与显示图标标题文字完全一样,故lastobjectclicked变量的应用将答案保存了下来,然后用一个连接运算符^将每次答案累加到user answers变量的末尾,每个用tab键隔开。这样便实现了跟踪并记录用户每次选择结果的目的。
【question #1】交互响应图标下的【+b was chosen】分支用于处理正确答案选择。
【+b was chosen】也是一个热物体交互响应分支,其交互响应属性设置如图24-7和图24-8所示。
图24-7 【b was chosen】正确交互响应属性设置对话框的hot object选项卡
图24-8 【b was chosen】正确交互响应属性设置对话框的response选项卡
由图24-7可知,该交互响应以“this is answer b”(即答案b)作为热物体,单击答案b或者按下b键(或b键、2键)均可产生响应,鼠标移入时变为手形,单击答案b键时“this is answer b”呈现高亮度显示。
由图24-8可知,该分支状态为正确响应(correct response),故其标题前面有一个“+”号,且分支执行后往右跳转。
该分支下为一个空群组图标,因此,用户单击答案b后,程序进入本分支后并不执行具体操作便往右跳转。
【question #1】交互响应图标下还有一个“choicenumber=correctchoice”条件交互响应分支,其响应条件为:用户单击的分支为正确响应分支。因此,当用户单击答案b时,程序进入本分支。
进入本分支后,将所选答案累加至user answer变量中,然后退出本交互响应。
及时点评 【question #1】交互响应图标下有两个条件交互响应分支,虽然【ture】条件交互响应分支永久有效,但其分支位置在【choicenumber=correctchoice】条件交互响应分支的右边。因此,当用户单击正确答案b时,【choicenumber=correctchoice】分支将首先产生匹配进入本分支而不会进入虽然一直有效的【true】分支。如果将【true】分支移到前一位置,【choicenumber=correctchoice】分支将永远不会产生响应,这里体现了条件交互响应分支在交互图标中前后位置的重要作用。
在流程最后的【display results】显示图标中,嵌入了如下内容:
for {question title}the user responded with:
{user answers}
it took the user {tries}tries and {timeininteraction} seconds
before selection the correct response
其中:questiontitle变量保存了当前执行的设计图标标题question#1;user answers变量中保存了用户各次选择的答案;tries系统变量保存了交互响应分支响应的次数;timeininteraction系统变量保存了本交互响应中所花费的时间。
因此,考生答题的整个操作过程在此一一显示出来,如图24-9所示。
图24-9 用户答题结果显示
本程序流程中设计了一个仅含有一个【replay question】按钮交互响应分支的交互响应图标,该流程包含在【run to view documentation】群组图标中,如图24-10所示。
图24-10 【replay question】流程
【replay question】按钮交互属性设置对话框如图24-11所示。
图24-11 【replay question】按钮交互响应属性设置对话框
由图24-11可知,按钮响应永久有效,受控条件为“~within“@ question #1” ”。即程序在进入question #1交互响应中进行答题时,该按钮是无效的(呈灰色),而当退出答题交互图标后,该按钮为有效状态。用户此时单击它,程序跳转到起始处,重新开始。
本例对考生答题过程进行跟踪并记录,最后显示出答题结果。本例主要应用了如下技术:
l 正确与错误响应分支的设置
l 条件交互响应的设计
l 热物体交互响应的设计
l 用户答题过程的跟踪与记录
l 按钮有效状态的控制
l 交互响应次数与执行时间的获得与显示
新闻热点
疑难解答