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

简介:

    Flex天生具备异步调用的能力,使得Flex能够很好的适应webgis应用中的常用功能,在ArcGIS Flex API中,最典型的莫过于地理要素信息的动态显示,例如对于关注的地理要素,当鼠标移动上去后显示出该要素的基本信息,ArcGIS Flex API Demo的"Show InfoWindow on mouse hover"就是这样的例子。
复制代码
ExpandedBlockStart.gif Code
<![CDATA[
    import com.esri.ags.geometry.MapPoint;
    import com.esri.ags.Graphic;
    private const m_content : InfoWindowRollOverContent 
= new InfoWindowRollOverContent();
            
    override protected 
function createChildren():void
    {
        super.createChildren();
        map.infoWindow.content 
= m_content;
        map.infoWindow.labelVisible 
= false;
        map.infoWindow.closeButtonVisible 
= false;
    }
            
    private 
function rollOverHandler( event : MouseEvent ) : void
    {
        const graphic : Graphic 
= Graphic( event.target );
        const mapPoint : MapPoint 
= MapPoint( graphic.geometry );
        m_content.lat 
= mapPoint.y.toFixed( 3 );
        m_content.lon 
= mapPoint.x.toFixed( 3 );
        map.infoWindow.show(mapPoint);              
    }
            
    private 
function rollOutHandler( event : MouseEvent ) : void
    {
        map.infoWindow.hide();
    }
]]
>
复制代码

    当鼠标移动到地理要素(点、线、面)上方时,会调用rollOverHandler方法,显示出该地理要素的x/y坐标,之后由rollOutHandler清除显示的结果,整个过程不会同步刷新所有地图。Flex异步调用的特性和单线程机制,使得我们经常会在Flex中使用回调函数的方法,如之前写过的事件监听:
复制代码
ExpandedBlockStart.gif Code
<?xml version="1.0"?>
<!-- events/SimpleEventHandler.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp();">
    
<mx:Script><![CDATA[
        import mx.controls.Alert;

        private function initApp():void {
            b1.addEventListener(MouseEvent.CLICK, myEventHandler);
        }

        private function myEventHandler(event:Event):void {
            Alert.show("An event occurred.");
        }
    ]]
></mx:Script>

    
<mx:Button id="b1" label="Click Me"/>
</mx:Application>
复制代码

    Flex中如果希望实现同步,可以考虑WebService Components,异步调用最初会让人想到是基于性能的一种设计,现在换成WebService似乎走向了另外一个极端,于是出现这样的设计:
    "在通过RemoteObject进行数据交互的时候触发invoke事件,把画面给锁住,result的时候解锁。"

    但这只是RemoteObject在数据交互上同步,在画面上的动作还是有异步存在的,对于地图交互来说,还是异步设计更贴近实际应用。

 本文转自Flyingis博客园博客,原文链接:http://www.cnblogs.com/flyingis/archive/2008/12/14/1354779.html,如需转载请自行联系原作者

相关文章
|
9天前
|
IDE Java API
使用Java Web技术构建RESTful API的实践指南
使用Java Web技术构建RESTful API的实践指南
|
2月前
|
数据采集 传感器 人工智能
大数据关键技术之电商API接口接入数据采集发展趋势
本文从数据采集场景、数据采集系统、数据采集技术方面阐述数据采集的发展趋势。 01 数据采集场景的发展趋势 作为大数据和人工智能工程的源头,数据采集的场景伴随着应用场景的发展而变化,以下是数据采集场景的发展趋势。
|
3月前
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
68 0
|
3月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
71 0
|
4月前
|
Java API Maven
微服务技术系列教程(27) - SpringCloud- Zuul整合Swagger管理微服务所有API
微服务技术系列教程(27) - SpringCloud- Zuul整合Swagger管理微服务所有API
44 0
|
2月前
|
存储 JSON API
淘宝/天猫商品详情实时数据API技术实现
随着电子商务的蓬勃发展,对于电商平台的商家而言,实时获取商品数据变得至关重要。通过API接口,可以轻松地从电商平台获取这些数据。本文将详细介绍如何使用淘宝/天猫提供的API接口实现商品详情数据的实时获取,并给出具体的代码示例。
|
2月前
|
Web App开发 前端开发 测试技术
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
【Web API系列】使用异步剪贴板API(async clipboard)的图像的编程复制和粘贴
44 1
|
2月前
|
消息中间件 Kafka API
Kafka - 异步/同步发送API
Kafka - 异步/同步发送API
37 0
|
3月前
|
监控 数据挖掘 API
阿里巴巴API接口技术揭秘:轻松驾驭电商数据,提升业务效率
阿里巴巴API接口技术揭秘:轻松驾驭电商数据,提升业务效率
|
7月前
|
消息中间件 负载均衡 Kafka
Kafka学习---2、kafka生产者、异步和同步发送API、分区、生产经验(一)
Kafka学习---2、kafka生产者、异步和同步发送API、分区、生产经验(一)