員永生



摘要 Flash繪制的多媒體界面人機交互友好,但Flash本身不能直接存取數據庫,本文充分利用VB與Flash雙向數據交換的機制,實驗提出一個既可利用Flash艮好界面和Action Script語言設計特點,又可發揮VB訪問數據庫的優點的模式。主要試驗VB混編Flash訪問SQL2000數據庫的模式,在實際的人機交互界面應用實踐中取得了較好效費比優勢。實際工程應用結果表明該方法不但優化VB界面設計上的短板,可以有效縮短人機界面設計時間,提升解決實際問題和完成課程設計的效率。
【關鍵詞】人機界面 ActionScript VB
在一些中小型項目開發應用上,Flash和VB混編制作的人機交互界面,通常能將二者各自的優點有效地交合起來,就可以制作出獨特的界面,許多在VB中不易實現的功能,在Flash中就可以輕易實現,把這些復雜的界面如果混編在VB應用程序中,就可以實現原來認為可能是繪制特別困難的界面工作成為易事。眾所周知在虛擬人機界面的建模方面,Flash技術開發界面數據傳輸實時性好、速度快和界面美觀,通過對其與高級程序設計語言的雙向交互技術進一步混編融合,在仿真軟件界面設計中Flash界面具有的其獨特優點,更有利的它是一種矢量格式的文件,可以包含動畫、聲音和超文本鏈接,而且文件的體積卻很小。本文結合工程項目開發實際,提出了具有應用性和交互功能的VB應用程序混編Flash開發界面技術訪問SQL2000數據庫的實用界面系統,通過這樣的處理可以在較短的時間內開發一些中小應用項目提高工作效率。
1 試驗材料和方法
1.1 試驗材料
人機界面設計采用是Macromedia FlashMX Professional 2004 Version 7.0.1。專業級程序設計語言采用Micorsoft Visual Basic 6.0中文版。其中三維物件的設計采用GoogleSketchUp專業版6.4.112。
1.2 試驗方法
1.2.1 Flash端人機界面設計和動作
具體是在Flash 2004 MX中新建一個Flash文檔,可以將FLA源文件保存為mFlashTestVBl名稱。在場景上用文本工具建立兩個文本框,上部的文本框名稱設置為myvar的動態文本(動態文本框用途是顯示VB傳來的報文),下部的文本框名稱設置為mytext的輸入文本(輸入文本用來發送往VB應用程序的命令)。其中在下面的文本框左側可以采用工具欄上的矩形工具繪制一個綠色漸變填充效果的按鈕,并且將該矩形轉換為元件的按鈕屬性后,設置按鈕元件的名稱為xbtn,如圖1所示。在此按鈕元件的第一幀中寫入發送給VB應用的動作程序,就可以完成Flash端的設計工作。
1.2.2 VB端應用界面設計和程序設計
通常情況下VB中通過直接添加Flash0cx對象完成任務,但在VB環境下常會發生無法保存項目導致的代碼丟失問題,當再次啟動工程項目后面臨重新編寫程序代碼的問題,從而延長了開發和解決實際問題的時間。探索動態地將Flash OCX ActiveX對象引用到VB應用程序環境中,既可以不受Flash OCX版本的限制和約束,又可以靈活應用FlashActiveX對象模型。如圖2所示。
在應用程序開發之初的操作具體步驟如下:一是先安裝Flash MX 2004軟件版本或者使用Regsvr32.exe程序對單獨的Flash ActiveX控件進行注冊;二是在VB應用程序中定義一個事件容器全局變量,定義一個事件名稱為ShockwaveFlashl的對象;三是在VB窗體初始化的Load子程序中,對這個對象有關變量進行初始化。在應用程序設計完成后,經測試后合格后可以打包,例如可以采用安裝程序制作軟件例如InstallShield,主要目的是利用該軟件在打包時設置Self-Registered屬性為Yes,從而通過打包時的設定,可以作為自動注冊Flash ActiveX控件方式。在一臺新的計算操作系統中,就免去因為找不到Flash OCXActiveX問題,而導致的程序無法運行的錯誤發生。
1.2.3 雙向交互程中VB端程序設計代碼
如圖3所示。
1.2.4 雙向交互程序設計代碼
如圖4所示。
其中在圖3中的關鍵字WithEvents說明ShockwaveFlashl是用來響應由Flash OCXActiveX對象觸發的事件的對象變量。只有在類模塊中才是合法的。使用With Events,可以定義任意個所需的單個變量,但不能用WithEvents創建數組。New和WithEvents不能一起使用。VBControlExtender對象主要被用于動態地使用Add方法將控件添加到Controls集合這樣的情況。在這一點上,VBControIExtender對象對開發者是最有用的,因為它提供了一系列通用屬性、事件和方法。對象的另一個功能是Obj ectEvent事件,該事件的作用是對向動態添加的控件發出的所有事件進行解釋。如圖3中首先聲明了一個VBControlExtender類型的對象變量,然后在Form Load程序中添加控件的時候設置變量。圖4還說明了如何編寫Obj ectEvent事件處理程序。
2 結果和討論
2.1 Flash和VB應用雙向交互基礎程序運行結果
圖5與圖4展示了雙向互動運行的結果,其中圖4利用FSCommand事件,它的主要功能就是利用Flash發來的FSCommand命令,管理動畫(全屏)播放,可以隱藏動畫菜單,更重要的就是實現了與VB應用程序進行很好的通信。而在VB端程序中,就可以利用Shockware Flash控件的函數SetVariable(Nameas String,Value as String),該函數是對Flash場景中的文本框名為myvar的變量傳送數據。ObjectEvent事件來完成接收參數通信過程,從而實現在VB中發送參數信息的功能。
2.2 Flash和VB應用雙向交互數據查詢推廣
圖6和圖7和圖8就是充分利用FSCommand事件,實現Flash和VB交互的應用的一個推廣示例。圖6就是在Flash中繪制可以觸發事件動作的物體,從而觸發VB中的Flash對象事件容器中對應的FSCommand事件中相應代碼。根據FSCommand事件通過傳值方式,傳送來兩個字符型變量的人機界面中的字符串型參數Command和Args,再通過對字符串中的命令的解析,控制VB應用程序中完成圖8所示的自定義的功能。
通過以上實例,就可以輕松實現用戶需要的VB文本框中的參數,實時傳遞到Flash中的過程,Flash有個非常優越的特性就是它的用戶接口設計的非常好,相對而言VB有個非常優越的特征就是高效的程序設計能力,是其他高級語言,特別是面向對象程序設計語言都無法比較的。如果在仿真軟件的設計中能夠將兩個融合為一個整體,就能夠取得巨大的潛力和效果。
3 結論
主要試驗Flash人機界面模型在實際的VB仿真軟件的應用實踐中取得了性價比優勢。結果表明該人機界面不但外觀大小可以矢量性變化,而且逼真度很高,性能優異適合各類仿真軟件設計的實際應用。
參考文獻
[1]衰圓.Flash技術在工程界面設計中的應用[J],科技信息,2006 (03): 22-23.
[2]干建松.基于Flash的世界大學城網站界面設計探討[J].電腦編程技巧與維護,2013 (24):77-78.
[3]飛塵.Flash與VB的第四通道[J].電腦愛好者,2002 (03): 86-87.
[4]張憲海,吳玲達,王辰.VB中多媒體應用程序設計與實現[J].計算機應用研究,2000,17 (08):88-91.
[5] Macromedia Flash and VB:APotent Combination[M].//www.mindfiresolutions. com.
[6]湯嘉立,姚正軍,黃斌等,基于VB和VRML的虛擬仿真實驗系統[J]計算機工程與設計,2006,27 (12): 88-91.
[7]張峰.VB與Flash集成開發多媒體應用程序[J].計算機應用研究,2003 (03):103-105.