为了移动屏幕上的物体,使用键盘控制是一种常用的方法。由于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 输入按键示例
新闻热点
疑难解答