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