系統函數實例介紹
在authorware中,系統函數是非常重要的,利用authorware提供的系統函數,讀者可以實現某些特定的功能,并可以將各種函數相組合來實現新的功能。在該部分內容中,我們將簡單地學習部分系統函數的語法規則和使用方法。
在該部分內容中,共學習如下內容:
實現程序跳轉的系統函數;
筆者在程序設計過程中最常用的一些系統函數及其應用實例。
在利用authorware進行交互式多媒體程序設計過程中,各程序模塊之間的跳轉和調用是非常頻繁的,authorware作為一個交互式多媒體設計的平臺,為編程人員提供了大量改變程序流程的函數來實現程序的跳轉和模塊之間的調用。下面首先讓我們來學習改變程序流程的系統函數。
步驟1 改變程序流程的系統函數:
(1) goto:
作用:將程序跳轉到某設計按鈕中,執行該設計按鈕中的內容。
語法格式:goto(iconid@"icontitle")
(2) jumpfile :
作用:將程序從程序的一個模塊文件跳轉到另一個模塊文件中去執行。
語法格式:jumpfile("filename", ["variable1, variable2, ?,"folder"])
(3) jumpfilereturn :
作用:將程序從一個模塊文件跳轉到另一個模塊文件中,執行完后一個文件后返回到原文件處。
語法格式:jumpfilereturn("filename", ["variable1, variable2, ?,"folder"])
(4) jumpout:
作用:退出authorware環境,執行program參數設置的程序。
語法格式:jumpout("program", ["document"] [,"creator"]))
(5) jumpoutreturn :
作用:執行program參數設置的程序,執行完該程序后,回到authorware環境中。語法格式:jumpoutreturn("program", ["document"] [,"creator"])
(6) jumpprintreturn :
作用:啟動參數program指定的程序,并打印document 參數中指定的文件,在文件打印完畢后,直接返回authorware環境。
語法格式:jumpprintreturn(["program"], "document" [, "creator"])
(7) quit
作用:結束當前運行的authorware程序。
語法格式:quit([option])
(8) quitrestart :
作用:退出子程序,從主程序的起始位置恢復運行主程序。
語法格式:quitrestart([option])
(9) restart:
作用:將程序跳轉到文件的起始位置,重新執行程序。
語法格式:restart()
步驟2 常用系統函數及其應用實例;
(1) displayicon
displayicon函數用來顯示一個設計按鈕內容,該函數同流程線上的設計按鈕一樣顯示一個設計按鈕中的內容。語法格式為:
displayicon(iconid@"icontitle")
如果讀者正在用一個計算的結果來確定顯示的對象時,該函數是非常有用的。在圖6-42所示的【運算】設計按鈕對話框中我們來實現這種控制。
圖6-42 使用displayicon函數顯示流程線上已經存在的設計按鈕
注意:
在我們的程序設計過程中,我們應該盡量使用displayicon函數來顯示流程線上已經存在的設計按鈕,不要重復地使用設計按鈕來顯示相同的內容。
(2) eraseicon:
同displayicon的性質和使用方法相同,唯一的不同是該函數是用來擦除設計按鈕的。
語法格式為eraseicon(iconid@"icontitle")
實例如圖6-43所示。
圖6-43 使用eraseicon函數擦除一個顯示在展示窗口中的設計按鈕
(3) find:
該函數的功能是在某一特定字符串內尋找符合某種模式的字符。如果在字符串中查找到該模式字符后,函數返回一個在特定字符串中查找到的第一個與所設定模式相匹配的字符的位置。語法格式為:number := find("pattern", "string")
實例1:
appleposition := find("apple","banana, orange, apple")
appleposition的返回值是17,因為與apple相匹配的字符串中的第一個字符的位置是字符串中的第17個字符(包括字符之間的空格)。
實例2:
lyric := "the rain in spain falls mainly on the plain"
start := find("?ain",lyric)
因為“?ain”同“rain”相匹配,所以start的值是5。
提示:
對于find函數的返回值,當沒有尋找到與設定模式相匹配的字符時,該函數的返回值為0。
(4) getline:
讀者可以將字符串作為一個小型數據庫來使用。利用getline函數,讀者可以從字符串中連續獲取信息。
語法格式:resultstring := getline("string", n [, m, delim])
下面請讀者以實例來學習該函數的使用方法:
文本文件phone.txt中的內容如下所示:
john<tab>smith<tab>555-1234<return>jane<tab>doe<tab>5555678<return>
sam<tab>spade<tab>555-9012<return>
為了取得該文件中的某一人的電話號碼,我們需要三個操作:
①讀取文件的內容。
②讀取行的內容。
③讀取行中某一區域的內容,該內容就是所需要的電話號碼。
下面讓我們來逐步實現上述操作:
filecontents := readextfile("phone.txt")
讀取文件的內容,存儲在變量filecontents中;
fileline := getline(filecontents, 2)
讀取文件內容的第二行,存儲在變量fileline中。
phone := getline(fileline, 3, 3, tab)
讀取第二行內容中的第3個區域的全部內容。以tab鍵來分隔區域。
變量fileline 的值是jane<tab>doe<tab>555-5678。
存儲電話號碼的變量phone 的值是555-5678。
(5) if then 條件判斷語句
條件判斷并執行。該函數可以根據不同的條件,來判斷執行不同的內容。通過使用該函數,可以為用戶的應用程序提供一種對變化的信息的觀察和判斷能力,從而實現靈活的程序的交互性。
該函數的語法格式有如下多種:
①if 條件1
then 任務1
end if
②if 條件1
then
任務1
任務2 …..
end if
③if 條件1
then 任務1 else 任務2
④if 條件
then 任務1…
else
任務n…
end if
⑤if 條件1 then
任務1…
else if 條件2 then
任務n…
else
任務m…
end if
下面讓我們來看一個實例:
if(明天旅游) then
(要準備食品)
(要準備現金)
else
(在家學習)
end if
源程序如圖6-44所示:
圖6-44 if-then 語句用于對條件做出決定
(6) insertline:
我們用getline()來從字符串獲取信息,用insertline來設置信息,insertline函數將一行插入到字符串中指定的位置。
語法格式為:result := insertline("string", n, "newstring", [delim])
實例為:
我們有兩個字符串,即字符串string1和string2。
string1:= "monday"^return^"wednesday"^return
string2:= "tuesday"
使用insertline函數將string2中的字符串添加到string1字符串中的第二行:
string3:= insertline(string1, 2, string2)
在【運算】設計對話框中的設置如圖6-45所示:
字符串string3的值為:"monday ^return^ tuesday ^return^ wednesday"
(7) quit():
在交互式多媒體作品中,我們關閉了用戶的菜單欄,使用了圖形界面。但是,當我們這樣做的時候,也取消了用戶使用authorware自帶的文件菜單來退出的能力。
為了讓用戶能夠順利的退出authorware程序,而不需要重新啟動計算機。我們在程序流程線上的【運算】設計按鈕中使用了quit函數。
語法格式為:quit([option])
在使用quit()函數時,不同quit()函數的參數可以達到不同的退出效果:
下面,請讀者學習該函數各參數的含義:
0:退出程序模塊,顯示程序管理器(windows 3.1)和桌面(windows 95或nt)。如果該程序模塊是由其它程序所調用的,則authorware返回調用它的程序中,繼續執行。
1:退出程序模塊,顯示windows 3.1程序管理器和windows 95桌面。
2:重新啟動計算機(windows 95 或nt)或返回dos(windows 3.1)。
3:關閉計算機(windows 95 或nt)或退出authorware程序,顯示windows 3.1程序管理器。
提示:
該參數是一個可選項,我們可以使用quit( ),不要任何參數,此時,authorware默認的參數是0。
注意:
請讀者注意,因為authorware遇到quit( )函數時,就立即退出應用程序,在quit( )函數后的源程序將被忽略。
(8) repeat while循環控制函數:
repeat while函數類似于if-then函數,該函數可以使authorware在讀者所設定的條件下運行某些功能。
repeat while(天下雨)
(帶雨傘)
end repeat
在此實例中,循環將繼續重復,直到天不下雨。
(9) writeextfile:
使用該函數來寫外部文件。該函數的語法格式為:
writeextfile("filename", "string")
提示:
讀者可以使用authorware變量filelocation和recordslocation來輔助設置或定位要讀寫的文件。
注意:
如果讀者以一個已經存在的文件名寫文件,那么該已經存在的文件將被覆蓋。
(10) random():
該函數用于生成一個隨機數。語法格式為:
圖6-46設置聲音播放的隨機次數
random(min, max, units)
其作用是生成一個介于min和max間的隨機數和兩個隨機數的小數點后的位數。
例如:當min ,max 和units分別為1,10和0.1時,產生的隨機數將類似于:1.2和5.8的數。
下面的例子中,我們將對聲音的播放進行控制,播放的次數隨機地從最多3次,最少1次,該控制可以在設置聲音的對話框中設置,如圖6-46所示在【fixed number of times】選項的正文輸入框中輸入隨機函數randow(1,3,1)來生成對聲音播放次數的控制。
新聞熱點
疑難解答