zoukankan      html  css  js  c++  java
  • 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的实例时,会出一些莫名其妙的问题!

    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    一个日期Js文件。 2013年10月12日 星期六 癸巳年九月初八
    【Cocosd2d实例教程二】地图编辑器Tiled的安装使用
    结构体快排qsort()
    Crypto API加密通信流程
    LA 4255 Guess
    hdu1005 Number Sequence(数论)
    c++异常 连续抛出异常
    IMP导入数据 报错 IMP-00058 ORA-01691 IMP-00028
    Groovy/Spock 测试导论
    Groovy 与 DSL
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1688083.html
Copyright © 2011-2022 走看看