三、特有的u32(ucd)函數
dll函數雖然功能強大,但是對于沒有編程基礎的authorware初學者來說,必須知道很多復雜dll函數的類型知識,似乎顯得困難了點,這個時候u32(ucd)發揮作用了。實際上u32(ucd)也是dll,只不過是符合authorware特有的usercode擴展標準的動態鏈接庫,方便不熟悉dll的用戶使用。u32擴展了authorware的使用開發范圍,使得用它開發出來的多媒體程序功能更加強大,實現了許多高級語言編程才能實現的功能。
一、極其豐富的activex資源
activex是由微軟公司在1996年正式命名的一項內容廣泛的技術概念。它的理論基礎是microsoft的組件對象模型(com),經歷了ole、vbx和activex三個發展階段。目前的activex控件類型內容也包羅萬象,滲透到計算機程序應用的方方面面。activex控件是一個模塊化的靈活對象,它使得開發者無須重寫代碼程序,只要靈活地插入一個具有特定功能的activex控件即可實現特定的功能,優勢不言而喻!在authorware 6.5平臺中使用activex控件進行開發,更可大大地減少開發時間和強度,完成各種難以想象的功能。
activex控件必須在windows中成功注冊后方可在authorware 6.5等應用程序中使用,我們可通過人工注冊或者程序注冊兩種方式。
windows系統提供了一個"regsvr32.exe"的命令用于控件的人工注冊,下面以注冊魔巖自己利用visual basic 6.0 編寫的rocktime.ocx控件為例進行說明:
1.首先把"rocktime.ocx"控件復制到【windows / system】(windows 98系統)或者【winnt / system32】(windows 2k系統)子目錄下
2.在【開始】]菜單的【運行】里輸入執行注冊命令行:regsvr32 rocktime.ocx
3.如果注冊成功,系統將彈出如圖1右下所示的提示對話框。必須重新啟動authorware,執行authorware菜單【insert】|【control】|【activex…】后,在出現的系統控件注冊列表對話框中就可以找到剛剛注冊的activex控件名稱:rockstudio.time。
圖1
技巧提示:
如果某一個activex控件不再被任何應用程序使用了,推薦在系統中卸載此activex控件,避免導致系統的臃腫,造成系統速度下降。我們可以運行以下命令行進行卸載(以卸載rocktime.ocx為例):regsvr32 rocktime.ocx /u
程序注冊方式一般運用于客戶機器的activex控件安裝與否的判斷上,使用程序注冊方式注冊activex控件首先必須知道該activex控件的唯一classid,即一個32位類別標識碼,如果獲取?假設在開發程序時我們已經利用手動方式成功注冊了某一activex控件,那么我們可以通過執行菜單【insert】|【control】|【activex…】調出系統注冊控件列表對話框,用鼠標雙擊選擇該控件,在彈出的activex控件屬性對話框中選擇【url…】按鈕得到相關activex控件的classid,如圖2所示。例如上面提到的rocktime.ocx控件其classid為:
{6d414588-354c-4ccb-90ca-e32804173805}
圖2
獲取activex控件的classid,我們就可以設計如圖3所示的自動判斷注冊activex控件的程序流程。其中使用了兩個條件交互分支,響應條件分別為:
activexcontrolquery("{6d414588-354c-4ccb-90ca-e32804173805}")=0 --//尚未注冊
activexcontrolquery("{6d414588-354c-4ccb-90ca-e32804173805}")=-1 --//已經注冊
條件表達式中的系統函數activexcontrolquery("classid")可以用來檢查某個classid是否存在,如果該函數找到了classid,不管安裝的控件是什么版本,都返回-1,否則就返回0。
假如在客戶機器上發現沒有安裝相應版本的activex控件,那么可以用系統函數activexcontrolregister()進行注冊,例如注冊當前文件目錄下的rocktime.ocx控件為例,其代碼為:
activexcontrolregister(filelocation^"rocktime.ocx") --//注冊rocktime.ocx控件
圖3
二、功能強大的dll函數
dll全稱是dynamic link library,中文翻譯為"動態鏈接庫"。dll是一種在運行時連接的可執行代碼或數據模塊,它是windows系統的重要組成元素,可以為windows程序共享使用。windows通過動態鏈接庫提供了功能強大的windows api函數和資源,為軟件開發人員創造了良好的編程環境。authorware 6.5同樣可以調用windows系統中dll所封裝的函數,但使用前必須先導入相關的函數,即類似高級語言編程的函數聲明,導入方法步驟如下(以導入windows api函數庫shell32.dll中的shellexecute函數為例):
1.執行菜單命令【window】|【functions】或快捷鍵ctrl+shift+f調出函數列表對話框,在【category】域中選擇當前的文件分類,此時對話框左下的按鈕【load…】變為可用;單擊【load…】按鈕瀏覽選擇shell32.dll文件,注意此dll位于【windows / system】(windows 98系統)或者【winnt / system32】(windows 2k系統)子目錄下。選擇了shell32.dll后將彈出如圖4所示的對話框。
圖4
2.下面我們就來導入windows api函數庫shell32.dll中的shellexecute函數。欲導入windows api函數庫中封裝的函數,我們必須知道這些函數的具體類型聲明(可以參考微軟的msdn中api部分內容),例如shellexecute函數在vb中的函數類型聲明如下:
declare function shellexecute lib "shell32.dll" alias "shellexecutea" (byval hwnd as long, byval lpoperation as string, byval lpfile as string, byval lpparameters as string, byval lpdirectory as string, byval nshowcmd as long) as long
從類型聲明中我們可以知道shellexecute函數的原型是shellexecutea,其參數類型按順序依次為long,string,string,string,string,long,函數返回類型為long。因此我們在圖4所示對話框的【function name】域中填入函數名shellexecutea,【arguments】域中填入參數聲明類型long,string,string,string,string,long,【return】域中填入函數返回類型long,然后單擊按鈕【load】,成功導入函數后,在對話框的左下角有一提示文字:successfully loadded "shellexecutea",如圖5所示。最后單擊按鈕【done】返回authorware設計窗口或者繼續導入其它的api函數。
圖5
3. 導入api函數后就可以直接在程序中使用了,例如在計算圖標里執行以下代碼可以自動打開系統默認的郵件發送程序:
shellexecutea(windowhandle, "open","mailto:[email protected]","","",5)三、特有的u32(ucd)函數
dll函數雖然功能強大,但是對于沒有編程基礎的authorware初學者來說,必須知道很多復雜dll函數的類型知識,似乎顯得困難了點,這個時候u32(ucd)發揮作用了。實際上u32(ucd)也是dll,只不過是符合authorware特有的usercode擴展標準的動態鏈接庫,方便不熟悉dll的用戶使用。它包括16位版本的ucd和32位版本的u32,目前流行的操作系統都為32位(如windows 9x/2k),因此一般都只使用u32進行系統開發。u32擴展了authorware的使用開發范圍,使得用它開發出來的多媒體程序功能更加強大,實現了許多高級語言編程才能實現的功能。
和dll一樣,使用u32里的函數也必須事先導入,方法和dll大同小異:執行菜單命令【window】|【functions】或快捷鍵ctrl+shift+f調出函數列表對話框,在【category】域中選擇當前的文件分類,此時對話框左下的按鈕【load…】變為可用;單擊【load…】按鈕瀏覽選擇相應的u32文件,此時會彈出一個該u32全部函數列表的對話框,選擇一個或多個函數導入即可,如圖6所示。導入后的u32函數就可以和系統函數一樣隨心所欲地使用了。當然程序打包的時候切記附帶發行相關的u32函數庫。
圖6
功能齊全的xtras
macromedia公司為旗下的多媒體制作軟件director和authorware設計了xtras,使得它們的功能得到第三方的擴展而增強。xtras在開發上遵循特定的規范,包括有適合于32位操作系統平臺(如windows 9x/2k)的x32和適合于16位操作系統平臺(如windows 3.x)的x16兩種文件后綴擴展。xtras功能齊全,包括了authorware開發的方方面面,例如有的專門用于轉場過渡效果,有的專門用于數據庫操作,有的專門負責文件的存取操作,也有的專門用于音頻視頻的播放控制等等。在authorware中使用xtras,首先必須安裝xtras,一般只需要把相關的x32(x16)插件及其相關支持文件拷貝到authorware安裝目錄下的【xtras】子目錄內,重啟authorware后就可使用xtras提供的相關功能了。有的xtras也提供完整的setup程序,把xtras安裝到authorware安裝目錄下【xtras】子目錄內即可。
xtras在authorware 6.5中的使用一般視其功能而言,例如提供轉場過渡效果的xtras一般在顯示圖標、交互圖標等的【transition】屬性域里出現;有的xtras提供相關的控制函數,可以在function函數列表對話框里查找到;也有的xtras提供了可視化的設置界面,例如directmedia xtra,安裝后在菜單【insert】里多了一個【tabuleiro xtras】|【directmediaxtras】的菜單選項,如圖7所示;單擊選擇后,此時在程序流程就自動插入一個sprite圖標"directmediaxtra",同時進入它的設置界面,如圖8所示。最后還需要提醒一下,使用了外部擴展的xtras,在程序打包發行時也必須一起附帶上,拷貝到打包文件的【xtras】目錄下即可。
圖7
圖8
終于把authorware外部擴展函數插件相關使用的基礎知識介紹完畢,大家是否有一個初步的印象了?接下來如何靈活地運用authorware 6.5的外部擴展函數插件,就必須靠自己的勤于實踐和摸索了。
新聞熱點
疑難解答