专栏首页菩提树下的杨过Flash/Flex学习笔记(16):如何做自定义Loading加载其它swf

Flash/Flex学习笔记(16):如何做自定义Loading加载其它swf

const FILE_PATH:String="main.swf";
const CLASS_NAME:String="MainSwf";

var loader:Loader;
var request:URLRequest;

loader = new Loader();
request=new URLRequest(FILE_PATH);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress);
loader.load(request);

function onComplete(e:Event):void {	
	var domain:ApplicationDomain=e.target.applicationDomain as ApplicationDomain;
	var swfClass:Class=domain.getDefinition(CLASS_NAME) as Class;
	var swfInstance:Sprite = (new swfClass()) as Sprite;
	swfInstance.x=0;
	swfInstance.y=0;

	//卸掉舞台上现有的东西	
	var _childCount = numChildren;
	for (var i:int=_childCount-1; i>=0; i--) {		
		this.removeChildAt(i);	
	}	

	//加载刚下载的动画
	this.addChild(swfInstance);
}

function onProgress(e:ProgressEvent) {
	//trace(e);
	label1.text = "正在加载," + e.bytesLoaded + " / " + e.bytesTotal + ", " + (Math.round(  (100 * e.bytesLoaded / e.bytesTotal) / 0.01) * 0.01) + " %";
}

stop();

解释:as3中每个fla都可以对应一个.as文件,用于实现代码界面分离,上面代码中的CLASS_NAME即为.as文件中定义的类名

注意:如果在Main.fla中用到了系统组件(比如TileList之类),最好在Loading.fla中也拖一个出来到舞台上,然后删除,否则在loading中加载main的实例时,会出一些莫名其妙的问题!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flash/Flex学习笔记(3):动态添加组件

    Flash中一个fla文件可以关联到一个as文件,这个有点类似于asp.net中的code behind. 可参考以下图操作: ? ? ? 注: 1.as文件...

    菩提树下的杨过
  • Javascript版的Repeater控件实现

    其实有点标题党了,呵呵,主要是项目的特殊性,出于性能考虑项目经理规定不能用任何服务端控件(包括Repeater控件),同时尽量减少服务端处理,并尽可能压缩最终生...

    菩提树下的杨过
  • 图片的javascript延时加载

    在页面很长(超过3屏)且图片又很多时,默认情况下浏览器会加载所有图片,有可能导致第二屏的图片显示出来了,但第一屏的图片还在加载,这种情况最适合用"javascr...

    菩提树下的杨过
  • 如何防止网站被扒的解决方法!

    这个代码能够直接保护整个站,而不再是单个页面,直接把代码放到自己的网站上,如果是博客建议放到header.php头部文件,如果是单页面直接放到首页即可!

    空木白博客
  • mapboxGL之风流图

    前面的文章说到了Openlayers4中风场的实现,本文将讲述如何在mapbox GL实现类似的效果。

    lzugis
  • WebGL简易教程(十):光照

    在上一篇教程《WebGL简易教程(九):综合实例:地形的绘制》中,实现了对一个地形场景的渲染。在这篇教程中,就给这个地形场景加上光照,让其更加真实,立体感更强。

    charlee44
  • Javascript版的Repeater控件实现

    其实有点标题党了,呵呵,主要是项目的特殊性,出于性能考虑项目经理规定不能用任何服务端控件(包括Repeater控件),同时尽量减少服务端处理,并尽可能压缩最终生...

    菩提树下的杨过
  • C#3.0新增功能03 隐式类型本地变量

    从 Visual C# 3.0 开始,在方法范围内声明的变量可以具有隐式“类型”var。 隐式类型本地变量为强类型,就像用户已经自行声明该类型,但编译器决定类型...

    张传宁老师
  • Dart 笔记 4 - 运算符

    condition ? expr1 : expr2 如果条件为真,则计算并返回 expr1 的值,否则计算并返回 expr2 的值。

    七适散人
  • linux基础命令介绍十三:启动流程

    固件(firmware)是指设备最底层的,让设备得以运行的程序代码。简单理解就是:固定在硬件上的软件。计算机中的许多设备都拥有固件(如硬盘、鼠标、光驱、U盘等)...

    用户5030870

扫码关注云+社区

领取腾讯云代金券