1. 程式人生 > >教你如何在FLASH中載入外部SWF檔案

教你如何在FLASH中載入外部SWF檔案

方法很簡單,但是卻相當實用,比如做一個flash全站,需要按功能將網站分解成多個flash,然後利用本例中的原理,通過一個首頁flash呼叫其他各個頁面的flash檔案即可實現。本例為基礎示例,可以根據需要進行擴充套件,關鍵是要學會變通,將其變為自己的東西。

實現方法:

1、新建一個flash文件,要求大小最好和你要載入的那個flash相同;

2、在場景中放一個動態文字框,設定變數名為 opentxt(也可以取其他名字,但下面的程式碼中也得相應的修改);

3、選中第一幀,開啟動作面板,加入如下程式碼:

var fdTemp = createEmptyMovieClip("fdtemp", 1);

var L = createEmptyMovieClip("loadswf", 2);

L.loadMovie("外部影片.swf");

fdTemp.onEnterFrame = function() {

var a = this._parent["loadswf"].getBytesLoaded();

var b = this._parent["loadswf"].getBytesTotal();

opentxt = int(a*10000/b)+"%";

if (a>=b and a>10) {

opentxt.removeTextField();

}

};

把其中的 外部影片.swf 改成你的那個 flash的名稱即可!

這個loading只有顯示百分比,其他的與一般的loading動畫做法一樣!

stop();

var bl = 0;

var bt = 0;

this.createEmptyMovieClip("mcLoader", 1);

//--------------- 定位 ---------------

mcLoader._x = 50;

mcLoader._y = 50;

//--------------- 裝載 ----------------

mcLoader.loadMovie("影片.swf");

//------------ 計算程序 -------------

this.onEnterFrame = function() {

bl = mcLoader.getBytesLoaded();

bt = mcLoader.getBytesTotal();

txt1.text = int(bl/bt*100)+"%";

loadbar._width = 200*bl/bt;

//...

if (bl>=bt && bl) {

delete this.onEnterFrame;

// 停止計算

}

};

多個swf的loading

假如你有3個“swf”檔案,其中一個是主場景檔案,名為“main_page.swf”,其他兩個我們分別取名為“a.swf”&“b.swf”...

首先來製作“main_page.swf”這個檔案...

在它的主場景有兩個關鍵幀,在第一幀&第二幀分別加上“stop()”語句,

然後在第一幀上拖入一個你製作的“Loading”影片剪輯,命名為“my_load_bar”(這個影片剪輯共有100幀,在第一幀上加上stop()語句,在第100幀加上gotoAndStop(1)語句,

然後你再做你想要的loading動畫...

我想這個我不用再說了吧...

並且在庫中連線它...

連線名為“my_load_bar”)。

回到主場景在第一幀上加上如下語句:

//這是用於主場景的loading語句...(加在第一幀)

_root.onEnterFrame = function ()

{if(_root.getBytesLoaded() < _root.getBytesTotal())

{Loaded = _root.getBytesLoaded()/1000Total = _root.getBytesTotal()/1000goto =(Loaded/Total)*100_root.my_load_bar.gotoAndStop(int(goto))

}

else

{_root.gotoAndStop(2)_root.onEnterFrame = null}

}

stop()

假如你要在主場景載入後轉道第二幀的時候同時載入“a.swf”&“b.swf”兩個檔案,並且顯示相應的進度 ,

建立兩個空的影片剪輯,分別命名為“a”,“b”,拖到主場景,後在主場景第二幀上加入如下語句:

//呼叫庫中的“my_load_bar”影片剪輯...

_root.attachMovie("my_load_bar","a_load_bar",100)

_root.attachMovie("my_load_bar","b_load_bar",100)

_root.a_load_bar._x=你想要的位置

_root.a_load_bar._y=你想要的位置

_root.b_load_bar._x=你想要的位置

_root.b_load_bar._y=你想要的位置

_root.a.loadMovie("a.swf")

_root.b.loadMovie("b.swf")

然後在“a.swf”檔案第一幀寫入:(此檔案共兩幀)

this.onEnterFrame = function ()

{if(this.getBytesLoaded() < this.getBytesTotal())

{Loaded = this.getBytesLoaded()/1000Total = this.getBytesTotal()/1000goto = (Loaded/Total)*100_root.a_load_bar.gotoAndStop(int(goto))}

else{

gotoAndStop(2)this.onEnterFrame = null}

}

stop()

然後在“b.swf”檔案第一幀寫入:

(此檔案共兩幀)

this.onEnterFrame = function ()

{if(this.getBytesLoaded() < this.getBytesTotal()){Loaded = this.getBytesLoaded()/1000Total = this.getBytesTotal()/1000goto = (Loaded/Total)*100_root.b_load_bar.gotoAndStop(int(goto))}

else

{gotoAndStop(2)this.onEnterFrame = null}}

stop()

這兩個檔案第一幀都是程式碼幀,沒有任何影片...,

大概就是這樣,自己再琢磨琢磨,方法不是一種,要學著變成自己的東西...







loadMovie("xx.swf", mymc);
mymc._x = 0;
mymc._y = 0;
mymc._xscale = 100; 這個是寬
mymc._yscale = 100; 這個是長,不過這裡的100是一倍的意思,不要理解錯了






載入外部swf影片並控制它的大小和位置 |;B7Q0

要在課件中實現畫中畫的效果,可以利用“loadMovie”語句來載入外部的 swf 檔案。閃吧新社群
為了控制外來動畫的大小與位置,我們需要先製作一個空 MC。現在我們假定要載入的 swf
b9[ a)n e6l A0檔案是“bb.swf” 。 閃吧新社群
新建一個 Flash 文件,插入一個影片剪輯元件,命名為“MC” ,無內容放空。將 MC 放
於你希望 bb.swf載入進來播放的位置,比如x=300 y=200 命名其例項名為“load” 。
建一按鈕,加上語句:
on(release) { 閃吧新社群H#[)| G7Y ^ [ ? k
_root.load.loadMovie("bb.swf"); 閃吧新社群I ^0u w)x
setProperty(_root.load, _xscale,60);
setProperty(_root.load, _yscale,60);
}
第二句的意思是當釋放按鈕後,就載入“bb.swf”給名為“load”的 MC 例項。第四句是 閃吧新社群把

這個 MC 縮小了 60%,_xscale是指原 MC 的寬,60 是百分比。在這裡,你可以隨意的改 變縮入比例了

。 閃吧新社群&N8F z x O V'n*V%o
要想實現解除安裝,可以重新建立一個按鈕元件,輸入如下語句:
on(release) {
root.load.unloadMovie("bb.swf")
} 閃吧新社群
如果只是簡單的載入,我們也可以使用 Flash MX 2004 中【行為面板】中提供的【影片剪輯】|【載入外

部影片剪輯】與【解除安裝影片剪輯命令】。