Flash AS 入門教程 loadMovie應(yīng)用舉例 多畫面與畫中畫實(shí)現(xiàn)

本節(jié)知識(shí)要點(diǎn)
1、loadMovie("url",target [, method])
"url" :要加載的 SWF 文件或 JPEG 文件的絕對(duì)路徑或相對(duì)路徑。
使用相對(duì)路徑一般應(yīng)將播放的.swf文件與要加載的.swf文件放在同一文件夾中。絕對(duì) 路徑必須有詳細(xì)的路徑地址。
target:目標(biāo)影片剪輯(mc元件)的名稱和路徑。目標(biāo)影片剪輯將替換為加載的 SWF 文件或圖像。
method 可選參數(shù),一般可以不選。
如果 SWF 文件加載到目標(biāo)影片剪輯,則可使用該影片剪輯的目標(biāo)路徑來(lái)定位加載的 SWF 文件。加載到目標(biāo)的 SWF 文件或圖像會(huì)繼承目標(biāo)影片剪輯的位置、旋轉(zhuǎn)和縮放屬性。加載的圖像或 SWF 文件的左上角與目標(biāo)影片剪輯的注冊(cè)點(diǎn)對(duì)齊
2、MovieClip._lockroot
因?yàn)橛胠oadMovie()加載的外部文件是加載到一個(gè)mc元件上,所以,外部文件中指向場(chǎng)景(_root)的路徑此時(shí)應(yīng)該是指向這個(gè)mc元件而不是主文件的場(chǎng)景。使用MovieClip._lockroot可以使加載的文件中的_root仍然是指向原來(lái)文件的場(chǎng)景.
3、my_mc.getNextHighestDepth()
返回一個(gè)整數(shù),即影片剪輯的下一個(gè)可用的深度值
4、switch
創(chuàng)建動(dòng)作腳本語(yǔ)句的分支結(jié)構(gòu)。像 if 動(dòng)作一樣,switch 動(dòng)作測(cè)試一個(gè)條件,并在條件返回 true 值時(shí)執(zhí)行語(yǔ)句。
5、case
用法:case expression:statements
定義用于 switch 動(dòng)作的條件。如果 case 關(guān)鍵字后的 expression 參數(shù)在使用全等 (===) 的情況下等于 switch 動(dòng)作的 expression 參數(shù),則執(zhí)行 statements 參數(shù)中的語(yǔ)句。
6、 _global 對(duì)象
創(chuàng)建全局變量、對(duì)象或類。
例題---仿電視的多畫面與畫中畫效果
請(qǐng)看效果:
制作思路:只要在同一場(chǎng)景中使用多個(gè)mc,使它們同時(shí)載入外部.swf文件或者jpg,那么就可以實(shí)現(xiàn)多畫面效果。但是,在多畫面與畫中畫的狀態(tài)下,因?yàn)楦鱩c載入外部.swf文件時(shí)有一個(gè)時(shí)間差,所以各畫面仿電視的同步播放比較困難。這需要被調(diào)入的外部.swf文件和主場(chǎng)景文件的配合。
我們打開(kāi)外部文件“111.fla”文件,AS腳本為:
1、在幀上的腳本
第 1 幀:
gotoAndPlay(x);//這個(gè)x是主場(chǎng)景中設(shè)置的全局變量;
最后1幀:
x=1;//設(shè)置本地變量x
打開(kāi)主文件6.8.fla,在這個(gè)源文件上的腳本如下:
第 1 幀 :
stop();
swf1 = "111.swf";//設(shè)置變量swf1來(lái)表示外部.swf文件
loadMovie(swf1, e); //在目標(biāo)元件e上調(diào)入swf1
e._x = 125; //設(shè)置目標(biāo)元件e的坐標(biāo)(即調(diào)入swf1的坐標(biāo))
e._y = 50;
第 2 幀 :
clip = [a, b, c, d]; //設(shè)置數(shù)組對(duì)象,數(shù)組元素為4個(gè)目標(biāo)mc
lp = ["http://img.jbzj.com/UploadFile/2003-10/200310149471524589.swf", "http://img.jbzj.com/UploadFile/2004-4/200441713272664530.swf", "http://img.jbzj.com/UploadFile/2004-3/2004371753525251.swf", "http://img.jbzj.com/UploadFile/2003-11/200311201054795610.swf", "http://img.jbzj.com/UploadFile/2003-11/2003112817413249950.swf","http://cn.flasher123.com/flasher123/mmz/dsxl.swf", "http://img.jbzj.com/UploadFile/2003-10/200310170464214894.swf"];
//設(shè)置數(shù)組對(duì)象,數(shù)組元素為網(wǎng)上.swf
_global.x = _root.e._currentframe;
//把目標(biāo)mc播放的當(dāng)前幀(即調(diào)入外部文件的當(dāng)前幀)用全局變量x表示;
//下面腳本中使調(diào)入外部文件的從全局變量x幀開(kāi)始播放;
m = getNextHighestDepth();//取得下一個(gè)可用的mc的深度;
a.swapDepths(m); //設(shè)置mc元件a的深度為下一個(gè)可用的mc的深度;
loadMovie(swf1, a); //在目標(biāo)元件a上調(diào)入swf1
a._x = 125; //設(shè)置目標(biāo)元件a的坐標(biāo)(即調(diào)入swf1的坐標(biāo))
a._y = 50;
a._xscale = 50; //設(shè)置目標(biāo)元件a的放大系數(shù)(即調(diào)入swf1的放大系數(shù))
a._yscale = 50;
j = k=0; //設(shè)置變量初值
第 3 幀
_global.x=_root.e._currentframe;//與第2幀上的腳本類同
m=getNextHighestDepth()
b.swapDepths(m)
loadMovie(swf1, b);
b._x = 125;
b._y = 250;
b._xscale = 50;
b._yscale = 50;
第 4 幀
_global.x=_root.e._currentframe;//與第2幀上的腳本類同
m=getNextHighestDepth()
c.swapDepths(m)
loadMovie(swf1,c);
c._x = 400;
c._y = 250;
c._xscale = 50;
c._yscale = 50;
第 5 幀
_global.x = _root.e._currentframe;//與第2幀上的腳本類同
m = getNextHighestDepth();
d.swapDepths(m);
loadMovie(swf1, d);
d._x = 400;
d._y = 50;
d._xscale = 50;
d._yscale = 50;
unloadMovie(e); //刪除最開(kāi)始調(diào)入的swf
第 6 幀
e._lockroot = true; //使被選中的元件在調(diào)入的外部文件的_root指向本身的主時(shí)間軸
loadMovie(lp[k], e); //配合按扭中的mc的變化;
2、在按扭上的腳本
在“多屏幕”按扭上的腳本:
on (release) {
nextFrame();
}
在“單屏”按扭上的腳本:
on (release) {
for (i=0; i<4; i++) {
unloadMovie(clip[i]); //刪去元件a,b,c,d上加載的外部swf文件;
clip[i].swapDepths(-i-1);//降低a,b,c,d的深度,使元件e加載的swf能顯示出來(lái);
clip[i]._alpha = 100; //元件a,b,c,d的透明度有可能降低,這里把恢復(fù)它們的透明度
}
nextFrame();//到下一幀停下
}
在“屏幕選擇”按扭上的腳本
on (press) {
txt = ""; //設(shè)置文本txt為空
switch (j=j+1) {//創(chuàng)建switch 動(dòng)作腳本語(yǔ)句的分支結(jié)構(gòu)
case 1 : //如果j==1,就執(zhí)行
a._alpha = 40; //元件a是透明度為40
break; //跳出switch循環(huán)體。以下類同
case 2 :
a._alpha = 100;
b._alpha = 40;
break;
case 3 :
b._alpha = 100;
c._alpha = 40;
break;
case 4 :
c._alpha = 100;
d._alpha = 40;
break;
case 5 :
d._alpha = 100;
j = 0;
break;
}
}
在“更換節(jié)目”按扭上的腳本
on (release) {
if (j == 0) {
txt = "請(qǐng)先選擇屏幕";
} else { //當(dāng)j不等于0時(shí),執(zhí)行下列命令:
clip[j-1]._alpha = 100; //恢復(fù)被選中的元件的透明度
clip[j-1]._lockroot = true;//使被選中的元件在調(diào)入的外部文件的_root指向本身的主時(shí)間軸
loadMovie(lp[k], clip[j-1]);//在clip[j-1]元件中調(diào)入數(shù)組lp中第k個(gè)元數(shù)表示的網(wǎng)址
k++;
if (k == lp.length) {//數(shù)組lp中元素個(gè)數(shù)
k = 0;
}
}
}
在第 6 幀上 “多屏”按扭上的腳本
on (release) {
gotoAndStop(1);
}
在第 6 幀上“更換節(jié)目”按扭上的腳本
on (release) {
k++;
if (k == 7) { //數(shù)組lp中有7個(gè)元素
k = 0;
}
e._lockroot = true;
loadMovie(lp[k], e);//在e元件中調(diào)入數(shù)組lp中第k個(gè)元數(shù)表示的網(wǎng)址
}
作業(yè)
把2至4幀的腳本用自定義函數(shù)簡(jiǎn)化;把在“屏幕選擇”按扭上的腳本用函數(shù)或者數(shù)組變量簡(jiǎn)化。
相關(guān)文章
flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來(lái)看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來(lái)輸入文本,該怎么使用代碼輸入文本呢?請(qǐng)看下文詳細(xì)的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來(lái)看看簡(jiǎn)單的例子,需要的朋友可以參考下http://chabaoo.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個(gè)Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡(jiǎn)單,感興趣的朋友歡迎前來(lái)一起分享學(xué)習(xí)2018-01-12Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置?
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置,教程講解的詳細(xì),感興趣的朋友歡迎前來(lái)分享學(xué)習(xí)2017-11-20在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來(lái)看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫?
Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫?Flash中想要給花朵制作一段搖擺的動(dòng)畫效果,該怎么制作呢?下面我們就來(lái)看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-05-23- Flash怎么制作流動(dòng)七彩色的文字?想要讓文字動(dòng)起來(lái),該怎么使用flash給文字制作一個(gè)流動(dòng)七彩色的動(dòng)畫呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23