loadMovie问题全解
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-11
|
c,我们直接设置mymc的属性就设置了被加载进来的swf的属性。第二种方法,_level是对于加载到时间轴上的电影的引用,加载到第2层就是_level2;加载到第3层就是_level3。
问题之二:如何实现点击按钮加载一个外部SWF文件,并且要显示加载的下载进度呢?
有两个方法来实现这个效果,其一:把加载londing写在主文件中,其二,被加载的子SWF文件有自己的londing。现在分别给予说明。
其一:在主文件中写londing
外部子swf文件名为a1,主文件中有一个动态文本框名为loadText,一个按钮名为bbt,现在把loadMovie和londing写在桢上。
_root.bbt.onPress = function() {
_root.createEmptyMovieClip("mc", 10);
mc.loadMovie("a1.swf");
mc._visible = false;
_root.bbt.onEnterFrame = function() {
var l = mc.getBytesLoaded();
var t = mc.getBytesTotal();
var getPercent = l/t;
loadText = Math.round(getPercent*100)+"%";
if (l>0 && l>=t) {
mc._visible = true;
delete this.onEnterFrame;
}
mc._x = 10;
mc._y = 10;
mc._width =440;
mc._height = 320;
};
};
其二:子文件中有自己的londing
这个写法与前面说的londing一样,只是注意一个问题就是注意路径的问题,比如这样写:
第一祯
loaded = getBytesLoaded();
total = getBytesTotal();
lts = Math.round((loaded/total)*100);
wenben = lts+"%";
第二祯
if (lts == 100) {
gotoAndStop(3);
} else {
gotoAndPlay(1);
}
和前面的londing中介绍的比较,看出不同之处没有呢?仅仅是去掉了_root因为被加载后,外部SWF文件就相当于主文件中的一个MC 有了_root 就是指向主文件的_root 了,当然会显示错误。
问题三:我想在舞台上画一个屏幕,然后点击一个按钮就载入一个外部swf进行播放该怎样做呢?
那么我们就来一起做一个相册吧。当主文件载入后,单击按钮就载入一个外部swf 文件,并且都有londing显示。首先我们做好以下准备工作:(1)准备几张图片,现在我们准备7张,6个子文件一个一张,主文件用一张。(2)主文件舞台大小为了适应网页的需要,设置为770*420。子文件舞台大小设置为512*384,这样就不需要载入后控制大小了,方便些(其实我们应当这样,省去一些麻烦.
一、制作子文件。每个都用来显示图片,第一和第二祯写londing,第三祯~~二十祯根据自己的爱好做点亮度变化,以产生动感,最后一祯写上stop()。第一和第二祯的londing如下
第一祯
loaded = getBytesLoaded();
total = getBytesTotal();
lts = Math.round((loaded/total)*100);
wenben = "数据下载中 "+lts+"%";
第二祯
if (lts == 100) {
gotoAndPlay(3);
} else {
gotoAndPlay(1);
}
就这样如法炮制的制作6个,分别命名为b1…..b6都发布成swf文件。保存在一个文件夹中。
二、制作主文件
第一祯用来写londing,第2祯放一些像屏幕一样的东西,和按钮,为了增加效果,放一个音乐在时间轴上。
第一祯的londing//由于前面已经说得多了,就不赘述了
stop();
i = 0;
,
onEnterFrame = function () {
// 使用不断触发的事件
loaded = _root.getBytesLoaded();
total = _root.getBytesTotal();
var aa = Math.round((loaded/total)*100);
_root.dongtai.wenbens = aa+"%";
_root.dongtai._x = 188+aa*3;
_root.bb._width = aa*3;
if (aa>=100) {
// 检测到满足条件就跳出来,否则继续循环
_root.gotoAndStop(2);
delete this.onEnterFrame;
// 使用delete的目的是当完成下载后销毁onEnterFrame事件,以节约资源的消耗。
}
};
第2祯的按钮上的AS
on (press) {
_root.i++;
if (i == 7) {
i = 6;
}
loadMovie("b"+i+".swf", |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn
为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
|