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