石家莊工程職業(yè)學(xué)院 霍曉敏 田 磊
河北正中實驗中學(xué) 邢寧寧
Director軟件和Flash軟件是兩款強有力的多媒體開發(fā)工具,是目前諸多開發(fā)多媒體軟件產(chǎn)品的首選,尤其是把二者的優(yōu)勢相結(jié)合,開發(fā)過程可達到事半功倍的效果。在Director平臺上開發(fā)多媒體軟件,尤其是動畫,需要運用音頻、視頻、圖片、動畫、三維、虛擬現(xiàn)實等多媒體技術(shù)。而Flash的特點是:動畫是矢量的,其作品放大縮小不失真,但受網(wǎng)絡(luò)資源的制約一般比較短?。粍赢嬀哂薪换バ?,用戶動作可成為動畫的一部分,用戶可通過點擊、選擇等動作,決定動畫的運行過程和結(jié)果,這是傳統(tǒng)動畫所無法比擬的;動畫有嶄新的視覺效果,比傳統(tǒng)動畫更加靈巧,應(yīng)該說優(yōu)缺點并存,如果將其結(jié)合,那么就能夠進行優(yōu)勢的互補。
下面探討Director與Flash的交互結(jié)合問題。
Director已發(fā)布11.5版本,且市場應(yīng)用也比較廣泛,但其Director MX 2004版本(10.0版本)穩(wěn)定性較高,仍然很受廣大多媒體開發(fā)者的青睞,應(yīng)用廣泛。另外Flash已發(fā)布5.5版本,其集成性更高,并且與Director軟件都并入了同一個公司Adobe,對Director軟件的支持是越來越好。
當(dāng)前Director與Flash在開發(fā)中存在的兼容問題主要有兩個方面:一是當(dāng)Flash以高版本發(fā)布(默認(rèn)是Flash Player 10版本)動畫作品時,如果將該版本發(fā)布作品導(dǎo)入到Director中會出現(xiàn)文字顯示不正?,F(xiàn)象或者是根本就不顯示的問題,這就要求Flash作品要以Flash player 7或更低版本(6、5)發(fā)布,文字才能夠正常顯示;二是如果在Flash作品中用了比較高級的效果插件制作出絢麗效果,那么該效果如果Flash以較低版本發(fā)布,導(dǎo)入到Director中后,雖然作品的文字能正常顯示,但Flash的絢麗效果可能無法顯現(xiàn)。這就需要從軟件版本和作品穩(wěn)定性兩個方面來綜合權(quán)衡,要么將Director升級到較高的11或更高的11.5版本,或者是通過其他Flash制作手段改變效果的制作方法,以適應(yīng)Director軟件的要求。
我們知道,Director和Flash軟件的運行原理是相似的,都是fps(幀/秒),F(xiàn)lash作品導(dǎo)入Director時,幀數(shù)是一致的,在實際開發(fā)中又多用于片頭播放控制,當(dāng)Flash片頭播放完(Flash作品的最后一幀不能添加停止動作)之后,可使作品延續(xù)播放,代碼如下:
On exitframe me
If Sprite(FlashSpriteNum).frame Else Go to frame +1 End 注:FlashSpriteNum是Flash作品在精靈通道中所在的通道數(shù)。 在Director中導(dǎo)入Flash作品,可對作品進行控制,包括播放、暫停、重新播放、聲音控制及滑條控制等。具體如下: (1)在Director中控制Flash演員播放、停止等命令 Sprite(FlashSpriteNum).play()——播放Flash演員 Sprite(FlashSpriteNum).stop()——停止Flash演員的播放 Sprite(FlashSpriteNum).rewind()——Flash演員的重新播放 ——原文后面的說明前面已經(jīng)講過了 另外,還能夠通過更高級的Lingo語言實現(xiàn)對聲音的控制及滑條控制,聲音控制的簡要代碼如下: soundObject=sprite(FlashSpriteN um).newObject("sound","_root") soundObject.setVolume(soundVolume) 其中,sound和root都是Flash編程中的變量。 滑條控制,控制比較麻煩,可以通過“中華行為庫”進行控制,讀者可自行下載學(xué)習(xí)應(yīng)用。 (2)使用getVariable函數(shù)直接獲取Flash演員中的值 getVariable(Sprite FlashSpriteNum,“變量名”)——獲取位于通道FlashSprite-Num中的Flash演員中變量“變量名”的值。 (3)使用setVariable函數(shù)設(shè)置Flash演員中的值 setVariable(Sprite FlashSpriteNum,“變量名”,“值”)——將位于通道Flash-SpriteNum中Flash演員的“變量名”變量的值設(shè)置為“值”,轉(zhuǎn)換為數(shù)學(xué)等式就是“變量名=值”。 Flash作品的按鈕美觀,在Flash中添加Lingo代碼,然后導(dǎo)入到Director作品中,會比直接用Director代碼效果好,一般來說,F(xiàn)lash給Director傳遞消息有兩種方法: (1)在Flash中可以通過Geturl函數(shù)直接調(diào)用Director的Lingo命令,如鼠標(biāo)變換: on(rollover) {Geturl(“Lingo:cursor 280”);} on(rollout) {Geturl(“Lingo:cursor 0”);} 將上面的ActionScript加在Flash按鈕上,然后將其發(fā)布的作品導(dǎo)入到Director中,即可實現(xiàn)光標(biāo)的變換。還有,鼠標(biāo)單擊跳轉(zhuǎn)等,具體方法是一樣的。 注:標(biāo)點符號應(yīng)采用半角符號,在英文狀態(tài)下輸入;雙引號內(nèi)再次使用時,需使用轉(zhuǎn)義字符“”。 (2)在Flash中通過Geturl傳送參數(shù)給Director,在Director中接受Flash傳遞的參數(shù),然后執(zhí)行相應(yīng)的Lingo命令,如:在Flash的按鈕上加入下面的ActionScript: On(Release) GetURL("按鈕1") End On 然后,在Director中的moviescript(全局腳本)中使用Geturl函數(shù)執(zhí)行相應(yīng)的Lingo命令: on Geturl me,kk(其中kk為Geturl函數(shù)的參數(shù)) case kk of "按鈕1":go to frame"Mark1" "按鈕2":go to frame"Mark2" end case end Geturl Director與Flash結(jié)合應(yīng)用,既需要考慮版本的兼容性、交互性、穩(wěn)定性,又需要考慮動畫的實用性、美觀性,以使作品更加逼真、絢麗。 [1]黎成茂.Director與Flash的交互控制[J].今日科苑,2006(12). [2]何立峰.Director 11多媒體開發(fā)基礎(chǔ)與實戰(zhàn)[M].北京:清華大學(xué)出版社,2009,9.二、Director控制Flash作品
三、在Flash中應(yīng)用Director的Lingo語言
四、小結(jié)