為了移動屏幕上的物體,使用鍵盤控制是一種常用的方法。由于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 輸入按鍵示例
新聞熱點
疑難解答