标题: [原创教程]判断外部影片载入进度的两种方法
朱高
新手上路
Rank: 1



UID 61
精华 0
积分 28
帖子 16
阅读权限 10
注册 2007-4-6
状态 离线
发表于 2007-4-6 12:45  资料  个人空间  短消息  加为好友 
[原创教程]判断外部影片载入进度的两种方法

今天打开68突然发现开坛了,庆祝一下
本文出处:http://www.zhugao.cn/info/news_show.asp?id=607

//方法一(推荐):MovieClipLoader方法
var mcContainer:MovieClip = this.createEmptyMovieClip("myMC", this.getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
var mcListener:Object = new Object();
mcListener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
trace(Math.floor((bytesLoaded/bytesTotal)*100)+"%");
}
mcListener.onLoadInit = function(target:MovieClip):Void {
trace(target._name + " loadedComplete");
}
mcLoader.addListener(mcListener);
mcLoader.loadClip("picImg/pic1.jpg", "myMC");

//方法二:onEnterFrame方法
this.createEmptyMovieClip("tempMC", this.getNextHighestDepth());
this.createEmptyMovieClip("loaderMC", this.getNextHighestDepth());
loaderMC.loadMovie("picImg/pic1.jpg");
tempMC.onEnterFrame = function() {
var loaded = loaderMC.getBytesLoaded();
var loadTotal = loaderMC.getBytesTotal();
trace(int((loaded/loadTotal)*100)+"%");
//此处很奇异,判断是否加载完要用((loaded/loadTotal) == 1)而不能用(loaded == loadTotal)
if((loaded/loadTotal) == 1){
delete this.onEnterFrame;
trace("loadedComplete");
}
}

[ 本帖最后由 灰昼 于 2007-4-9 00:47 编辑 ]


本帖最近评分记录
admin   2007-4-7 18:24  威望  +1   
灰昼   2007-4-6 15:05  威望  +1   原创内容




顶部
灰昼
版主
Rank: 7Rank: 7Rank: 7



UID 79
精华 3
积分 264
帖子 463
阅读权限 100
注册 2007-4-6
状态 离线
发表于 2007-4-6 14:56  资料  个人空间  主页 短消息  加为好友  添加 灰昼 为MSN好友 通过MSN和 灰昼 交谈 QQ
十分感谢朱兄的系列教程:)
这个问题是初学flash的朋友问的最多的问题。
带进度条的完整代码  修改自帮助文档
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
ld.ld_line._xscale = 0;
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void  {
trace(target+".onLoadProgress with "+bytesLoaded+" bytes of "+bytesTotal);
per = Number(bytesLoaded/bytesTotal*100);

ld.ld_line._xscale = per;
ld.txt.text = "loading"+int(Number(bytesLoaded/bytesTotal*100))+"%";
if (per == 100) {
  ld._visible = false;
} else {
  ld._visible = true;
}
trace(per);
};
mcLoader.addListener(listener);
mcLoader.loadClip("1.jpg", box);
var interval:Object = new Object();
interval.id = setInterval(checkProgress, 100, mcLoader, image, interval);
function checkProgress(mcLoader:MovieClipLoader, image:MovieClip, interval:Object):Void {
trace(">> checking progress now with : "+interval.id);
var progress:Object = mcLoader.getProgress(image);
trace("bytesLoaded: "+progress.bytesLoaded+" bytesTotal: "+progress.bytesTotal);
if (progress.bytesLoaded == progress.bytesTotal) {
  clearInterval(interval.id);
}
}

[ 本帖最后由 灰昼 于 2007-4-8 17:58 编辑 ]

顶部
朱高
新手上路
Rank: 1



UID 61
精华 0
积分 28
帖子 16
阅读权限 10
注册 2007-4-6
状态 离线
发表于 2007-4-7 13:41  资料  个人空间  短消息  加为好友 
学习 。。。。。





顶部
朱高
新手上路
Rank: 1



UID 61
精华 0
积分 28
帖子 16
阅读权限 10
注册 2007-4-6
状态 离线
发表于 2007-4-7 18:14  资料  个人空间  短消息  加为好友 
刚刚运行一下,突然发现少了个 }





顶部
朱高
新手上路
Rank: 1



UID 61
精华 0
积分 28
帖子 16
阅读权限 10
注册 2007-4-6
状态 离线
发表于 2007-4-7 19:29  资料  个人空间  短消息  加为好友 
既然讲到进度条,我突然想请教一下灰昼兄。我发现按以往的做法,只有帧频在12帧以下时,进度条看起来才会较为平滑,有没有方法实现像安装软件时看到的那种平滑效果呢?





顶部
灰昼
版主
Rank: 7Rank: 7Rank: 7



UID 79
精华 3
积分 264
帖子 463
阅读权限 100
注册 2007-4-6
状态 离线
发表于 2007-4-9 00:20  资料  个人空间  主页 短消息  加为好友  添加 灰昼 为MSN好友 通过MSN和 灰昼 交谈 QQ
呵呵,朱兄过谦了。
我想这种方法,应该是用setinterval每秒种检测一下bytesLoaded/bytesTotal。
只有使_xscale的增长每次加一,才能获得比较平滑的效果。
不过我觉得这种方法意义不大,朱兄认为呢?

[ 本帖最后由 灰昼 于 2007-4-9 00:21 编辑 ]

顶部
朱高
新手上路
Rank: 1



UID 61
精华 0
积分 28
帖子 16
阅读权限 10
注册 2007-4-6
状态 离线
发表于 2007-4-9 11:37  资料  个人空间  短消息  加为好友 


QUOTE:
原帖由 灰昼 于 2007-4-9 00:20 发表
不过我觉得这种方法意义不大,朱兄认为呢?

哈哈,说的也是,不过这种细节问题如果实现了,那一定是比较吸引人的东西





顶部
朱高
新手上路
Rank: 1



UID 61
精华 0
积分 28
帖子 16
阅读权限 10
注册 2007-4-6
状态 离线
发表于 2007-4-9 11:44  资料  个人空间  短消息  加为好友 
不过太耗资源的 loading 确实意义不大





顶部
AiminCollas
新手上路
Rank: 1


UID 3597
精华 0
积分 0
帖子 21
阅读权限 10
注册 2007-8-2
来自 OverStar
状态 离线
发表于 2007-9-2 18:49  资料  个人空间  短消息  加为好友  QQ
社会小学生

整个看不见的,如何?





学习无止境
技术永创新
顶部
 



当前时区 GMT+8, 现在时间是 2010-9-3 05:08
皖ICP备05012247号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.038575 second(s), 7 queries

清除 Cookies - 联系我们 - 网页设计师联盟 - Archiver - WAP