AS3本身下载
时间:2011-04-06
来源:互联网
今天看了一下大家做的AS3自身下载代码,自己也动手做了一个。附加了源文件,大家可以下载使用。
如果使用可以直接修改 LloadMC的皮肤就可以了。
先上代码
核心代码
loadAS3.rar (9.93 KB)
如果使用可以直接修改 LloadMC的皮肤就可以了。
先上代码
核心代码
复制内容到剪贴板
import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.text.TextField;
import LoadMC;
public class Get_load {
var get_root_:Object;
var loadmc:LoadMC=new LoadMC();
/**
下载接口API
*/
public function call_load(get_root) {
//全局变量赋值
get_root_=get_root;
//停止SWF
get_root_.stop();
//开始下载
get_root_.loaderInfo.addEventListener(Event.COMPLETE,laod_complete);
get_root_.loaderInfo.addEventListener(ProgressEvent.PROGRESS,laod_progress);
}
/**
下载过程
*/
function laod_progress(ent:ProgressEvent) {
var tmp:Number=int(ent.target.bytesLoaded/ent.target.bytesTotal*100);
var res:String=tmp.toString()+'%';
//赋值给MC下载进度
loadmc.echo.text=res;
//动画形象表现
loadmc.gotoAndStop(tmp);
//给下载动画定位到舞台
get_root_.x=(get_root_.stage.width)/2;
get_root_.y=(get_root_.stage.height)/2;
get_root_.addChild(loadmc);
}
/**
下载完毕
*/
function laod_complete(ent:Event) {
get_root_.gotoAndStop(2);
//移除MC
get_root_.removeChild(loadmc);
}
}
}
接着是LoadMC的代码
代码:
package {import flash.display.MovieClip;
import flash.display.Stage;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.text.TextField;
import LoadMC;
public class Get_load {
var get_root_:Object;
var loadmc:LoadMC=new LoadMC();
/**
下载接口API
*/
public function call_load(get_root) {
//全局变量赋值
get_root_=get_root;
//停止SWF
get_root_.stop();
//开始下载
get_root_.loaderInfo.addEventListener(Event.COMPLETE,laod_complete);
get_root_.loaderInfo.addEventListener(ProgressEvent.PROGRESS,laod_progress);
}
/**
下载过程
*/
function laod_progress(ent:ProgressEvent) {
var tmp:Number=int(ent.target.bytesLoaded/ent.target.bytesTotal*100);
var res:String=tmp.toString()+'%';
//赋值给MC下载进度
loadmc.echo.text=res;
//动画形象表现
loadmc.gotoAndStop(tmp);
//给下载动画定位到舞台
get_root_.x=(get_root_.stage.width)/2;
get_root_.y=(get_root_.stage.height)/2;
get_root_.addChild(loadmc);
}
/**
下载完毕
*/
function laod_complete(ent:Event) {
get_root_.gotoAndStop(2);
//移除MC
get_root_.removeChild(loadmc);
}
}
}
复制内容到剪贴板
import flash.display.MovieClip;
import flash.text.TextField;
public class LoadMC extends MovieClip {
public function loadmc() {
var loadmc:LoadMC=new LoadMC();
loadmc.stop();
return loadmc;
}
}
}
文档类的调用方法
代码:
package {import flash.display.MovieClip;
import flash.text.TextField;
public class LoadMC extends MovieClip {
public function loadmc() {
var loadmc:LoadMC=new LoadMC();
loadmc.stop();
return loadmc;
}
}
}
复制内容到剪贴板
import flash.display.MovieClip;
import Get_load;
public class Doo extends MovieClip {
var get_root_=this;
public function Doo() {
var ga=new Get_load;
ga.call_load(get_root_);
}
}
}
希望大家多多指教代码:
package {import flash.display.MovieClip;
import Get_load;
public class Doo extends MovieClip {
var get_root_=this;
public function Doo() {
var ga=new Get_load;
ga.call_load(get_root_);
}
}
}

作者: ebfming3 发布时间: 2011-04-06
AS3的自身loading 是不推荐侦听 ProgressEvent.PROGRESS的(在FF下可能会失败)
仍然推荐和AS2时一样,在enterFrame中轮循
仍然推荐和AS2时一样,在enterFrame中轮循
作者: flash023 发布时间: 2011-04-06
晕啊。
enterFrame中能获得swf的 bytesLoaded 吗
enterFrame中能获得swf的 bytesLoaded 吗
作者: ebfming3 发布时间: 2011-04-06
get_root_.loaderInfo.addEventListener(Event.ENTER_FRAME,laod_progress);
}
/**
下载过程
*/
function laod_progress(ent:Event) {
var tmp:Number=int(ent.target.bytesLoaded/ent.target.bytesTotal*100);
var res:String=tmp.toString()+'%';
//赋值给MC下载进度
load_mc.echo.text=res;
//动画形象表现
load_mc.gotoAndStop(tmp);
//给下载动画定位到舞台
load_mc.x=get_x;
load_mc.y=get_y;
get_root_.addChild(load_mc);
}
这样好像就获得不到了
}
/**
下载过程
*/
function laod_progress(ent:Event) {
var tmp:Number=int(ent.target.bytesLoaded/ent.target.bytesTotal*100);
var res:String=tmp.toString()+'%';
//赋值给MC下载进度
load_mc.echo.text=res;
//动画形象表现
load_mc.gotoAndStop(tmp);
//给下载动画定位到舞台
load_mc.x=get_x;
load_mc.y=get_y;
get_root_.addChild(load_mc);
}
这样好像就获得不到了
作者: ebfming3 发布时间: 2011-04-06
不晕,不好像
复制内容到剪贴板
var _l:Number =loaderInfo.bytesLoaded/loaderInfo.bytesTotal;
trace(_l);
if(_l>=1){
removeEventListener(Event.ENTER_FRAME,onLoadProgress);
}
}
addEventListener(Event.ENTER_FRAME,onLoadProgress);
代码:
function onLoadProgress(e:Event):void{var _l:Number =loaderInfo.bytesLoaded/loaderInfo.bytesTotal;
trace(_l);
if(_l>=1){
removeEventListener(Event.ENTER_FRAME,onLoadProgress);
}
}
addEventListener(Event.ENTER_FRAME,onLoadProgress);
作者: flash023 发布时间: 2011-04-06
import flash.events.Event; import flash.events.ProgressEvent; this.addEventListener(Event.ENTER_FRAME,enterFrameHandler); this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,progressHandler); this.loaderInfo.addEventListener(Event.COMPLETE,completeHandler); function enterFrameHandler(event:Event):void { trace(this.framesLoaded/this.totalFrames*100); //这里是按帧数的比例来计算加载进度的。; if (this.framesLoaded == this.totalFrames) { trace("加在完成"); } } function progressHandler(event:ProgressEvent):void { trace(event.bytesLoaded/event.bytesTotal*100);//这里是用数据量来计算加在进度的。 } function completeHandler(event:Event):void { this.removeEventListener(Event.ENTER_FRAME,enterFrameHandler); this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS,progressHandler); this.loaderInfo.removeEventListener(Event.COMPLETE,completeHandler); }
提示:您可以先修改部分代码再运行
版主大概讲的是这个意思吧。提示:您可以先修改部分代码再运行
[ 本帖最后由 flashxie 于 2011-4-6 19:32 编辑 ]
作者: flashxie 发布时间: 2011-04-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28