方法很简单,但是却相当实用,比如做一个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 中【行为面板】中提供的【影片剪辑】|【加载外
部影片剪辑】与【卸载影片剪辑命令】。
实现方法:
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 中【行为面板】中提供的【影片剪辑】|【加载外
部影片剪辑】与【卸载影片剪辑命令】。