本節要點:外部擴展函數(ucd) 變量(variables)和函數(functions)的使用 知識對象(knowledge object)
本例簡介:本例流程如下:首先檢測用戶的顯示器分辨率,并保存在變量中。然后判斷用戶的顯示器分辨率和所要求的分辨率是否相同。如果相同,不作改變,直接運行程序;如果不同,提示用戶改為要求的分辯率,用戶確定后,對顯示器分辨率進行調整。如果在運行程序時,用戶的顯示器分辨率被更改過,退出程序前,將用戶顯示器的分辨率恢復到原先的值。
本例通過authorware的一個外部擴展函數altools.u32來實現,這個擴展函數可以從http://home3.pacific.net.sg/~apudeepa 上得到最新版本。本例帶有源程序中也有這個擴展函數的最新版本。
本例的結構設計可以很方便地添入其它內容,可以做為模板供以后使用。
完成后流程圖
制作步驟:
1、新建一個程序,命名為“aw6_11”,你也可以在程序完成后保存時命名。
2、裝載外部擴展函數altool.u32。如果functions窗口沒有顯示出來,選擇“window”>>“functions”命令,使它顯示。在“category”下拉菜單中選擇“test.a5p”,如果你的程序還沒有命名保存,那么這時應該選擇“[untitled]”。
3、單擊“load...”按鈕,出現“load function”對話框,選擇“altools.u32”后,單擊“打開”按鈕確定。
此時出現altools.u32中所有的函數列表,本例只需選擇“alchangeres”,然后點按“load”按鈕確定。
這時就可以在該程序中使用“alchangeres”函數了,這個函數的作用就是改變屏幕的分辨率。用法為: alchangeres(width,height,bitpp),如alchangeres(800,600,16) 就是將顯示器設為800×600像素,16位真彩色,這也是現在最流行的設置。
4、向流程線上由上到下,依次拖一個計算圖標、一個框架圖標和一個計算圖標。分別命名為“test screen”、“frame”和“end”。打開“frame”框架圖標,將其中所有內容刪除,因為本例中不需要其中的導航按鈕。
5、向“frame”框架圖標右側拖入兩個群組圖標,分別命名為“next”和“notice”。
6、“test screen”計算圖標中代碼如下:
--這里是本程序運行所需的屏幕分辨率
--本例設為800×600,16位真彩色,你可以改為你想要的值
n_width:=800
n_height:=600
n_depth:=16--先檢測當前屏幕分辨率,并保存起來,以便程序退出時恢復
width:=screenwidth
height:=screenheight
depth:=screendepth--如果當前屏幕設置和本程序要求不同,
if ((screendepth <n_depth)|(screenwidth<>800)) then
goto(iconid@"notice")
else
goto(iconid@"next")
end if
7、群組(group)圖標“next”中為主程序內容,你可以將你的程序放在這個圖標內。計算(caculation)圖標“quit”是一個按鈕,其中代碼為 “goto(iconid@"end")”,意思就是在點按此按鈕后,程序轉到“end”圖標執行。
8、群組(group)圖標“notice”中內容為調整顯示器的分辨率。知識對象(knowledge object)“pop-up alert”中的內容是在顯示器分辨率不符合要求時,彈出一個窗口,提示用戶將進行修改,用戶可以確定修改,也可以不確定。計算(caculation)圖標“change screen”中內容是對顯示器的分辨率進行調整,其中代碼如下:
--將屏幕分辨率調為所要求的值
if wzmbreturnedvalue=6 then
alchangeres(n_width,n_height,n_depth)
changed:=1 --標記屏幕分辨率已被更改
else
goto(iconid@"next")
end ifgoto(iconid@"next") --跳到主程序
9、群組(group)圖標“notice”中“pop-up alert”是message box知識對象(knowledge object),你可以按照提示進行各項設置。其中“caption/message”為設置彈出窗口的標題和消息內容,本例設置如下。
10、計算(caculation)圖標“end”是在程序退出前,判斷用戶的顯示器分辨率在程序運行時,是否被修改過,如果被修改過,那么恢復原來的分辨率設置;反之直接退出。其中代碼如下:
--如果屏幕分辨率被更改,程序退出時,恢復原設置
if changed=1 then alchangeres(width,height,depth)quit() --退出
這樣你的程序在運行時,如果需要的話,就可以將用戶顯示器分辨率設置為合適值,也就能夠使你的作品在所有用戶的機器上完美重現了!
技巧提示:當程序中有大量的函數和變量時,關于變量的說明和程序中的注釋語句是必要的,因為這樣能使別人可以很容易讀取自己的程序,在很長時間后也能根據注釋迅速回憶起原來的內容。
源文件:本例使用了大量的變量和函數,請大家下載源程序,仔細琢磨。本源文件中包含和altools.u32的最新版本。點擊這里下載
新聞熱點
疑難解答