Authorware是我們非常熟悉而且也是常用的多媒體制作工具,利用它我們可以制作出具有交互性的專業多媒體程序或課件,用于教學或演示。Authorware容易學會但不容易掌握它的技巧,筆者愿意將自己平時積累的一些小技巧奉獻出來,供大家參考。
獲取系統文件夾
有時我們在課件中有必要獲取系統文件夾,以啟動相應的程序。Authorware4.0及其以上版本中,新增了一類Xtras fileio內部函數,其中有一個getOSDirectory()函數,利用它就可以輕輕松松地獲取系統目錄,再也不必費勁地調用了Windows API了;代碼如下(本文所有源代碼,直接粘貼到計算圖標中即可調試):
WinPath:=getOSDirectory() --獲取Windows目錄。
WinSysPath:=getOSDirectory( )^"system"--獲取Windows的system目錄。
調用關聯程序
大家一定對Windows下關聯程序并不陌生,在Authorware中也可以通過內部函數JumpOutReturn來使用關聯程序打開文件。即JumpOutReturn(" ", document)可以調用系統默認的關聯應用程序來打開用戶選擇的文件(引號中有一空格)。使用這個辦法,你可以打開各種類型的多媒體文件,而不必編寫相應的播放程序。你可以用它輕松打開AVI、MID、WAV、MPG等各種格式的多媒體文件。我們還可以用這個辦法來打開LNK文件,從而在作品中調用快捷方式。
如果我們寫入以下語句,則可以調用系統默認的應用程序來打印各種類型的文件;Authorware會自動為你選擇好能夠打印該文件的應用程序。
JumpPrintReturn(" ",document)--調用系統默認的應用程序打印用戶選擇的文件。比如,以下代碼將為你調用yourdoc.doc:
JumpPrintReturn(" ", "yourdoc.doc")
支持GIF動畫文件
GIF是網絡上應用最廣泛的動畫格式,但Authorware程序本身并不支持GIF格式的動畫播放。我們需要調用AnimGif.u32中的函數DisplayAnimatedGif (Windowhandle; Filename; left; Top; color)來播放GIF動畫。
函數參數:
Windowhandle為系統變量,代表Authorware展示窗口的句柄;
Filename為動畫GIF帶路徑的文件名;
Left與Top確定GIF相對展示窗口的位置;
Color參數有16種選擇,決定GIF背景的顏色。
AnimGif.u32中還有一個EraseAnimatedGif ( )函數,清除正在顯示的GIF動畫。
多文件處理
在Authorware中固然可以非常方便地引入圖片文件,但是圖片文件較多時,如果一個一個地引入則比較麻煩。不過,只要我們利用ACDSee軟件將圖片文件命名成形如file00001.bmp、file00002.bmp、file00003.bmp、file00004.bmp……的文件序列后,在Authorware中可以把圖片文件作為外部鏈接輸入,然后在外部媒體瀏覽對話框中用變量表示圖片文件的路徑與名稱,我們只要改變變量,就可以顯示不同的外部圖片。并且在圖像的屬性對話框中的Display欄選擇“As Is,Placement”項選擇居中就可以實現按外部圖片的實際大小顯示圖片,而無扭曲變形之慮了,非常方便。
調用Windows程序
Authorware作為一個多媒體制作軟件,它所完成的功能是有限的,一些低級的、系統級的功能它是無法完成的,這時候,我們就必須調用外部的Windows程序來完成。有時在Authorware作品中直接打開特定的系統程序非常簡單,只需使用內部函數getOSDirectory( )和JumpOutReturn就可以做到。
WinPath:getOSDirectory( )
JumpOutReturn (WinPath^ <\Cleanmgr.exe>)調用磁盤清理程序。
JumpOutReturn (WinPath^ <\Defrag.exe>)調用磁盤碎片整理程序。
JumpOutReturn (WinPath^ <\Explorer.exe>)調用資源管理器。
JumpOutReturn (WinPath^ <\Notepad.exe>)調用記事本。
動態和彩色光標
我們都知道,在Authorware里可以引入光標到您的文件中,但是它只能引進黑白兩色光標,而不能引入彩色和動態光標(這個問題Authorware至今也沒有解決),這就給您的多媒體作品大打折扣。其實,我們只要使用一個名為anicur.u32動態鏈接庫,并引入其中的set_anicur()函數;再加入以下代碼就可以使用動態和彩色光標了:
int := set_anicur(WindowHandle,"Hourglas.ani")
SetCursor(int)。