码迷,mamicode.com
首页 > 其他好文 > 详细

AS3加载器

时间:2016-08-08 01:03:03      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:as3 加载器

最近鼓捣除了一个加载器。可以分布式地加载文本文件以及SWF文件。本人将它写成了一个Flex库。本着共同进步的目的,我将其分享出来。

技术分享


测试结果 :

技术分享


控制台:

技术分享


测试资源:

技术分享

关于 Flash(SWF)美术资源的介绍:

技术分享

技术分享

关于测试的核心代码 :

package
{
	import com.DispalyLoader;
	import com.LoaderManager;
	import com.ResLibrary;
	import com.TextObjectLoader;
	
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.ProgressEvent;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;
	
	public class MyTest extends Sprite
	{
		[SWF(frameRate=‘30‘ , width=‘1280‘ , height=‘720‘, backgroundColor=‘0x001119‘, pageTitle="TEST")]
		public function MyTest()
		{
			var $urlHttp : String = stage.loaderInfo.url;
			var $index : int = $urlHttp.indexOf( "MyTest" );
			var http : String = $urlHttp.substring( 0 , $urlHttp.indexOf( "MyTest" ) );
			trace( http );
			
			var $loader : LoaderManager = new LoaderManager(true,true);
			var $txtRes : TextObjectLoader = new TextObjectLoader( this.textCallback , http + "config.xml" );
			var $txtLanRes : TextObjectLoader = new TextObjectLoader( this.textCallback , "../asset/xml/lan.xml" );
			
			var $display : DispalyLoader = new DispalyLoader( this.displayCallBack,"../asset/swf/Test.swf" , ApplicationDomain.currentDomain);
			var $display1 : DispalyLoader = new DispalyLoader( this.displayCallBack,"../asset/swf/Others.swf" , ApplicationDomain.currentDomain);
			$loader.append( $txtRes );
			$loader.append( $txtLanRes );
			$loader.append( $display );
			$loader.append( $display1 );
			$loader.startLoader();
			
		}
		private function textCallback( $type : String , $data : Object , $extends : Object = null ) : void
		{
			switch( $type )
			{
				case "COMPLETE":
					trace( "http :  " + $data + " 数据 : "  +  $extends as String );
					break;
				case "PROGRESS":
					var $progress : ProgressEvent = $data as ProgressEvent;
					trace("加载进度 : " + ($progress.bytesLoaded / $progress.bytesTotal ) );
					break;
			}
		}
		private function displayCallBack( $type : String , $data : Object , $extends : Object = null ) : void
		{
			switch( $type )
			{
				case "LOADED":
					ResLibrary.instance.addSwf( $data as String , ( $extends as LoaderContext ).applicationDomain );
					// 测试
					var $swfArr : Array = ( $data as String ).split( "/" , ( $data as String ).length );
					var $mc : MovieClip = null;
					switch($swfArr[$swfArr.length-1])
					{
						case "Test.swf":
							$mc = ResLibrary.instance.getMovieClip( "MCC" );
							break;
						case "Others.swf":
							$mc = ResLibrary.instance.getMovieClip( "MCQ" );
							break;
					}
					 
					stage.addChild( $mc );
					break;
				case "LOADED_ERROR":
					break;
				case "PROGRESS":
					break;
			}
		}
	}
}


本文出自 “Better_Power_Wisdom” 博客,请务必保留此出处http://aonaufly.blog.51cto.com/3554853/1835446

AS3加载器

标签:as3 加载器

原文地址:http://aonaufly.blog.51cto.com/3554853/1835446

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!