`

(转)Flex异步令牌AsyncToken的用法介绍

    博客分类:
  • flex
 
阅读更多
   什么是AsyncToken?官方文档是这样描述的:"这个类针对异步RPC操作提供了一个用来设置额外的或者令牌级数据的地方。它也允许一个IResponder作为一个独立调用被附加。这个AsyncToken能够在ResultEvent和FaultEvent中用token属性来引用。"
      如果你对Flex中远程异步调用的本质不熟悉,肯定还是有点困惑的。我碰见过大量的对这个便捷类不熟悉的人,因此我试着来让它明朗一点。
      无论何时从你的flex/AIR应用中使用多个外部调用中的一个,你都不会知道这些调用是否或者何时返回结果(或者错误),你也不会知道它们返回的顺序。即使你按照"RO1","RO2","RO3"的顺序调用远程对象,它们返回的顺序还是可能不一样。你可能也希望针对这些结果能有不同的处理。
       一种方式就是给每一个调用分配一个异步令牌(AsyncToken )来追踪这些调用。
      不要这样来进行远程调用:
       myRO.myRemoteMethod();
       你应该这样:
       var token:AsyncToken=myRO.myRemoteMethod();(确保导入了mx.rpc.AsyncToken)

      现在就有了一个变量"token",代表这个单独的调用。像这样,你可以分配token自己的result和fault处理函数
token.addResponder(myResponderClass);
     这里myResponderClass类实现了IResponder.实现Iresponder简单的意味着定义了如下两个方法签名:
   * public function result(data:Object):void
      收到返回值后由服务调用此方法。 
    * public function fault(info:Object):void
      收到错误后由服务调用此方法。

      因此你可以对你的远程调用在调用时设置result和fault处理函数,而不用把硬编码放到你的远程对象,HTTPService或者WebService标签里。这也恰好就是Cairngorm和其他微体系结构的运行方式。
       AsyncToken最后一点很酷的特性就是它是动态类。这意味着,当你进行远程调用时可以添加属性到token上,然后result/fault处理函数中读取这些属性。

       另外,在flex sdk3.4中有CallResponder,可以用CallResponder实例的token属性引用这个异步令牌。在flex sdk3.2中式没有这个类的,如果要用的话就只能自己写了,只要这个类继承自Iresponder接口就可以了
分享到:
评论

相关推荐

    flex 异步加载tree

    根据给定的信息,我们可以深入探讨Flex中的异步加载Tree组件的相关知识点。 ### 一、Flex与AsyncTree组件 #### 1. Flex简介 Flex是一种开源的框架,用于构建跨平台的桌面应用程序和移动应用程序。它提供了强大的...

    flex4.6 air 异步操作sqlite数据库

    "flex4.6 air 异步操作sqlite数据库"的主题着重于如何在Flex 4.6和Adobe AIR环境中实现非阻塞的SQLite数据库操作。在传统的同步操作中,程序会等待数据库操作完成才会执行下一步,这可能导致用户界面冻结,尤其是在...

    ArcGIS Flex API 中的 Flex 技术-异步特征

    在Web GIS领域,尤其是使用ArcGIS Flex API进行开发时,异步处理能力是至关重要的。Flex技术本身支持异步调用,这使得它非常适合用于创建响应迅速且用户友好的Web GIS应用程序。本文将深入探讨ArcGIS Flex API中的...

    flex4 中文 教程 详细介绍flex4 的用法

    Flex 4 中文教程主要面向没有基础的开发人员,通过深入浅出的方式介绍如何使用 Flex 4 构建动态、互动的 Web 应用。教程将详细介绍四种不同的架构方法,这些方法都是基于 Flex 与 BlazeDS 之间的数据通信,结合 ...

    用Flex写的照片旋转

    标题中的“用Flex写的照片旋转”指的是使用Adobe Flex框架开发的一款功能,允许用户对照片进行旋转操作。Flex是一个开源的、基于ActionScript的框架,主要用于构建富互联网应用程序(RIA),它提供了一整套组件和...

    Flex Tree 异步加载数据及分屏小工具

    综上所述,"Flex Tree 异步加载数据及分屏小工具"涉及的技术点主要包括Flex组件的使用、异步加载机制、数据提供者管理、事件驱动编程、分页策略以及源码分析和优化。这些知识对于构建高效、响应式的Flex应用程序至关...

    flex与服务端通信的as封装源码(同步、异步两种方式)

    这篇资料提供了一套AS(ActionScript)源码,用于实现Flex客户端与服务端的交互,支持同步和异步两种通信方式,且采用HTTPService进行封装,避免了对BlazeDS的依赖。主要知识点包括: 1. **Flex与服务端通信**:...

    flex4自定义事件用法

    下面将详细介绍Flex4自定义事件的用法,以及如何在一个完整的项目中导入和运行。 1. **创建自定义事件类** - 首先,我们需要创建一个继承自`Event`类的新类。通常,我们会选择`flash.events.Event`或`mx.events....

    Flex3组件介绍包含flex3的所有组件介绍并有例子

    Flex3组件介绍,包含flex3的所有组件介绍并有例子

    ESRI解决方案 构建基于Flex API和JavaScript API的地图应用

    除了Flex API,ESRI还提供了JavaScript API,这是一套轻量级的API,允许开发者使用JavaScript语言来构建地图应用。JavaScript API特别适合于构建那些需要快速开发、易于与其他Web应用集成的地图服务。它简化了地图...

    flex 动态树,异步树

    4. 使用Flex实现动态树和异步树: - Flex SDK提供了Tree和TreeItemRenderer类,用于创建和定制树形组件。开发者可以通过这些类来实现动态树和异步树的功能。 - 数据提供者(DataProvider):设置数据模型,通常是...

    flex通道简要介绍

    flex通道介绍,主要介绍flex的通道设置

    Flex tree的用法

    让我们深入了解一下Flex Tree的用法以及与XML数据结合的方式。 1. **Flex Tree的基本用法** - **创建Tree组件**: 在Flex中,你可以通过在MXML或ActionScript中定义`mx.controls.Tree`组件来创建Tree。 - **数据...

    flex英文帮助文档(非常详细)

    - **图表入门**:介绍了 Flex 中图表的基本概念和使用方法。 - **图表类型**:概述了 Flex 支持的不同类型的图表。 - **格式化图表**:讲述了如何定制图表样式以满足特定需求。 - **在图表中显示数据和标签**:介绍...

    17个典型的Flex应用案例介绍

    10. **Bamboo Dock Winner**:这个应用是一个桌面管理工具,使用Flex构建的直观界面,帮助用户组织和访问他们的数字内容,提高了工作和生活效率。 通过以上案例,我们可以看到Flex在出版、文档处理、教育、娱乐、...

    flex组件详细介绍

    本篇将详细阐述Flex组件的使用及其核心概念,结合示例代码和组件效果图,帮助你快速上手。 一、Flex容器 在Flex布局中,父元素被称为Flex容器,通过设置`display`属性为`flex`或`inline-flex`,可以将其转换为Flex...

    flex旋转图 很好的 示例代码

    在本文中,我们将深入探讨如何使用Flex技术和Java来创建一个动态的、可旋转的图形展示。Flex是一种基于ActionScript和MXML的开放源代码框架,主要用于构建富互联网应用程序(RIA)。它提供了强大的图形渲染能力,...

    3IM-govern.rar_flex_异步电机调速_弱磁_弱磁调速_调速

    "3IM-govern.rar_flex_异步电机调速_弱磁_弱磁调速_调速"这一压缩包文件包含了关于三相异步电机调速技术的深入探讨,特别是弱磁调速方法。这里我们将详细讲解三相异步电机的调速原理,以及弱磁调速在其中所扮演的...

    Flex连接数据库三种方法

    Flex 连接数据库的方法主要涉及三种技术:HttpService、WebService 和 RemoteObject。这些技术都是 Flex 与后端服务器交互的手段,因为Flex本身并不具备直接访问数据库的能力,必须通过服务端代理来实现。 1. **...

    Flex万年历记事本_flex源码

    通过对"Flex万年历记事本"的源码学习,开发者不仅可以了解Flex的基本用法,还能深入理解如何在实际项目中整合多种Flex特性,提升自己的RIA开发能力。同时,这也是一个实践数据管理和用户交互的绝佳案例。

Global site tag (gtag.js) - Google Analytics