今日试要做一个图片下载的框框。现分享心得如下,请高手多多指教!
要求:
1. 可以得知图片的长,宽
2. 可得知图片的下载进度
方法一:
我先使用loader搭配ProgressBar进行的实验,结果:不能很好的得知图片的长,宽。但他可以很好的让loader和ProgressBar进行下载的进度跟踪动作。
方法二:
记得flash8上有人问到过这类问题,是使用MovieClip进行下载的。我使用第二个方法。(多部分代码来自flash自带的帮助文件)
步骤如下:
step 1:打开组件,在场景中加入ProgressBar(进度条),且在属性栏中命名为loadvars_pb。
step 2:在时间线上写入:以下代码即可!这里的重点是,用MovieClip得到长,宽属性,用ProgressBar得知下载进度。(代码很多部分来自flash8的帮助,这是我的学习途径之一。)
import mx.controls.ProgressBar; //导入类
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth()); //创建一个空MC
var mcLoader:MovieClipLoader = new MovieClipLoader(); // 创建MovieClipLoader();
var loadvars_pb:mx.controls.ProgressBar; // 创建进度条
// 设定进度条模式,共有三种,进度栏加载内容的模式。
// 此值可以是 "event"(事件模式)、"polled"(轮询模式)或 "manual"(手动模式)。
loadvars_pb.mode = "manual"; // 注意:这里的选择是manual模式哦。
var listener:Object = new Object(); //侦听对象
listener.onLoadComplete = function(target_mc:MovieClip):Void {
loadvars_pb.visible = false; // 下载完了,隐藏进度条
}
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
loadvars_pb.setProgress(bytesLoaded, bytesTotal); //用已经下载字节数和总节数填充进度条。
}
listener.onLoadInit = function(target:MovieClip):Void {
// 这里用了两个Label作为显示图片属性
width_lbl.text = "图片宽:" + target._width;
height_lbl.text = "图片高:" + target._height;
}
mcLoader.addListener(listener);
mcLoader.loadClip("/UploadTeach/200704/2007040912649468.png", container);
总结:
1,多查帮助
2,多实验找到自己想要的效果
3,多使用现有组件可以加快制作的进度。
/***
* Email: korpton@163.com
* 出自Blog: http://www.oiasoft.com/blog/?detail/200611270
*/
|
/upimg/soft/4/1_070421111153.rar |