flash as3 加载外部swf jpg gif png loader urlloader的通用代码
2010-10-31 20:01
495 查看
System.useCodePage=true;
//编码支持中文.
var loader:Loader=new Loader();
/* 设置舞台外部加载对象的的固定显示区域 */
var SHOW_X : Number = 200;
var SHOW_Y : Number = 50;
var SHOW_W : Number = 400;
var SHOW_H : Number = 300;
/********************************************************************
*所有对象的监听事件在本区域添加,请着重理解addEventListener带参传递的用法
********************************************************************/
loadswf_btn.addEventListener(MouseEvent.MOUSE_DOWN,loadobject("1.JPG"));
loadjpg_btn.addEventListener(MouseEvent.MOUSE_DOWN,loadobject("6.jpg"));
/**********************************************************************
下面是加载、加载过程、加载完毕等诸事件的处理函数,如无必要,勿需更改。
**********************************************************************/
//在预设主显示区中心建立一动态文本框,用以显示加载进度信息
var inputFormat:TextFormat = new TextFormat();
inputFormat.font = "宋体";//字体
inputFormat.size = 12;//字体大小
inputFormat.color=0XFF0000;
var loader_txt:TextField = new TextField();
loader_txt.type = TextFieldType.DYNAMIC;//文本格式
loader_txt.defaultTextFormat = inputFormat;
loader_txt.height = 20;
loader_txt.width = 200;
loader_txt.x=SHOW_X+(SHOW_W-200)/2;
loader_txt.y=SHOW_Y+(SHOW_H-20)/2;
this.addChild(loader_txt);
//函数功能:实现addEventListener带参传递
function loadobject(parm:String):Function {
var func=function(e):void{
loader.unload();
//此处支持加载任何外部可显示对象,包括jpg,flv,swf等,如果是swf,请注意有版本区别(V>=9.0)
loader.load(new URLRequest(parm));
//定义加载过程、加载异常、加载完毕,卸载四个监听事件
//为了保证连续跟踪,下面所有监听函数,不能定义到loadobject函数的外面
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
//url地址错误,需要单独捕获,try catch语句块是捕获不到的
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, unloadobject);
};
return func;
}
//函数功能:捕获加载进度
function loadProgress(e:ProgressEvent):void {
loader_txt.text="正在加载数据: "+ Math.round(e.bytesLoaded/e.bytesTotal * 100)+"%";
}
//函数功能:捕获加载异常(主要是URL错误异常)
function ioError(evt:IOErrorEvent) {
evt.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,ioError);
loader_txt.text="加载失败,未找到相关文件。";
}
//函数功能:处理加载成功事件,特别注意:只有loader加载成功后,才能对其进行初始化设置
function loadComplete(e:Event):void {
loader_txt.text="";//清空加载信息提示
loader.alpha=0.9;//as3中,alpha取值区间更改为[0,1]
// 载入MC的舞台宽度
var t_stageW : Number = loader.contentLoaderInfo.width;
// 载入MC的舞台高度
var t_stageH : Number = loader.contentLoaderInfo.height;
//当预设的主显示区的宽度和高度比要加载的对象的宽度和高度都小时,才等比例缩放,否则,全部呈现(只为防止失真)
if (SHOW_W<t_stageW && SHOW_H<t_stageH) {
//是否缩放MC适应显示宽度(载入MC舞台的宽高比是否大于显示区域宽高比)
var scaleflag : Boolean = t_stageW / t_stageH > SHOW_W / SHOW_H;
//缩放比率
var t_scaleRate : Number = scaleflag ? SHOW_W / t_stageW : SHOW_H / t_stageH;
loader.contentLoaderInfo.content.scaleX = loader.contentLoaderInfo.content.scaleY = t_scaleRate;
loader.contentLoaderInfo.content.x = SHOW_X;
loader.contentLoaderInfo.content.y = SHOW_Y;
//当缩放时,根据实际情况,居中定位显示
if (scaleflag) {
loader.contentLoaderInfo.content.y += (SHOW_H - t_stageH * t_scaleRate) / 2;
} else {
loader.contentLoaderInfo.content.x += (SHOW_W - t_stageW * t_scaleRate) / 2;
}
} else {
//当全部呈现时,需要居中呈现
loader.contentLoaderInfo.content.x=SHOW_X+(SHOW_W-t_stageW)/2;
loader.contentLoaderInfo.content.y=SHOW_Y+(SHOW_H-t_stageH)/2;
}
// 如果是swf,则用原swf的帧频进行播放
//this.stage.frameRate = loader.contentLoaderInfo.frameRate;
// 显示所加载的对象
this.addChild(loader);
}
//函数功能:捕获卸载事件,保证完全卸载(纠正AS3本身的卸载BUG)
function unloadobject(e:Event) {
//待完善
}
//编码支持中文.
var loader:Loader=new Loader();
/* 设置舞台外部加载对象的的固定显示区域 */
var SHOW_X : Number = 200;
var SHOW_Y : Number = 50;
var SHOW_W : Number = 400;
var SHOW_H : Number = 300;
/********************************************************************
*所有对象的监听事件在本区域添加,请着重理解addEventListener带参传递的用法
********************************************************************/
loadswf_btn.addEventListener(MouseEvent.MOUSE_DOWN,loadobject("1.JPG"));
loadjpg_btn.addEventListener(MouseEvent.MOUSE_DOWN,loadobject("6.jpg"));
/**********************************************************************
下面是加载、加载过程、加载完毕等诸事件的处理函数,如无必要,勿需更改。
**********************************************************************/
//在预设主显示区中心建立一动态文本框,用以显示加载进度信息
var inputFormat:TextFormat = new TextFormat();
inputFormat.font = "宋体";//字体
inputFormat.size = 12;//字体大小
inputFormat.color=0XFF0000;
var loader_txt:TextField = new TextField();
loader_txt.type = TextFieldType.DYNAMIC;//文本格式
loader_txt.defaultTextFormat = inputFormat;
loader_txt.height = 20;
loader_txt.width = 200;
loader_txt.x=SHOW_X+(SHOW_W-200)/2;
loader_txt.y=SHOW_Y+(SHOW_H-20)/2;
this.addChild(loader_txt);
//函数功能:实现addEventListener带参传递
function loadobject(parm:String):Function {
var func=function(e):void{
loader.unload();
//此处支持加载任何外部可显示对象,包括jpg,flv,swf等,如果是swf,请注意有版本区别(V>=9.0)
loader.load(new URLRequest(parm));
//定义加载过程、加载异常、加载完毕,卸载四个监听事件
//为了保证连续跟踪,下面所有监听函数,不能定义到loadobject函数的外面
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
//url地址错误,需要单独捕获,try catch语句块是捕获不到的
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, unloadobject);
};
return func;
}
//函数功能:捕获加载进度
function loadProgress(e:ProgressEvent):void {
loader_txt.text="正在加载数据: "+ Math.round(e.bytesLoaded/e.bytesTotal * 100)+"%";
}
//函数功能:捕获加载异常(主要是URL错误异常)
function ioError(evt:IOErrorEvent) {
evt.currentTarget.removeEventListener(IOErrorEvent.IO_ERROR,ioError);
loader_txt.text="加载失败,未找到相关文件。";
}
//函数功能:处理加载成功事件,特别注意:只有loader加载成功后,才能对其进行初始化设置
function loadComplete(e:Event):void {
loader_txt.text="";//清空加载信息提示
loader.alpha=0.9;//as3中,alpha取值区间更改为[0,1]
// 载入MC的舞台宽度
var t_stageW : Number = loader.contentLoaderInfo.width;
// 载入MC的舞台高度
var t_stageH : Number = loader.contentLoaderInfo.height;
//当预设的主显示区的宽度和高度比要加载的对象的宽度和高度都小时,才等比例缩放,否则,全部呈现(只为防止失真)
if (SHOW_W<t_stageW && SHOW_H<t_stageH) {
//是否缩放MC适应显示宽度(载入MC舞台的宽高比是否大于显示区域宽高比)
var scaleflag : Boolean = t_stageW / t_stageH > SHOW_W / SHOW_H;
//缩放比率
var t_scaleRate : Number = scaleflag ? SHOW_W / t_stageW : SHOW_H / t_stageH;
loader.contentLoaderInfo.content.scaleX = loader.contentLoaderInfo.content.scaleY = t_scaleRate;
loader.contentLoaderInfo.content.x = SHOW_X;
loader.contentLoaderInfo.content.y = SHOW_Y;
//当缩放时,根据实际情况,居中定位显示
if (scaleflag) {
loader.contentLoaderInfo.content.y += (SHOW_H - t_stageH * t_scaleRate) / 2;
} else {
loader.contentLoaderInfo.content.x += (SHOW_W - t_stageW * t_scaleRate) / 2;
}
} else {
//当全部呈现时,需要居中呈现
loader.contentLoaderInfo.content.x=SHOW_X+(SHOW_W-t_stageW)/2;
loader.contentLoaderInfo.content.y=SHOW_Y+(SHOW_H-t_stageH)/2;
}
// 如果是swf,则用原swf的帧频进行播放
//this.stage.frameRate = loader.contentLoaderInfo.frameRate;
// 显示所加载的对象
this.addChild(loader);
}
//函数功能:捕获卸载事件,保证完全卸载(纠正AS3本身的卸载BUG)
function unloadobject(e:Event) {
//待完善
}
相关文章推荐
- AS3安全沙箱实现跨域加载swf,jpg,png,gif
- AS3安全沙箱实现跨域加载swf,jpg,png,gif
- 通过Adodb.Stream取得图像(BMP JPG PNG GIF SWF)的高度和宽度
- VC下加载JPG/GIF/PNG图片的两种方法
- c++使用std_image.c来加载jpg,png,gif等格式图片
- 写了一段代码检测jpg,gif,png的实际类型
- 通过Adodb.Stream取得图像(BMP JPG PNG GIF SWF)的高度和宽度
- 加载多种图片格式(gif,jpg,png.bmp)
- VC++ 截屏代码,并保存为想要的格式(BMP,JPG,PNG,GIF等格式)
- VC下加载JPG/GIF/PNG图片的两种方法
- flash AS3 Loader加载外部文件类 及队列加载方法
- VC下加载JPG/GIF/PNG图片的两种方法
- [转]Delphi 中 image 控件加载bmp、JPG、GIF、PNG等图片的办法
- VC下加载JPG/GIF/PNG图片的两种方法
- 数字图像处理 CImage类的使用与封装(jpg png gif tif bmp等格式图像的加载、数据读写、保存等功能)
- php图片等比压缩代码,支持jpg,png,gif,验证gif动画
- VC下加载JPG/GIF/PNG图片的两种方法(转)
- php取swf/jpg/gif/png,bmp等文件宽和高相关属性
- 使用Loader/URLLoader/URLStream载入外部swf并获取类定义
- VC下加载JPG/GIF/PNG图片的方法