本節我們一起討論authorware 6.5程序語句的基礎知識與相關的語句編寫技巧等。
一、預備知識
authorware 6.5的程序語句一般都是在計算代碼編輯器里編寫完成并執行的,如圖1所示。除了計算圖標外,其它圖標都有附帶執行計算代碼的功能,選擇該圖標后按快捷鍵“ctrl”+“=”即可調出附帶計算代碼編輯器。
二、基本語法與結構
1.注釋符"--"
一目了然的注釋既能增強程序的可讀性,又可以方便設計者日后對程序代碼的修改與維護。authorware計算代碼中默認"--"后面即為注釋文本內容,在程序執行中并不被執行。強烈建議大家養成良好的程序注釋習慣!
2.運算符
authorware涉及的運算符號主要包括賦值運算符、關系運算符、算術運算符、連接運算符、邏輯運算符共五大類。
(1)賦值運算符":="
把賦值運算符右邊的值賦予左邊的變量,例如variable:=value即把右邊"value"的值賦予左邊的變量"variable",這種運算關系可以包括數值、字符串文本等各種authorware支持的數據類型的賦值。
語法范本:a:=10
list:=[1,2,3,4,5,6]
popuphandle:=tmscreatepopuplist(windowhandle)
(2)關系運算符:=(等于)、<>(不等于)、<(小于)、>(大于)、<=(小于或等于)、>=(大于或等于)。
對兩個值(例如字符串、數值等)進行比較并返回一個邏輯比較結果true(1)或false(0),一般用于條件分支判斷。
語法范本:a<>b(a不等于b)
(3)算術運算符:這類運算符主要是完成程序中一些基本的算術演算,包括有+(加)、-(減)、 *(乘)、/(除)、**(乘方)。
語法范本:3+5*20(即3+5×20=103)
(4)連接運算符"^":主要用于兩個或多個字符串之間的連接。
語法范本:a:="authorware"^"6.5"(即a的值為"authorware6.5")
(5)邏輯運算符:~(邏輯非)、&(邏輯與)、|(邏輯或)。
這類運算符主要是完成兩個邏輯值的比較操作,比較返回的結果是true(1)或false(0),一般用于條件分支判斷。
語法范本:a&b(假如a=1,b=0,則a&b的邏輯值為false,即0)
最后我們還要介紹一下運算符的優先級問題,這在復雜的運算表達式中尤為重要。authorware中運算符的優先級問題一般遵循以下原則:(左邊最高,右邊最低)
() 、~ 、** 、*或/ 、+或-、 ^、 =或<=或>=或<>或<或>、 &或|、 :=
其中括號的優先級別最高,而賦值符則最低。
例如:n:=(3+4/2)>1&5*2>25
其運算順序是:3+4/2=3+2=5 → 5>1中間結果a為true(1) →
5*2=10>25中間結果b為false(0) →
a&b=true&false=1&0=0,最后結果n即為false(0)
3.條件/循環判斷語句結構
通過條件/循環判斷語句可以控制程序流程的執行方向,完成不同的分支任務。authorware 6.5主要包括如圖2所示的條件/循環判斷語句結構。
圖 2
(1)條件判斷語句
顧名思義條件判斷語句就是用于某種事件或者結果的判斷上,并根據判斷結果決定執行哪條分支動作,條件判斷語句結構一般以if開頭,而以end if結束。例如:
if a>10 then
displayicon(iconid@"hello")
else
eraseicon(iconid@"good")
end if
如果a>10的情況下則執行displayicon(iconid@"hello")語句顯示顯示圖標"hello"的內容;否則執行eraseicon(iconid@"good")語句擦除顯示圖標"good"的內容。
一條件判斷語句下允許鑲嵌多重更復雜的條件判斷語句,例如下面的代碼:
if 條件1 then 執行語句1
else if 條件2 then 執行語句2
else 執行語句3
end if
上述程序代碼段含義是:如果滿足條件1,程序將執行語句1;而如果滿足條件2,將執行語句2;否則的話程序只能執行語句3;執行完這個條件結構后,程序自動由end if來結束整個條件判斷。
(2)循環判斷語句
循環判斷語句可以在條件仍然滿足的情況下重復執行某一段程序代碼,而被重復執行的這段程序代碼通常被稱為循環體。authorware 6.5支持的循環判斷語句結構都以repeat開頭,end repeat結束。例如:
repeat with i:=1 to 10
str:=string(i)
end repeat
即自變量i在1≦i≦10的范圍內將重復執行賦值語句str:=string(i),每循環一次i自增+1,直到i值大于10結束退出循環。
authorware支持的循環判斷語句結構共有以下幾類(見圖2):
repeat with counter:= start [down] to finish
循環體語句
end repeat
這種循環結構中,值start和finish分別是循環的上下限,當循環執行到計數器counter超出循環范圍時,將自動退出循環。此種循環結構可以指定計數器counter的自增方式,即每次遞增1還是遞減1(down)。
repeat with 變量in 列表
循環體語句
end repeat
這種循環結構通常被應用在數組上,如果變量元素在指定的列表中,將重復執行循環體的程序語句;每執行完一次循環后,就會自動指定列表中的下一個變量元素,直到該變量元素超出列表索引范圍,才執行end repeat結束循環。
repeat while條件
循環體語句
end repeat
這種循環結構相對簡單,即在條件滿足的情況下循環執行循環體的程序語句,直到條件不滿足為止才執行end repeat結束循環。
提示技巧
初學者如果還不熟悉authorware 6.5的條件/循環判斷語句結構,可以通過點擊計算代碼編輯器窗口(如圖1)工具欄中的 圖標按鈕調出如圖2所示的語句結構插入窗口,這也是authorware 6.5的新增輔助設計工具之一。
三、程序語句代碼范例
了解上面的一些程序語句編寫基本知識和技巧后,我們來加深一下認識,嘗試編寫一段程序代碼,在authorware窗口中繪制一個餅狀模擬分布圖。
啟動authorware 6.5并新建一個a6p文件,在流程線上拖入一個計算圖標,并輸入以下程序代碼:
--//相關變量初始化
orgx := 200
orgy := 200
radius := 150
pensize:=2
multiplier:=10
percentages:="30,15,20,35"
num_angles:=linecount(percentages,",")
--//繪制餅狀分布模擬圖
repeat with i := 1 to num_angles
percentage := getline(percentages,i,i,",")
if i = 1 then
setframe(true , rgb(255,0,0))
else if i=2 then
setframe(true , rgb(0,255,0))
else if i=3 then
setframe(true , rgb(0,0,255))
else if i=4 then
setframe(true , rgb(255,255,0))
end if
start:=finish
finish:=finish+percentage
repeat with j:=start*multiplier to finish*multiplier
angle := (((50 - (j*(1/multiplier))) * pi / 50))
x := sin(angle) * radius
y := cos(angle) * radius
line(pensize, orgx,orgy,orgx+x,orgy+y)
end repeat
total := total + percentage
end repeat
輸入完畢后按快捷鍵ctrl+r調試執行,您將看到窗口屏幕上自動繪制出一個餅狀模擬分布圖,如圖3所示。
圖 3
這里魔巖并不要求大家對上述的代碼完全讀懂(因此本文也不做詳細分析),我們的重點是給大家一個感性認識,使大家了解并掌握authorware 6.5程序語句與結構的編寫特點和相關基礎知識即可。
新聞熱點
疑難解答