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,如需转载请自行联系原作者

相关文章
|
2月前
|
Java Unix 关系型数据库
时间API在更新,传奇已经谢幕,但技术永远不死
时间API在更新,传奇已经谢幕,但技术永远不死
38 1
|
6天前
|
人工智能 自然语言处理 API
深度融合与创新:Open API技术促进AI服务生态构建
【7月更文第21天】在数字化转型的浪潮中,人工智能(AI)已从概念探索走向实际应用,深刻改变着各行各业。Open API(开放应用程序接口)作为连接技术与业务的桥梁,正成为推动AI服务普及和生态构建的关键力量。本文将探讨Open API技术如何通过标准化、易用性和灵活性,加速AI服务的集成与创新,构建一个更加丰富多元的AI服务生态系统。
31 2
|
7天前
|
存储 JSON 安全
OAuth2与JWT在API安全中的角色:技术深度解析
【7月更文挑战第20天】OAuth2和JWT作为两种重要的安全协议,在API安全中发挥着不可或缺的作用。OAuth2通过提供灵活的授权框架,实现了对资源的细粒度访问控制;而JWT则通过其紧凑性和自包含性,确保了身份验证和信息传输的安全性。在实际应用中,将OAuth2和JWT结合使用,可以构建出既强大又安全的API服务,为用户提供更加安全、可靠和便捷的数字体验。
|
29天前
|
JSON 数据可视化 API
技术心得:如何用Python和API收集与分析网络数据?
技术心得:如何用Python和API收集与分析网络数据?
25 2
|
8天前
|
监控 Kubernetes 数据可视化
API关键技术-日志审计技术
【7月更文挑战第19天】日志审计的目的是通过审计策略和日志分析,发现系统在某一时间段内发生的异常事件,通过事件关联和追溯,分析与事件相关联的内外部人员、系统、事件涉及的范围等。
|
1月前
|
缓存 前端开发 JavaScript
中间件异步API
【6月更文挑战第18天】
21 3
|
1月前
|
XML 安全 API
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
|
22天前
|
前端开发 小程序 API
【微信小程序】使用 Promise、async 和 await 将异步API 改写为同步
【微信小程序】使用 Promise、async 和 await 将异步API 改写为同步
24 0
|
23天前
|
数据采集 自然语言处理 算法
淘宝评论的 API 接口获取:技术探索与应用
这篇文稿探讨了淘宝评论API在数据驱动的商业环境中的重要性。API接口使得高效、精准地获取淘宝评论成为可能,帮助企业分析消费者反馈、优化产品和服务,以及训练智能算法。通过API,商家能实时监控评论以快速响应市场变化,同时确保数据合规性和安全性。然而,获取和使用数据涉及复杂的接口调用、数据清洗、反爬虫机制应对等挑战。通过实际案例,展示了API如何促进产品优化、市场研究和智能客服改进。随着技术发展,未来将有更多创新应用,但也需面对更严格的法规监管。
|
25天前
|
Java API UED