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

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