實例一:decision類,pathcount和repcount變量:
本實例是利用pathcount來存儲當前【判定】分支結構中反饋分支的總個數,repcount用了存儲所執行的反饋分支的次數。使用這兩個變量,我們可以計算出在該【判定】分支結構中,authorware退出該分支結構之前運行的反饋分支占分支總數的百分比。程序的邏輯結構如圖6-17所示。
要實現這種任務,我們需在分支結構的【運算】設計按鈕中輸入如下內容:
圖6-17 實例一程序邏輯結構
這里的percentcomplete為一個自定義變量,使用該變量來存儲athorware所執行過的分支結構反饋分支占反饋分支總個數的百分比。
我們可以在圖6-17所示的“顯示比例”【顯示】設計按鈕正文對象中插入該變量來顯示百分比。
實例二:file類:filelocation變量
filelocation變量包含運行程序模塊所在的路徑。例如:讀者所執行的程序模塊路徑為:“d:/authorware/test/examp618.a4p”,則filelocation變量中存儲的就是“d:/authorware/test/”。
該實例的內容是將用戶輸入的用戶名(username變量)、日期和成績寫入與所執行的程序模塊在同樣路徑的studentdata.txt文件中。
在程序的【運算】設計按鈕中輸入的內容如圖6-18所示:
我們利用writeextfile("filename", "string")函數將用戶輸入的信息寫入文件中:
圖6-18 實例二的程序設計
writeextfile("filelocation^studentdata.txt", "username^tab^date^tab^score")
提示:
在該函數中,符號“^”表示將該符號前面和后面的字符串連接起來,我們將在后面學習authorware支持的運算符號。
提示:
“tab”鍵為該學生的各個信息之間在寫入文件時提供一個間距。
實例三:framework類,currentpageid變量:
currentpageid變量是一個數值型變量,用于存儲當前顯示頁的設計按鈕id標識;我們可以使用其引用變量來存儲指定頁的設計按鈕id標識。
本實例中,我們使用currentpageid變量存儲的值來標記框架結構中的頁,以便于在今后的程序運行過程中返回這些頁,被標記的頁的標識號存儲在bookmark列表中,程序的邏輯結構如圖6-19所示:
圖6-19 實例三程序邏輯結構
在make bookmark【運算】設計按鈕對話框中輸入如下內容:
bookmark=insertline("bookmark",0, currentpageid)
該表達式的意思是向bookmark中添加一個新頁的id標識。
在goto mark設計按鈕中包含一個【運算】設計按鈕,其中的內容如下:
mark=getline(bookmark,1)
bookmark=deleteline(bookmark,1)
這兩個表達式的含義是得到最新加入到bookmark列表中的頁,然后再從列表中將該頁的標識從列表中刪除。經過這樣的設置后,【定向】設計按鈕就會跳轉到mark 標記的頁中來執行該頁中的相關反饋信息。
注意:
該實例中的三個函數insertline()、 getline()和deleteline()的具體使用方法參見附錄。
實例四:general類,clickx和clicky變量:
當用戶最后單擊鼠標按鈕時,clickx包含從展示窗口左側邊框到鼠標點的位置的像素數,clicky包含從展示窗口上側邊框到鼠標點的位置的像素數,如圖6-20所示。
圖6-20 變量值的實際含義
其中圖6-20中的黑色邊框為展示窗口。
使用該變量,我們可以在游戲的制作中將一個大的區域劃分為許多小的區域,并可以確定用戶在哪一個區域中敲擊了鼠標。從而,確定程序的運行方式。具體的劃分區域的方法如圖6-21中的【運算】設計按鈕對話框中的內容。
圖6-21用clickx和clicky去發現用戶最后單擊鼠標的位置
使用該對話框,我們可以將展示窗口劃分為20個像素寬的正方形小方格,當用戶單擊了鼠標后,我們就可以知道用戶單擊鼠標在方格中的位置。
實例五:graphics類:layer變量:
layer變量用于存儲當前(或指定的)【顯示】設計按鈕、【交互作用】設計按鈕、【數字化電影】設計按鈕所處的層數。在該實例中,我們在程序中插入一個數字化電影,使用layer變量的引用變量來設置數字化電影的層級別,使數字化電影的每一幀圖像必須位于“背景”【顯示】設計按鈕中顯示對象的前面。為了實現該特殊要求,操作步驟如下:
(1) 選擇數字化電影設計按鈕,使其高亮。
(2) 執行authorware所提供的【modify】菜單中【icon】子菜單的【properties】命令(快捷鍵為ctrl+i),或者用鼠標雙擊該【數字化電影】設計按鈕,彈出圖6-22所示的【數字化電影】屬性對話框。
圖6-22 設置【數字化電影】層的級別(設置層間相互關系)
(3) 在該對話框的【layer】正文輸入框中輸入:
layer@"背景"+1
(4) 單擊【ok】命令按鈕結束設置。
使用這種設置,當程序運行時,數字化電影所播放的每一幀都在“背景”【顯示】設計按鈕中所顯示對象的前面。
實例六:icons類,displayx和displayy變量:
這兩個變量存儲的是特定設計按鈕內顯示對象的中心與展示窗口邊框的距離。displayx變量存儲的是顯示對象中心與展示窗口左邊框的距離,以像素點為單位;displayy變量存儲的是顯示對象中心與展示窗口上邊框的距離,以像素點為單位。
程序的邏輯結構如圖6-23所示。在該實例中,我們在“circle”【顯示】設計按鈕中繪制一個填充為藍色的圓,設置該圓可以在一定區域中移動(使用【in aera】選項),然后設置一個【等待】設計按鈕,給用戶一個能移動圓的時間,在“圓在展示窗口的位置坐標”【顯示】設計按鈕中輸入正文對象,在正文對象中插入引用變量。如圖6-24所示。
圖6-24在正文對象中插入引用變量
程序的運行結果是:當用戶移動圓到不同的位置時,在展示窗口的左上角將出現對象最終顯示位置的坐標。程序的運行結果如圖6-25所示。
圖6-25程序的運行結果
實例七:interaction類,entrytext變量:
entrytext變量存儲的是最后在文本輸入對話框中用戶輸入的文本。讀者在創建一個文本輸入對話框時,為了獲得用戶在文本輸入對話框中輸入的內容,需要使用該變量。
該實例是讓用戶從一個交互作用的文本輸入響應類型上輸入姓名和學號,然后程序讀取用戶的學號和姓名,再將姓名和學號顯示在展示窗口中。程序的邏輯結構如圖6-26所示。
使用【交互作用】分支結構的正文輸入響應讓用戶輸入相應的內容。
【運算】設計按鈕中使用entrytext變量將用戶輸入的內容賦給相應的變量。如:username等。【運算】設計按鈕對話框中輸入的內容如圖6-27所示。
在該對話框中我們輸入username:=entrytext
同樣,在下一個【運算】設計按鈕中輸入如下內容:
userid:=entrytext
然后在“回顯”【顯示】設計按鈕中顯示用戶輸入的內容。
圖6-27 【運算】設計按鈕中的輸入內容
實例八:time類,fulldate變量:
該變量存儲的是計算機系統當前的日期,其格式"1998年9月29日"。要在應用程序的演示過程中顯示計算機系統當前的日期,則可以在正文輸入對象中插入變量{fulldate}。
實例九:video類,videodone變量:
videodone變量是一個邏輯型的變量,該變量有兩種值,一種是true,另一種是false。在當前的視頻信息播放結束時,該值為true。為了在程序執行到另一個設計按鈕之前完成某個視頻信息的播放,可以設置一個判定分支結構,并在圖6-28所示的對話框中的【until true】正文輸入框中輸入videodone。例如,要使某個視頻信息播放完畢后,立刻播放另一段視頻信息,則可以在圖示的對話框中進行設置。
圖6-28 videodone使用實例
除了上面讀者所學習的九大類中的九個變量的實例外,在下面請讀者熟悉筆者在工作中經常使用的幾個變量。
(1) choicenumber:authorware中的系統變量choicenumber存儲的是當前交互循環中用戶匹配的最后響應的編號,響應路徑從【交互作用】設計按鈕的左邊至右邊依次編號,編號從1號開始。
我們可以使用該變量來判定是否要顯示特定的反饋。例如,如果用戶匹配的響應是交互作用中的前三個響應中的任意一個,那么程序將快放這三個反饋分支中的內容。否則,以正常速度播放,如圖6-29所示,條件響應的類型可以設置為表達式:choicenumber<4。
圖6-29choicenumber在條件響應中的使用
注意:
在程序中,我們要隨時跟蹤choicenumber的使用位置,如果在交互分支結構中,增加或減少了路徑的個數,則需要對表達式進行修改
(2) hottextclicked:當用戶用單擊或雙擊作為觸發條件來敲擊文本的觸發器時,hottextclicked存儲用戶單擊或雙擊觸發的敲擊文本。
使用該變量可以為讀者作品中的目錄創建超級鏈接。當用戶單擊熱文本時,可以使用【導航】設計按鈕在框架結構中查找每一頁上的關鍵詞是否為hottextclicked所存儲的值,如果找到該值,則程序模塊就跳轉到該頁中去執行相應的內容。
(3) iconid: iconid變量存儲的是特定設計按鈕的唯一的數字標識符。當【導航】設計按鈕與一個【運算】設計按鈕一起使用時,該變量具有決定性的意義。
該變量還可以連接其它的變量和函數。例如讀者可以使用【擦除】設計按鈕來擦除基于該變量值的一個設計按鈕中的對象。使用方法如圖6-30所示。
圖6-30 使用iconid命令返回設計按鈕的id標識
(4) lastlineclicked:lastlineclicked存儲的是用戶單擊一個文本對象的某一行的行號。行是用回車符定義的。
讀者可以利用該變量的特性,來創建一個書簽系統。當用戶單擊一個書簽名列表中的某一行文本時,authorware利用該變量來識別單擊的是哪一行。然后,我們可以通過所在行數來得到其它相關的信息,從而,執行與該行有關的雙擊按鈕。
(5) timeoutlimit:在程序跳轉到由系統函數timeoutgoto指定的設計按鈕之前,timeoutlimit以秒為單位來標志模塊等待用戶某種類型活動的時間量。
在演示會和展覽會上,我們可以用該變量來控制系統空閑多長時間。一旦控制時間到,程序將跳至指定的雙擊按鈕來執行該設計按鈕中的內容。如圖6-31所示。
圖6-31 timeoutlimit控制系統空閑時間
|
新聞熱點
疑難解答