`
qq123zhz
  • 浏览: 536329 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

带超时的urlLoader

    博客分类:
  • Flex
阅读更多
package  cagWeb.service.properties.util
{
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.ProgressEvent;
	import flash.events.SecurityErrorEvent;
	import flash.events.TimerEvent;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.Timer;

	/**
	 *  带超时处理的urlLoader
	 * @author 
	 */
	public class URLLoader extends flash.net.URLLoader
	{
		private var _timeoutTimer:Timer;
		public var timeout:Number; // default timeout value
		
		public static const TIMEOUT:String = 'loaderTimeout';
		
		[Event(name="loaderTimeout", type="flash.events.Event")]
		
		public function URLLoader(timeout:Number = 1000, request:URLRequest=null):void
		{
			super(request);
			this.timeout = timeout;
			_timeoutTimer = new Timer(timeout);
		}
		
		override public function load(request:URLRequest):void
		{
			_timeoutTimer.addEventListener(TimerEvent.TIMER, handleTimeout);
			_timeoutTimer.delay = timeout;
			
			addEventListener(IOErrorEvent.IO_ERROR, handleLoadActivity);
			addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleLoadActivity);
			addEventListener(Event.COMPLETE, handleLoadActivity);
			addEventListener(ProgressEvent.PROGRESS, handleLoadActivity);
			addEventListener(Event.OPEN, handleLoadActivity);
			
			super.load(request);
			_timeoutTimer.start();
		}
		
		override public function close():void
		{
			killTimer();
			super.close();
		}
		
		private function handleLoadActivity(event:Event):void
		{
			killTimer();
		}
		
		private function killTimer(event:Event = null):void
		{
			removeEventListener(IOErrorEvent.IO_ERROR, handleLoadActivity);
			removeEventListener(SecurityErrorEvent.SECURITY_ERROR, handleLoadActivity);
			removeEventListener(Event.COMPLETE, handleLoadActivity);
			removeEventListener(ProgressEvent.PROGRESS, handleLoadActivity);
			removeEventListener(Event.OPEN, handleLoadActivity);
			
			_timeoutTimer.reset();
			_timeoutTimer.removeEventListener(TimerEvent.TIMER, handleTimeout);
			
			if(event)
				super.dispatchEvent(event.clone());
		}
		
		private function handleTimeout(event:TimerEvent):void
		{
			killTimer();
			super.dispatchEvent(new Event(TIMEOUT, true));
//			this.dispatchEvent(new Event(TIMEOUT, true));
//			var dis:EventDispatcher = new EventDispatcher(this);
//			dis.dispatchEvent(new Event(TIMEOUT, true));
		}
	}
}

  具备请求url的超时功能。

 

 

var urlload:UrlLoader = new UrlLoader();
urlLoad.timerout=2000;
urlLoad.addEventListener(URLLoader.TIMEOUT,timerOutHandler);

 

分享到:
评论

相关推荐

    URLLoader动态加载XML

    在ActionScript 3 (AS3)中,`URLLoader` 类是用于加载各种类型数据的强大工具,包括XML。XML(eXtensible Markup Language)是一种轻量级的标记语言,常用于存储和交换数据。本篇文章将深入探讨如何使用`URLLoader`...

    Flex之URLLoader加载XML

    在Flex开发中,`URLLoader` 是一个非常重要的类,用于加载远程数据,如XML、JSON等。在本示例中,它被用来从服务器获取XML文件并将其内容解析为XML对象,以便在应用程序中使用。`Flex` 是Adobe开发的一个开放源代码...

    AS3 中使用 URLRequest 和 URLLoader 与服务器交互

    在Adobe Flash Professional CS5或更新版本的环境中,ActionScript 3(AS3)提供了一套强大的网络通信工具,包括`URLRequest`、`URLLoader`等类,这些类替代了早期版本中的`LoadVars`方法,使得与服务器的交互更加...

    UrlLoader:只是一个简单的网页加载器

    2. **错误处理**:UrlLoader可能包含对网络异常的处理,比如超时、连接失败、无效的URL等,以提供友好的错误反馈。 3. **数据解析**:加载的网页内容通常是HTML格式,UrlLoader可能会包含解析HTML的逻辑,如提取...

    第十二节 URLLoader与后台交互.docx

    1. **URLLoader 类**:`URLLoader`是ActionScript 3.0中的一个类,用于异步加载文本数据,如文本文件(txt、csv)、XML文件、JSON数据等。它继承自`EventDispatcher`,可以监听加载过程中的各种事件,如加载完成(`...

    AS3中使用URLRequest和URLLoader 与服务器交互

    在ActionScript 3 (AS3)中,与服务器进行数据交互是Web开发中的核心部分,主要依赖于两个关键类:`URLRequest`和`URLLoader`。这两个类是Flash Player和Adobe AIR应用程序用来发送HTTP请求并接收响应的重要工具。...

    Flex与后台交互的方法_HTTPService_WebService_URLLoader

    本文将深入探讨Flex与后台交互的三种主要方法:HTTPService、WebService和URLLoader,并重点关注基于WebService的交互方式。 一、HTTPService HTTPService是Flex中用于与HTTP服务器进行数据交换的主要组件。它基于...

    flash as3 加载外部swf jpg gif png loader urlloader的通用代码

    var urlLoader:URLLoader = new URLLoader(); ``` #### 3.2 设置数据加载监听器 ```actionscript urlLoader.addEventListener(Event.COMPLETE, onResourceLoadComplete); ``` 这里注册了一个事件监听器,当资源...

    as和后台通讯 URLLoader(URLStream) FlashRemoting XMLSocket(Socket) FMS/FCS

    - URLLoader 类是ActionScript中用于从URL下载数据的工具,支持以文本、二进制数据或URL编码变量三种形式加载数据。 - 当加载文本文件、XML或其他动态数据时非常有用。它在下载完所有数据后才将内容传递给...

    Flex与Java低数据量通信息二:URLLoader及非视图组件的事件发布订阅

    在本话题中,重点讨论的是使用`URLLoader`类来实现这一目标。 `URLLoader`是Flex SDK中的一个关键组件,它允许我们加载和发送HTTP请求。在与Java后台交互时,我们通常会用到GET或POST方法来获取或提交数据。`...

    yii2-urlloader:多线程下载器链接

    网址加载器 Yii2 的多线程下载器链接。 安装 安装此扩展的首选方式是通过 composer。 将"paulzi/yii2-urlloader": "*"到 require 部分并 ... 'class' => 'paulzi\urlloader\UrlLoader' , // 'on success'

    JS跨域取XML--借助AS的URLLoader

    本文讨论的是如何通过ActionScript(AS)中的URLLoader类来解决JavaScript(JS)中的跨域问题,特别是当数据接口只提供XML格式数据时的场景。ActionScript是Adobe Flash平台使用的编程语言,而URLLoader类则是...

    Flex 指定文件下载 带进度条

    在Flex编程中,指定文件下载并带有进度条功能是一项常见的需求,这主要涉及到网络I/O操作、事件处理以及用户界面的更新。以下是对这个主题的详细讲解。 首先,Flex是Adobe开发的一种开源富互联网应用程序(RIA)...

    ActionScript编程 加载文本格式数据.docx

    在ActionScript 3.0中,加载外部文本数据是常见的需求,这可以通过使用URLLoader类来实现。URLLoader是Flash Player和Adobe AIR中用于加载网络资源的核心组件。 加载文本格式数据的作用在于能够使应用程序获取并...

    as3.0 XML加载

    var urlLoader:URLLoader = new URLLoader(); urlLoader.addEventListener(Event.COMPLETE, xmlLoaded); ``` 2. **创建URLRequest对象**:此对象封装了要加载的URL。我们需要指定XML文件的位置。 ```actionscript ...

    修改 flash中的url

    var urlLoader:URLLoader = new URLLoader(); var request:URLRequest = new URLRequest("原始URL"); urlLoader.load(request); ``` 2. **修改URL**: 要修改URL,你需要创建一个新的URLRequest对象,并设置新...

    flex与后台交互的四种方法.doc

    它可以处理不同类型的响应数据,如文本、二进制数据等,并且比 HTTPService 更灵活,因为它支持自定义 HTTP 头部和设置超时时间等功能。 #### 2. 使用示例解析 文档中还给出了一个 URLLoader 的使用示例: ##### ...

    FLASH AS2 读取asp

    在AS2中,通过XMLSocket类或者URLLoader类可以实现客户端与服务器的数据通信。下面将详细介绍这个主题。 1. **ActionScript 2.0基础**: ActionScript 2.0是Adobe Flash Player支持的一种编程语言,主要用于创建...

Global site tag (gtag.js) - Google Analytics