文档库 最新最全的文档下载
当前位置:文档库 › Flash加载外部swf方法

Flash加载外部swf方法

1、新建一个flash文档,要求大小最好和你要载入的那个flash相同;

2、在场景中放一个动态文本框,设置变量名为 fdtxt(也可以取其他名字,但下面的代码中也得相应的修改);

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();
fdtxt = int(a*10000/b)+"%";
if (a>=b and a>10) {
fdtxt.removeTextField();
}
};

把其中的 影片.swf 改成你的那个 flash的名称!
这个loading只有显示百分比,其他的与一般的loading动画做法一样!





stop();
var bl = 0;
var bt = 0;
this.createEmptyMovieClip("mcLoader", 1);
//--------------- 定位 ---------------
mcLoader._x = 50;
mcLoader._y = 50;
//--------------- 装载 ----------------
mcLoader.loadMovie("aaa.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;
// 停止计算
}
};




假如你有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_ba

r._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()
这两个文件第一帧都是代码帧,没有任何影片



如果要做一个加载loading条可以参考一下方法:

//设置开始
loadfile="https://www.wendangku.net/doc/b05107911.html,/desktop/xxx.JPG";//要加载的文件
loadmc=_root.mymc;//要加载到的元件
setsize=300;//设置显示的宽度 (高度会等比显示)
//设置结束
//---------代码开始------------
var my_mcl = new MovieClipLoader(); //定义新的MovieClipLoader对象
myListener = new Object(); //定义一个新的对象,用来监听load进程
myListener.onLoadProgress = function (target_mc, loadedBytes, totalBytes) //加载过程中每当将加载的内容写入磁盘时调用
{
loaded=loadedBytes; //是已经下载的字节
loadtotal=totalBytes; //是正在加在的文件的总字节数
loadds = int(loaded /loadtotal * 100);//计算已经载入的百分比
loadtxt =int(loaded/1024) + " K / " + int(loadtotal/1024)+ " K " + loadds +"%";//显示下载的信息
_root.loadbar.gotoAndStop(loadds); //设置进度条
//if(loadds==100){_root.p._visible=false} // 如果不想使载入的按钮和进度条显示,使用该语句
}//end onLoadProgress
myListener.onLoadInit = function (target_mc) //当执行加载的剪辑的第一帧上的动作时调用
{
//获取加载的文件的大小、尺寸
loadmcoldw = target_mc._width;
loadmcoldh = target_mc._height;
fileoldsize = "文件宽度:" + loadmcoldw + " 高度: " + loadmcoldh;
loadv=loadmcoldh/loadmcoldw; //获得宽高比
//开始设置大小
speed=0.1;
loadneww=setsize;
loadnewh=setsize*loadv;//宽高等比
filesizetxt=fileoldsize+" 显示大小 "+ "宽:"+loadneww + " 高:"+loadnewh;
if (loadds==100){//如果下载完成
target_mc.removeListener(myListener);//删除监听对象
_root.mymc.onEnterFrame = function() {//循环触发事件
_root.mymc._width+=(loadneww-_root.mymc._width)*speed;//设置大小-缓冲变动
_root.mymc._height+=(loadnewh-_root.mymc._height)*speed;//设置大小-缓冲变动
};//end onEnterFrame
}//end if
} //end onLoadInit
myListener.onLoadError = function (target_mc, errorCode) //加载的文件未能加载时调用
{
if (errorCode=="URLNotFound" || errorCode=="LoadNeve

rCompleted"){
loadtxt="文件不存在!";//加载出错!
}//end if
} //end onLoadError
my_mcl.addListener(myListener);//注册一个新的监听对象
my_mcl.loadClip(loadfile,loadmc);//加载文件loadfile到loadmc
stop();
//MovieClipLoader.removeListener()
//删除已使用 MovieClipLoader.addListener() 注册的对象

//MovieClipLoader.unloadClip()
//删除已通过 MovieClipLoader.loadClip() 加载的影片剪辑

自己仔细看一看,代码不是很复杂

相关文档