9.2.3 按键响应实例
为了移动屏幕上的物体,使用键盘控制是一种常用的方法。由于 4 个方向键和 Esc 键在 Authorware 6.0 中对应的键名分别是 UpArrow , DownArrow , LeftArrow , RightArrow 和 Esc ,因此通过上述键名就可以控制对象的移动。在本例中将移动对象确定为红色的圆球,并将移动的区域定义为一个 4 × 4 的正方形网格。当圆球到达网格的边缘时,要求它不再移动。为了实现这一点,可在按键响应的属性对话框内定义按键响应的条件。
通过按键移动对象
(1) 单击 New 按钮,创建新的课件文件。
(2) 将计算图标拖动到流程线上,并命名为“定义变量”。
(3) 双击“定义变量”图标,在编辑窗口内输入“ x : =1 、 y : =1 ”。
(4) 将显示图标拖动到“定义变量”图标的下方,并将它命名为“底图”。
(5) 双击“底图”图标,打开演示窗口。
(6) 选择绘图工具的矩形工具之后,在演示窗口内绘制正方形。
(7) 选择绘图工具的直线工具之后,将正方形分成 16 等份 ( 如图 9-14 所示 ) 。

图 9-14 将正方形分成 16 等份
(8) 将显示图标拖动到“底图”图标的下方,并将它命名为“圆球”。
(9) 双击“圆球”图标,打开演示窗口。
(10) 在演示窗口内使用椭圆绘图工具绘制圆形。
(11) 使用红色填充圆形。
(12) 将交互图标拖动到“圆球”图标的下方,并命名为“移动圆球”。
(13) 将群组图标拖动到“移动圆球”的右侧,打开 Response Type 对话框。
(14) 选中 KeyPress 单选按钮之后,单击 OK 按钮打开的对话框。
(15) 将群组图标命名为 UpArrow 之后,双击按键响应的标识符,打开 Properties:Response 对话框。
(16) 在 Response 选项卡内,在 Active If 文本框内输入“ Y<=3 ”。
(17) 打开 Erase 下拉列表框,选择 After Next Entry 。
(18) 打开 Branch 下拉列表框,选择 Continue 。
(19) 打开 Status 下拉列表框,选择 Not Judged ( 如图 9-15 所示 ) 。

图 9-15 设置 UpArrow 图标的响应属性
(20) 关闭打开的 Properties:Response 对话框。
(21) 双击 UpArrow 群组图标,打开二级流程窗口。
(22) 将计算图标拖动到二级流程线上,并命名为 y+1 。
(23) 双击计算图标,在编辑窗口内输入 y : =y+1 之后,关闭打开的编辑窗口。
(24) 重复上述 (13) ~ (23) 步的操作,在“移动圆球”交互图标的右侧添加 DownArrow 群组图标,在按钮响应的属性对话框内将 Active If 修改为 y : =y–1 。
(25) 重复上述 (13) ~ (23) 步的操作,在“移动圆球”交互图标的右侧添加 RightArrow 群组图标,在按钮响应的属性对话框内将 Active If 修改为 x : =x–1 。
(26) 重复上述 (13) ~ (23) 步的操作,在“移动圆球”交互图标的右侧添加 LeftArrow 群组图标,在按钮响应的属性对话框内将 Active If 修改为 x : =x–1 。
(27) 将计算图标拖动到 RightArrow 图标的右侧,打开 Response Type 对话框。
(28) 选择 KeyPress 单选按钮之后,单击 OK 按钮,关闭打开的对话框。
(29) 将计算图标命名为 Esc 之后,双击打开编辑窗口。
(30) 在编辑窗口内输入 Quit (1) 。
(31) 双击 Esc 图标的响应标识符,打开 Properties:Response 对话框。
(32) 在 Response 选项卡内打开 Branch 下拉列表框,选择 Exit Interaction 。
(33) 单击 OK 按钮,关闭打开的 Properties:Response 对话框。
(34) 将群组图标拖动到 Esc 图标的右侧,打开 Response Type 对话框。
(35) 选中 Continue 单选按钮之后,单击 OK 按钮,关闭打开的对话框。
(36) 将群组图标命名为 True 。
(37) 双击 True 图标的响应标识符,打开 Properties:response 对话框。
(38) 在 Response 选项卡内打开 Branch 下拉列表框,选择 Continue 。
(39) 单击 OK 按钮,关闭打开的 Properties:Response 对话框。
(40) 双击 True 群组图标,在其中添加一个移动图标,将命名为“移动”。
(41) 执行课件文件,当演示窗口内出现正方形方格与圆球时,双击移动图标,打开 Properties:Motion Icon 对话框。

图 9-16 Properties: Motion Icon 对话框
(42) 选择 Layout 标签,打开 Layout 选项卡。
(43) 选中 Base 单选按钮之后,将演示窗口的圆球拖动到左下角的方格中心处。
(44) 在 Base 右侧的文本框内输入 (1 , 1) 。
(45) 选中 End 单选按钮之后,将演示窗口的圆球拖动到右上角的方格中心处。
(46) 在 End 右侧的文本框内输入 (4 , 4) 。
(47) 选中 Destination 单选按钮之后,在右侧的文本框内输入 (x , y) 。
(48) 选择 Motion 选项卡,在 Timing 文本框内选择 Time (sec) 。
(49) 在 Timing 下方的方框内输入 0.5 ,表示逐格移动的时间为 0.5 秒。
(50) 打开 Concurrency 下拉列表框,选择 Concurrent 。
(51) 打开 Beyond Range 下拉列表框,选择 Stop at Ends 选项,如图 9-17 所示。
(52) 单击 OK 按钮,关闭打开的 Properties:Motion Icon 对话框。
(53) 至此,得到如图 9-18 所示的课件流程图。

图 9-17 设置移动图标的 Motion 选项卡

图 9-18 课件流程图
(54) 播放、测试并保存课件文件。
播放课件时,首先红色的圆球出现在演示窗口的左下角,单击四个方向键之后,可以逐格移动圆球,并且圆球不会突破正方形定义的区域。在此采用的坐标系是这样的:水平向右为 X 轴的正方向,垂直向上为 Y 轴的正方向,并且将坐标原点定义在演示窗口的左下角。因此向右移动一格时, X 加 1 ,向上移动一格时, Y 加 1 。由于将 X<=3 及 Y<=3 作为按键响应的条件,因此圆球是无法超出自定义的区域的。
由于键盘的键名与 Authorware 6.0 的按键具有对应关系,因此可通过 {Press} 系统变量接受键盘的键名,然后将它显示在演示窗口内。为了开始播放课件,可以在接受键名之前,添加一个名为“开始”的按钮,当也可以刷新当前的屏幕。
按键响应示例
(1) 单击工具栏的 New 按钮,创建新的课件文件。
(2) 将计算图标拖动到流程线上,命名为“窗口大小”。
(3) 双击“窗口大小”图标,打开编辑窗口。
(4) 在其中输入 ResizeWindow(300 , 240) 。
(5) 关闭编辑窗口。
(6) 将显示图标拖动到“窗口大小”的下方,将它命名为“背景”。
(7) 双击“背景”图标,打开演示窗口。
(8) 使用 Ctrl+Shift+R 组合键导入一幅图片作为背景。
(9) 将显示图标拖动到“按钮”图标的下方,并命名为“提示”。
(10) 双击打开“提示”图标的演示窗口,在其中输入“请按任意键”。
(11) 将“提示”图标的内容设置为透明。
(12) 将交互图标拖动到“背景”图标的下方,命名为“按键”。
(13) 将显示图标拖动到“按钮”图标的右下角,打开 Response Type 对话框。
(14) 选中 Button 单选按钮之后,单击 OK 按钮。
(15) 将显示图标命名为“开始”按钮。
(16) 双击“开始”按钮上方的交互标识符,打开 Properties:Response 对话框。
(17) 单击 Response 标签,打开 Response 选项卡。
(18) 启用 Scope 选项组中的 Perpetual 复选框。
(19) 打开 Branch 下拉列表框,选择 Exit Interaction 。
(20) 单击 OK 按钮。
(21) 将计算图标拖动到“开始”图标的右侧,并命名为“退出”。
(22) 双击“退出”图标,打开计算图标的编辑窗口。
(23) 在编辑窗口内输入 Quit (1) 。
(24) 关闭编辑窗口之后,得到如图 9-19 所示课件的流程图。
(25) 将交互图标拖动到“按键”图标的下方,命名为“应答”。
(26) 将显示图标拖动到“应答”图标的右下方,打开 Response Type 对话框。
(27) 选中 KeyPress 单选按钮之后,单击 OK 按钮。
(28) 将显示图标命名为“?”。
(29) 双击“ ? ”图标上方的交互标识符,打开 Properties:Response 对话框。
(30) 单击 Response 标签,打开 Response 选项卡。
(31) 打开 Erase 下拉列表框,选择 Don't Erase 选项。
(32) 打开 Branch 下拉列表框,选择 Try Again 选项。
(33) 单击 OK 按钮,关闭打开的 Properties:Response 对话框。
(34) 运行课件,按住 Shift 功能键之后,双击“?”图标,使它处于编辑状态。
(35) 在演示窗口内输入“你在键盘上输入的键名是 {key} ” ( 如图 9-20 所示 ) 。

图 9-19 课件的流程图 图 9-20 编辑“?”图标
(36) 将“?”图标的内容设置为透明。
(37) 播放、测试并保存课件,得到如图 9-21 所示的课件流程图。
由于将“提示”及“?”图标的内容都设置为透明,这样无论是“请按任意键”,还是“你在键盘上输入的键名是”及其内容下方的背景中都能够显示出来,如图 9-22 所示。

图 9-21 课件流程图 图 9-22 输入按键示例