我們都知道,,SWF文件是Flash輸出的標(biāo)準(zhǔn)文件格式之一,,它的應(yīng)用十分廣泛,在PowerPiont,、Authorware等軟件中都可以輕松調(diào)用,。那么如何在Flash中使用SWF文件呢?本文將為大家詳細(xì)介紹相關(guān)的技術(shù),。
為何要調(diào)用SWF文件
在使用Flash制作課件時(shí),,常常需要使用一些現(xiàn)成的SWF文件,通過Flash中的導(dǎo)入命令使用SWF文件,,會(huì)徹底破壞原有的文件結(jié)構(gòu),。另外,對于大型的課件,,我們可以進(jìn)行分組合作,,然后通過調(diào)用SWF將課件組合起來,這樣可以減小課件主文件的體積,,也便于整體合作制作大型課件,。
SWF文件的調(diào)用及控制
下面我們通過介紹課件《只有一個(gè)地球》(如圖所示)的制作方法,來學(xué)習(xí)調(diào)用并控制SWF文件,。在圖中,,灰色部分的尺寸為340×300(像素),,這部分就是SWF文件的播放區(qū)域。右側(cè)是文字按鈕(如:片段一,、片段二……),,它們是SWF文件的調(diào)用按鈕,下方是SWF文件的控制按鈕,,從左往右可以實(shí)現(xiàn)的功能有:播放,、暫停、快退,、快進(jìn),、回到開頭、跳到結(jié)尾,、增加音量和減小音量,。在課件的存放目錄中有6個(gè)SWF文件,它們是被調(diào)用的文件,,名稱分別為:片段一,、片段二、片段三……這些文件的場景尺寸跟灰色部分一樣大,,都是340×300(像素),,另外還有一個(gè)片頭動(dòng)畫名為:片頭動(dòng)畫.swf。
第1步 啟動(dòng)Flash Mx 2004,,使用繪圖工具箱中的工具繪制界面,,并添加一些文字。分別按“Ctrl+F8”創(chuàng)建所需要的按鈕,,然后拖放到界面的合適位置,。按“Ctrl+F8”創(chuàng)建一個(gè)名為“SWF”的影片(MovieClip),里面不進(jìn)行任何設(shè)置,,然后按“Ctrl+L”打開Library庫,,將SWF影片拖放到場景中,并將其中心點(diǎn)和灰色區(qū)域的左上角重合,,再單擊〔Properties〕(屬性)按鈕,,將其“Instance Name”設(shè)置為“swf”,最后保存文件到某個(gè)文件夾(注意:所調(diào)用的SWF也要放置在這個(gè)文件夾中,,否則將不能調(diào)用,,如果原SWF文件設(shè)置了背景色,在調(diào)用時(shí)都會(huì)自動(dòng)去除成為透明色),。
第2步 為場景的第1幀添加如下Actions語句:
fscommand("fullscreen", true);
//設(shè)置課件全屏播放,。
fscommand("allowscale", false);
//當(dāng)課件窗口大小改變時(shí),課件中的內(nèi)容保持原有尺寸,。
loadMovie("片頭動(dòng)畫.swf", "swf");
//調(diào)用片頭動(dòng)畫到影片SWF中,。
movie_sound = new Sound(swf);
//捆綁影片SWF中的聲音文件。
movie_sound.setVolume(50);
//設(shè)置影片SWF中音樂的音量為50,,最高是100,。
yinliang = movie_sound.getVolume();
//設(shè)置變量yinliang,使其值與影片SWF的音量相等,。
第3步 為場景右側(cè)的文字按鈕加上Actions 語句,,“片段一”按鈕的語句如下:
on (release) {
unloadMovie("swf");
//將SWF影片中的原有內(nèi)容清除。
loadMovie("片段一.swf", "swf");
//調(diào)用片段一文件至SWF影片中,。
}
“片段二”按鈕的語句如下:
on (release) {
unloadMovie("swf");
loadMovie("片段二.swf", "swf");
}
其余的幾個(gè)文字按鈕的語句與上面類似,,只需要改變調(diào)用文件的名稱即可。
第4步 下面分別來設(shè)置控制按鈕的Actions語句:
“播放”按鈕:
on (release) {
root.swf.play();
}//當(dāng)單擊該按鈕時(shí),,當(dāng)前場景中的SWF影片播放,。
“暫停”按鈕:
on (release) {
_root.swf.stop();
}//當(dāng)單擊該按鈕時(shí),當(dāng)前場景中的SWF影片暫停,。
“快退”按鈕:
on (release) {
if (_root.swf._currentframe>=40) {
_root.swf.gotoAndStop(_root.swf._currentframe-40);
//當(dāng)單擊該按鈕時(shí),,如果當(dāng)前幀大于或等于40時(shí),場景中的SWF影片從當(dāng)前幀處減去40幀,,實(shí)現(xiàn)快退,,這里的40可根據(jù)具體情況設(shè)置。
} else {
_root.swf.gotoAndStop(1);
//否則SWF影片跳轉(zhuǎn)到第1幀,。
}
}
“快進(jìn)”按鈕:
on (release) {
_root.swf.gotoAndStop(_root.swf._currentframe+40);
}//單擊該按鈕,,SWF影片從當(dāng)前幀加上40幀,從而實(shí)現(xiàn)了快進(jìn),。
“回到開頭”按鈕:
on (release) {
_root.swf.gotoAndStop(1);
}
“跳到結(jié)尾”按鈕:
on (release) {
dangqianzhen = _root.swf._totalframes;
//設(shè)置變量dangqianzhen的數(shù)值等于SWF影片的總幀數(shù),,即最后一幀。
root.swf.gotoAndStop(dangqianzhen);
//讓SWF影片跳轉(zhuǎn)到最后一幀,。
}
“增大音量”按鈕:
on (release) {
if (_root.yinliang<=90) {
_root.yinliang = _root.yinliang+10;
_root.movie_sound.setVolume(_root.yinliang);
//如果當(dāng)前音量的數(shù)值小于或等于90就加上10,,然后設(shè)置SWF影片中的音樂音量為增加后的值。
} else {
_root.movie_sound.setVolume(100);
//否則設(shè)置音量為100,,這是最大音量,。
}
}
“減小音量”按鈕:
on (release) {
if (_root.yinliang>=10) {
_root.yinliang = _root.yinliang-10;
_root.movie_sound.setVolume(_root.yinliang);
//如果當(dāng)前音量的數(shù)值大于或等于10就減去10,然后設(shè)置SWF影片中的音樂音量為減少后的值,。
} else {
_root.movie_sound.setVolume(0);
//否則設(shè)置音量為0,,這樣就沒有聲音了。
}
}
最后在課件發(fā)布時(shí),,一定要把所有的SWF文件都放置到同一個(gè)文件夾中,,否則在使用課件時(shí),會(huì)提示調(diào)用的SWF文件找不到,。
特殊SWF文件調(diào)用技巧
并不是所有的SWF文件都正好與我們的調(diào)用要求相符合,,對于一些不合乎我們要求的SWF文件,,我們也可以通過設(shè)置其屬性,力求讓其與我們的要求相吻合,。下面介紹三種特殊情況的處理方法,。
1. SWF文件的尺寸不符合:當(dāng)調(diào)用的SWF文件的尺寸大于或小于顯示區(qū)域時(shí),我們可以通過設(shè)置SWF影片的坐標(biāo)和尺寸實(shí)現(xiàn)精確定位,。語句示例如下:
_root.swf._X=0;
_root.swf._Y=0;
//設(shè)置SWF影片橫坐標(biāo)和縱坐標(biāo)的數(shù)值,,可根據(jù)具體情況設(shè)置。
_root.swf._width =340;
_root.swf.._height = 300;
//設(shè)置SWF影片長度和寬度的數(shù)值,,可根據(jù)具體情況設(shè)置,,單位為像素。
_root.swf._xscale=50,;
_root.swf._yscale=50,;
//設(shè)置SWF影片縱橫比例為原來的二分之一,默認(rèn)的原尺寸為100,,可根據(jù)具體情況設(shè)置,。
2. 只需要SWF文件中的一部分:當(dāng)調(diào)用的SWF文件中的前一部分我們不需要,可以在使用loadMovie調(diào)用時(shí),,加上一句語句:_root.swf.gotoAndPlay(150)(假設(shè)從150幀處是我們需要的內(nèi)容),。當(dāng)SWF文件的后一部分不需要時(shí),我們只需要在播放到該部分時(shí),,讓影片暫停即可,。其實(shí)當(dāng)SWF文件加載到影片中的時(shí)候,影片的所有控制語句都可以用來對SWF文件進(jìn)行控制,,如:透明度(_alpha),,角度(_rotation)等。
3. SWF文件中有特殊標(biāo)志:一些SWF文件中的某個(gè)位置可能會(huì)有單位或作者的標(biāo)志,,在調(diào)用時(shí)會(huì)影響課件的整體效果,。此時(shí)可以在SWF影片所在層的上面再增加一個(gè)新層,然后在新層中對應(yīng)的位置繪制自己的標(biāo)志遮擋原有的標(biāo)志,,如果原有的標(biāo)志是運(yùn)動(dòng)的,,繪制的標(biāo)志也應(yīng)進(jìn)行相應(yīng)的運(yùn)動(dòng)。