做FLASH站的時候考慮到只做一個FLASH文件,太大,所以經常將一個文件分解開,做成站點的時候通過按鈕點擊等方面載入單個欄目的SWF文件,而瀏覽者瀏覽網頁的時候可逐個下載,大大減少了主動畫的負擔。
那么如何加載外部的SWF文件呢?這里就需要用到兩個ACTION關鍵詞:loadmovie或loadmovienum(它們之間的差別,下面會講到)
先讓我們來看一句寫在時間軸上的代碼:
loadMovieNum("about.swf",2);
//加載about.swf到主動畫的第二個級別(級別是相對于不同swf文件而言的,其作用我們可以理解為層,比如FLASH里的層,上一層的東西將覆蓋下一層的東西,而級別則是上一級別的場景覆蓋下一級別的場景)(用loadMovieNum語句來加載動畫,會受到瀏覽器的安全限制,所以只能加載本地或同一服務器上的SWF文件。)
運用這一句代碼我們就可以做一個簡單的SWF文件的加載。
新建FLASH文檔,畫一個圓,紅色,在第20幀插入關鍵幀,向右移動,導出命名為about.swf,再新建一文檔,畫一矩形,場景大小,黑色,在第一幀寫入ACTON:
loadMovieNum("about.swf",2);
和about.swf同一文件夾導出命名為index.swf,開始測試,可以發現about.swf里的動畫覆蓋在index.swf上,但about.swf的背景并沒有被加載進去。
現在也許有人要問,那我怎么控制加載進來的動畫呢?比如停止、播放、關閉。。。一樣用上面about.swf為例,要達到控制的效果我們可以有兩個方法:
一、在about.swf里控制;
做兩個按鈕,一個播放一個停止,在播放按鈕上寫ACTION:
on(release){
this.play();
}
在停止按鈕上寫:
on(release){
this.stop();}
這樣測試一下,在index.swf里就可以播放和停止動畫了
二、在index.swf里控制
同樣是做播放和停止的兩個按鈕
在播放按鈕加ACTION:
on(release){_level2.play();}
//_level(數值)是級別的意思,_level2就是第二級別
在停止按鈕加ACTION:
on(release){_level2.stop();}
測試一下,同樣可以達到效果。
值得一題的是我們可以再加一個功能,把about.swf關閉或卸載掉,因為它是加載進來的,有辦法讓它進來就有辦法讓它回去,所以我們現在加個關閉的按鈕,然后寫上ACTION:
on(release){unloadMovieNum(2);}
//卸載影片中加載進第2級別的動畫
到這里我們就掌握了簡單的加載并控制外部swf文件的方法,現在我們要介紹另一種方法,即加載外部文件到主動畫里的MC。仍然以最初的about.swf和index.swf文件為例
在index.swf里新建播放、停止、關閉三個按鈕,新建一MC,命名為“load”,回到主場景,從庫中將MC拖入場景,放在x=100y=100的位置上,命名實例名為:mc1
新建一層,在時間軸第1幀寫上ACTION:
mc1.loadMovie("about.swf");
//加載about.swf到主場景的load這個MC里
在播放按鈕寫上:
on(release){_root.mc1.play();}
在停止按鈕寫上:
on(release){_root.mc1.stop();}
//以上的兩行代碼我們不難發現,按鈕并不是直接控制about.swf
而是通過控制實例名為mc1的MC
在關閉按鈕寫上:
on(release){_root.mc1.unloadMovie("about.swf");}
講到這里我們就可以開始結合第二講的導航來制作FLASH站了:)簡單的FLASH站點說到底,無非就是通過導航按鈕來加載動畫!下面以加載到MC的方法為例,結合導航按鈕。
首先回到第二講里的導航按鈕,我們講述了鼠標經過、離開效果的制作
on(rollOver){this.btn1.gotoAndPlay(2);}
on(rollOut){this.btn1.gotoAndPlay(1);}
但這并不是真正意義上的按鈕,它實現不了點擊進入界面的功能!所以我們在上面兩句代碼后加上:
on(release){_root.mc1.loadMovie("about.swf");}
這樣就實現了導航按鈕鼠標經過、離開、點擊的三個功能了,是不是很簡單?沒錯就是這么簡單!
上面講過了如何通過按鈕點擊加載外部swf文件的基本知識,現在我們開始進行更深一層的探討,如何才能給加載的動畫定個位置,不然豈不是要亂成一團了?呵呵。。
定位的方法主要有兩種:
1、制作被加載的flash時先定位
比如主動畫a.swf的畫布大小是700*400,想被加載的b.swf大小為200*200并載入主動畫_x=300_y=200的位置。
那我們就可以,在b.swf里做畫布和a.swf相同為:700*
400,將原來做的b.swf里的動畫位置放于x=300y=200的位置,這樣導出影片。在a.swf里做一按鈕,按鈕上的ACTION如下:
on(release){
loadMovieNum("b.swf",2);
}
這樣就完成了一種定位加載的方法。
2、導入到主動畫MC
這里的主動畫MC指的是,在a.swf里新建一空的MC,將外部文件加載到這個MC里。現在我們開始:
同樣是制作主動畫a.swf和被加載動畫b.swf,b.swf的畫布和自身動畫大小一致。返回主動畫a,新建一MC,無內容放空,將MC放于你希望b.swf加載進來播放的位置,比如方法1里的x=300y=200實例名為loadmc然后建一按鈕,加上ACTION:
on(release){
_root.loadmc.loadMovie("b.swf");
}
★如何控制加載的動畫
(位置、播放、停止、卸載)
位置在上面我們已經講過了,在這里介紹另一種常用的方法
運用attachMovie,加載庫中的元件(如loadmc)到主動畫場景里,再載入外部swf到loadmc中。ACTION如下:
_root.attachMovie("loadmc1","loadmc",1);
//loadmc1為鏈接標識,loadmc為這個MC的實例名,1為Depth,指定MC加載到場景的深度級別
_root.loadmc._x=200;
_root.loadmc._y=300;//定位MC,x=200y=300
_root.loadmc.loadMovie("b.swf");
鏈接標識在哪呢?打開庫面板,選一元件右擊選擇“鏈接”,彈出“鏈接屬性”對話框,“標識符”欄就是你要填的鏈接標識了。
按鈕實現停止和播放:
在幀上:
_root.loadmc.loadMovie("b.swf");
//加載b.swf到loadmc
在按鈕上:
on(release){
loadmc.stop();//停止播放,播放則為play()
}
按鈕實現卸載:
on(release){
_root.loadmc.unloadMovie("b.swf")
}
到這里關于載入swf文件的基本知識也講得差不多了,突然發現一小問題,加載文件時的loading要怎么做啊?其實和上面講的制作方法差不多,呵呵馬上開始!建一按鈕,寫如下ACTOIN:
on(release){
with(loadmc){
_root.loadmc.loadMovie("b.swf");
onEnterFrame=function(){
total=getBytesTotal();
loaded=getBytesLoaded();
_root.percent=int(loaded/total*100)+"%";
//percent是場景中的一個動態文本框的變量名
if(int(loaded/total)==1)//如果加載完畢
deletethis.onEnterFrame;//刪除該方法
}
}
}
補充::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Flash加載外部文件調用外部*.swf文件(加載到影片剪輯中)
二.調用外部*.swf文件(加載到影片剪輯中):
外部*.swf文件要和編輯的Flash文件放在同一目錄下
1.新建立一個空的影片剪輯mymc,把它放在場景中,實例名是:mymc.
2.新建一層,制作兩個按扭(一個調用,一個清除)拖放到此層中3.調用按扭上的AS:
on(release){//鼠標離開按扭后執行下面的代碼;
loadMovie("flash8.swf","mymc");//加載外部的"flash8.swf"文件到"mymc"空影片剪輯中;
mymc._x=70;//加載影片的X軸坐標;mymc._y=20;//加載影片的Y軸坐標;
mymc._xscale=70;//加載影片的寬度;mymc._yscale=70;//加載影片的高度;
}
清除按扭上的AS:
on(release){//鼠標離開按扭后執行下面的代碼
unloadMovie(mymc);//刪除用loadMovie加載的*.swf文件;
}
Ctrl+Enter測試
那么如何加載外部的SWF文件呢?這里就需要用到兩個ACTION關鍵詞:loadmovie或loadmovienum(它們之間的差別,下面會講到)
先讓我們來看一句寫在時間軸上的代碼:
loadMovieNum("about.swf",2);
//加載about.swf到主動畫的第二個級別(級別是相對于不同swf文件而言的,其作用我們可以理解為層,比如FLASH里的層,上一層的東西將覆蓋下一層的東西,而級別則是上一級別的場景覆蓋下一級別的場景)(用loadMovieNum語句來加載動畫,會受到瀏覽器的安全限制,所以只能加載本地或同一服務器上的SWF文件。)
運用這一句代碼我們就可以做一個簡單的SWF文件的加載。
新建FLASH文檔,畫一個圓,紅色,在第20幀插入關鍵幀,向右移動,導出命名為about.swf,再新建一文檔,畫一矩形,場景大小,黑色,在第一幀寫入ACTON:
loadMovieNum("about.swf",2);
和about.swf同一文件夾導出命名為index.swf,開始測試,可以發現about.swf里的動畫覆蓋在index.swf上,但about.swf的背景并沒有被加載進去。
現在也許有人要問,那我怎么控制加載進來的動畫呢?比如停止、播放、關閉。。。一樣用上面about.swf為例,要達到控制的效果我們可以有兩個方法:
一、在about.swf里控制;
做兩個按鈕,一個播放一個停止,在播放按鈕上寫ACTION:
on(release){
this.play();
}
在停止按鈕上寫:
on(release){
this.stop();}
這樣測試一下,在index.swf里就可以播放和停止動畫了
二、在index.swf里控制
同樣是做播放和停止的兩個按鈕
在播放按鈕加ACTION:
on(release){_level2.play();}
//_level(數值)是級別的意思,_level2就是第二級別
在停止按鈕加ACTION:
on(release){_level2.stop();}
測試一下,同樣可以達到效果。
值得一題的是我們可以再加一個功能,把about.swf關閉或卸載掉,因為它是加載進來的,有辦法讓它進來就有辦法讓它回去,所以我們現在加個關閉的按鈕,然后寫上ACTION:
on(release){unloadMovieNum(2);}
//卸載影片中加載進第2級別的動畫
到這里我們就掌握了簡單的加載并控制外部swf文件的方法,現在我們要介紹另一種方法,即加載外部文件到主動畫里的MC。仍然以最初的about.swf和index.swf文件為例
在index.swf里新建播放、停止、關閉三個按鈕,新建一MC,命名為“load”,回到主場景,從庫中將MC拖入場景,放在x=100y=100的位置上,命名實例名為:mc1
新建一層,在時間軸第1幀寫上ACTION:
mc1.loadMovie("about.swf");
//加載about.swf到主場景的load這個MC里
在播放按鈕寫上:
on(release){_root.mc1.play();}
在停止按鈕寫上:
on(release){_root.mc1.stop();}
//以上的兩行代碼我們不難發現,按鈕并不是直接控制about.swf
而是通過控制實例名為mc1的MC
在關閉按鈕寫上:
on(release){_root.mc1.unloadMovie("about.swf");}
講到這里我們就可以開始結合第二講的導航來制作FLASH站了:)簡單的FLASH站點說到底,無非就是通過導航按鈕來加載動畫!下面以加載到MC的方法為例,結合導航按鈕。
首先回到第二講里的導航按鈕,我們講述了鼠標經過、離開效果的制作
on(rollOver){this.btn1.gotoAndPlay(2);}
on(rollOut){this.btn1.gotoAndPlay(1);}
但這并不是真正意義上的按鈕,它實現不了點擊進入界面的功能!所以我們在上面兩句代碼后加上:
on(release){_root.mc1.loadMovie("about.swf");}
這樣就實現了導航按鈕鼠標經過、離開、點擊的三個功能了,是不是很簡單?沒錯就是這么簡單!
上面講過了如何通過按鈕點擊加載外部swf文件的基本知識,現在我們開始進行更深一層的探討,如何才能給加載的動畫定個位置,不然豈不是要亂成一團了?呵呵。。
定位的方法主要有兩種:
1、制作被加載的flash時先定位
比如主動畫a.swf的畫布大小是700*400,想被加載的b.swf大小為200*200并載入主動畫_x=300_y=200的位置。
那我們就可以,在b.swf里做畫布和a.swf相同為:700*
400,將原來做的b.swf里的動畫位置放于x=300y=200的位置,這樣導出影片。在a.swf里做一按鈕,按鈕上的ACTION如下:
on(release){
loadMovieNum("b.swf",2);
}
這樣就完成了一種定位加載的方法。
2、導入到主動畫MC
這里的主動畫MC指的是,在a.swf里新建一空的MC,將外部文件加載到這個MC里。現在我們開始:
同樣是制作主動畫a.swf和被加載動畫b.swf,b.swf的畫布和自身動畫大小一致。返回主動畫a,新建一MC,無內容放空,將MC放于你希望b.swf加載進來播放的位置,比如方法1里的x=300y=200實例名為loadmc然后建一按鈕,加上ACTION:
on(release){
_root.loadmc.loadMovie("b.swf");
}
★如何控制加載的動畫
(位置、播放、停止、卸載)
位置在上面我們已經講過了,在這里介紹另一種常用的方法
運用attachMovie,加載庫中的元件(如loadmc)到主動畫場景里,再載入外部swf到loadmc中。ACTION如下:
_root.attachMovie("loadmc1","loadmc",1);
//loadmc1為鏈接標識,loadmc為這個MC的實例名,1為Depth,指定MC加載到場景的深度級別
_root.loadmc._x=200;
_root.loadmc._y=300;//定位MC,x=200y=300
_root.loadmc.loadMovie("b.swf");
鏈接標識在哪呢?打開庫面板,選一元件右擊選擇“鏈接”,彈出“鏈接屬性”對話框,“標識符”欄就是你要填的鏈接標識了。
按鈕實現停止和播放:
在幀上:
_root.loadmc.loadMovie("b.swf");
//加載b.swf到loadmc
在按鈕上:
on(release){
loadmc.stop();//停止播放,播放則為play()
}
按鈕實現卸載:
on(release){
_root.loadmc.unloadMovie("b.swf")
}
到這里關于載入swf文件的基本知識也講得差不多了,突然發現一小問題,加載文件時的loading要怎么做啊?其實和上面講的制作方法差不多,呵呵馬上開始!建一按鈕,寫如下ACTOIN:
on(release){
with(loadmc){
_root.loadmc.loadMovie("b.swf");
onEnterFrame=function(){
total=getBytesTotal();
loaded=getBytesLoaded();
_root.percent=int(loaded/total*100)+"%";
//percent是場景中的一個動態文本框的變量名
if(int(loaded/total)==1)//如果加載完畢
deletethis.onEnterFrame;//刪除該方法
}
}
}
補充::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Flash加載外部文件調用外部*.swf文件(加載到影片剪輯中)
二.調用外部*.swf文件(加載到影片剪輯中):
外部*.swf文件要和編輯的Flash文件放在同一目錄下
1.新建立一個空的影片剪輯mymc,把它放在場景中,實例名是:mymc.
2.新建一層,制作兩個按扭(一個調用,一個清除)拖放到此層中3.調用按扭上的AS:
on(release){//鼠標離開按扭后執行下面的代碼;
loadMovie("flash8.swf","mymc");//加載外部的"flash8.swf"文件到"mymc"空影片剪輯中;
mymc._x=70;//加載影片的X軸坐標;mymc._y=20;//加載影片的Y軸坐標;
mymc._xscale=70;//加載影片的寬度;mymc._yscale=70;//加載影片的高度;
}
清除按扭上的AS:
on(release){//鼠標離開按扭后執行下面的代碼
unloadMovie(mymc);//刪除用loadMovie加載的*.swf文件;
}
Ctrl+Enter測試