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