`

flex自定义程序 preloader 加载多个资源

    博客分类:
  • flex
阅读更多
package cn.ishion.component
{
	import cn.ishion.Util;
	
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.ProgressEvent;
	
	import mx.events.FlexEvent;
	import mx.events.RSLEvent;
	import mx.preloaders.DownloadProgressBar;

	public class TestPreloader extends DownloadProgressBar
	{
		private var _loadConfig:String="加载配置文件";
		public function TestPreloader()
		{
			super();
			super.label="加载";
			DownloadProgressBar.initializingLabel="应用加载完成";
		}
		private var _preloader:Sprite;
		override public function set preloader(value:Sprite):void{
			_preloader = value;
			
			value.addEventListener(ProgressEvent.PROGRESS, progressHandler);	
			value.addEventListener(Event.COMPLETE, completeHandler);
		
			value.addEventListener(RSLEvent.RSL_PROGRESS, rslProgressHandler);
			value.addEventListener(RSLEvent.RSL_COMPLETE, rslCompleteHandler);
			value.addEventListener(RSLEvent.RSL_ERROR, rslErrorHandler);
		
			value.addEventListener(FlexEvent.INIT_PROGRESS, initProgressHandler);
			value.addEventListener(FlexEvent.INIT_COMPLETE, initCompleteHandler);//重写这个事件的方法
		}
	    public function initCompleteHandler(event:FlexEvent):void{
			super.label=_loadConfig;
                      //加载配置文件
			var util:Util=new Util();
			util.addEventListener(ProgressEvent.PROGRESS,progressHandler);
			util.addEventListener(Event.COMPLETE,onLoadConfig);
			util.init();
		}
		private function onLoadConfig(event:Event):void{
			//mx.controls.Alert.show("loadConfig");
			trace("loadConfig");
			this.dispatchEvent(new Event(Event.COMPLETE)); //关键这句,告诉SystemManager应用初始化完成
                 //否则进入不了主程序,一直卡那			
		}
		override protected function initProgressHandler(event:Event):void{
			super.initProgressHandler(event);
		}
		override protected function showDisplayForDownloading(elapsedTime:int, event:ProgressEvent):Boolean{
			return true;
		}
		override protected function showDisplayForInit(elapsedTime:int, count:int):Boolean{
			return true;
		}
			
	}
}

 

package cn.ishion
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IOErrorEvent;
	import flash.events.ProgressEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	[Event(name="progress",type="flash.events.ProgressEvent")]
	[Event(name="complete",type="flash.events.Event")]
	public class Util extends EventDispatcher
	{
		public static var imagePath:String;
		
		
		public function Util()
		{
			
		}
		public function init():void{
			var urlLoader:URLLoader=new URLLoader();
			urlLoader.addEventListener(Event.COMPLETE,onResult);
			urlLoader.addEventListener(IOErrorEvent.IO_ERROR,ioError);
			urlLoader.addEventListener(ProgressEvent.PROGRESS,onProgress);
			urlLoader.load(new URLRequest("activeConfig.xml"));
		}
		
		private function onProgress(event:ProgressEvent):void{
			this.dispatchEvent(event);
		}
		public function onResult(event:Event):void{
//			
			var loader:URLLoader=event.target as URLLoader;
			var configxml:XML=XML(loader.data);
			
			imagePath=configxml.imagePath;
			this.dispatchEvent(event);
		}
		public function ioError(event:IOErrorEvent):void{
			this.dispatchEvent(event);
		}
	}
}
分享到:
评论

相关推荐

    flex as资料

    如何设计和实现一个自定义预加载器,包括监控资源加载状态、动画效果和用户反馈等。 5. **数据绑定**:Flex中的数据绑定允许视图组件与模型数据自动同步,减少了手动更新视图的必要,简化了代码。 6. **事件处理**...

    Flex 图 片 显 示

    总结,Flex图片显示涉及了`Image`组件、动态加载、图片处理、优化策略等多个方面。通过深入理解这些知识点,开发者能够创建出功能丰富、性能优秀的Flex应用程序。在实际项目中,灵活运用这些技术,可以极大地提升...

    Flex高级组件详细介绍

    - **自定义Preloader**:创建自定义预加载器以增强用户体验。 - **自定义图表组件**:根据业务需求设计和实现定制化的图表组件。 - **高级皮肤专题**:深入探讨如何使用Flex Skin框架为组件创建自定义外观。 - **...

    BRUSHED-METAL-PRELOADER.rar_FlashMX/Flex源码_FlashMX_

    4. **组件和类**:Flex框架鼓励使用组件化开发,预加载器可能是一个自定义组件,由一个或多个类组成。开发者需要了解如何创建和使用自定义组件,以及如何组织类结构。 5. **发布设置**:为了将预加载器集成到实际...

    Flex企业应用开发实战源代码

    本书对Flex的基础知识着墨不多,所有内容都围绕Flex+Java这一企业级应用开发技术展开,侧重于对Flex技术原理、企业级应用的架构思想和实现方法的讲解,所以书中的内容不会随着Flex版本的升级而过时。 第1章 Flex...

    flex Custom loading example

    网上找了很多都不完整,上传一个工程给大家分享,采用子类加载swf或者gif的方式显示loading ,gif或者swf文件可以随意换成自己喜欢的。如果需要百分比显示的话可能还需要修改一下代码。 ===========================...

Global site tag (gtag.js) - Google Analytics