上午做了关于FlexViewer的讲座,项目组决定下面继续在FlexViewer界面上拓展,因此我也有意通过博客与大家分享。众所周知,FlexViewer是由Esri公司推出的基于Web的Flex应用框架,开发人员通过配置文件即可快速搭建一个以地图服务应用为目的的富互联网应用。
学习FlexViewer,最重要的是掌握其框架结构,了解FlexViewer组织模式,包括VierContainer、MapManager、ConfigManager、WidgetManager的关联关系,以及事件。本篇将重点讲述FlexViewer的组织原理以及开发方法,先从事件入手,通过事件的分发与监听,将FlexViewer中的各个Manager关联起来,进而明确其组织架构。
1、Flex Viewer事件
整个FlexViewer,有两个关于事件的类EventBus和AppEvent。EventBus继承自EventDispatcher类,它是一个singleton类,并且所有AppEvent的分发都要EventBus。AppEvent事件的构造函数如下,参数包括了事件类型(type),对象类型(data)以及回调函数:
public function AppEvent(type:String, data:Object = null, callback:Function = null)
{
super(type);
_data = data;
_callback = callback;
}
事件类型:AppEvent的事件类型中涵盖了所有与FlexViewer相关的,其中比较重要的有:
APP_ERROR:APP错误事件
CONFIG_LOADED:加载Config文件完成后调用事件
MAP_LOADED:加载地图完成后调用
SET_MAP_ACTION:与地图交互相关的事件,其data参数中包含有地图交互动作的token值,如Zoomin,Zoomout等;
DATA_FETCH_ALL:获得所有数据时调用;
DATA_FETCH:获得数据时调用
DATA_CREATE_INFOWIDGET:创建Widget时调用
WIDGET_RUN:Widget运行时调用;
WIDGET_CHANGE_STATE:Widget状态变化时调用,其data参数中包含了widgetID和State值
WIDGET_FOCUS:Widget得到焦点时调用
WIDGET_ADD:添加Widget时调用
WIDGET_ADDED:widget已添加后调用
2、掌握FlexViewer的架构
FlexViewer中,首先构造的UIComponet就是ViewContainer。ViewContainer中首先要通过httpservice加载config.xml文件,然后加载MapManger、ConfigManager、WidgetManager等对象;
MapManager与MapMangerSkin共同表达了FlexViewer主视图,实例化了Map对象,然后通过ViewContainer.DispatchEvent方法分发AppEvent.MAP_LOADED事件,事件的参数包含了事件类型(Type),还包含了对象类型(data参数),这样就可以通过AppEvent事件的监听获得Map对象了。
ConfigManger主要用于加载widget的xml文件,每一个widget实例化之前都要加载xml文件,在xml中可以定义一些全局的变量(如geometryservice等),加载完毕之后同样通过viewContainer.DispatchEvent分发 CONFIG_LOADED事件,并添加相应的事件监听。
WidgetManager主要用于加载Widget,任何widget制作之后都要在WidgetManager中才能使用,因此该类中主要是Widget相关的事件相应。
- 大小: 182.8 KB
- 大小: 320.3 KB
分享到:
相关推荐
FlexViewer 1.3 框架源代码是ESRI公司发布的一款基于Adobe Flex技术的Web GIS应用开发框架。这个框架允许开发者构建交互式的、地图为中心的Web应用程序,提供了丰富的地图操作、图层管理以及地理分析功能。在深入...
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, ...
FlexViewer是ArcGIS的一种轻量级应用程序框架,主要用于构建基于Web的地图应用。它基于Adobe Flex技术,使得开发者能够创建交互式、丰富的地理信息系统(GIS)界面。本教程将引导你深入理解FlexViewer的开发过程,...
FlexViewer是一种基于Adobe Flex技术的轻量级Web应用程序框架,主要用在地理信息系统(GIS)领域,用于展示和操作地图及地理数据。它允许开发者创建交互式的、丰富的互联网地图应用,用户无需安装任何桌面软件就能...
FlexViewer2.3是一款基于Adobe Flex技术的轻量级WebGIS开发框架,它允许开发者根据自身需求自由定制,构建自己的在线地图应用。Flex是Adobe公司推出的一种用于创建富互联网应用程序(RIA)的开源编程语言和框架,...
FlexViewer一般指的是一种在Flex环境下开发的组件,它可能包含了专门的事件监听和分发方式。剥离出来意味着我们希望将这些特定的实现方式,封装成为可以在不同项目间复用的工具或模式。 在提供的代码中,AppEvent类...
FlexViewer 2.3 是一个基于Adobe Flex技术的开源应用程序框架,主要用于构建GIS(地理信息系统)界面,它与Esri的ArcGIS Flex API 2.3紧密集成。这个框架允许开发者创建交互式的地图应用程序,展示地理数据并进行...
FlexViewer是一个针对GIS(地理信息系统)应用开发的框架,它允许开发者通过简单的配置就能快速部署和开发Web Mapping应用。FlexViewer设计的核心原则是SIMPLICITY(简单),意味着该框架易于使用、配置和扩展,同时...
FlexViewer是一个开放源代码的框架,它允许开发者构建交互式的地图应用程序,这些应用程序可以嵌入到Web页面中,用于展示和分析地理数据。Flex是Adobe Flash Platform的一部分,它是一种强大的客户端开发工具,能够...
10. **社区支持**:由于是开源项目,FlexViewer 3.0有一个活跃的开发者社区,他们共享解决方案、提供技术支持和发布第三方插件,这对于学习和解决问题非常有帮助。 通过解压"flexviewer-3.0-src"文件,你可以访问源...
FlexViewer是一个基于Adobe Flex的轻量级GIS应用框架,用于构建交互式的地图应用程序。在旧版本的FlexViewer中,开发者通常会使用MXML来声明和配置组件,但在新版本中,可能需要转换为ActionScript(AS)代码来避免...
7. **社区支持**:由于其开源性质,FlexViewer 2.5拥有一个活跃的开发者社区,提供了大量的示例、教程和插件,方便开发者学习和交流。 在压缩包文件“FlexViewer2.5”中,可能包含了FlexViewer 2.5的源代码、示例...
在IT行业中,FlexViewer是一种基于Adobe Flex的轻量级应用程序框架,主要用于构建地理信息系统(GIS)的用户界面。它允许开发者创建交互式的地图应用,提供丰富的功能,如图层管理、查询、分析等。在本场景中,我们...
**FlexViewer**框架是基于ArcGIS Flex API构建的一个开源框架,用于快速开发地理信息系统(GIS)应用程序。该框架提供了一套完整的用户界面和一系列常用的GIS功能,使得开发者能够更专注于业务逻辑而非页面设计。...
FlexViewer是ArcGIS的一种轻量级应用程序框架,用于构建基于Web的地理信息系统用户界面。在本项目中,标题提到的"FlexViewer2.4(用户界面为FlexViewer1.3样式)"表明这是一个针对FlexViewer2.4的定制版本,其界面设计...
FlexViewer是ArcGIS的一种轻量级应用程序框架,主要用于构建基于Web的地理信息系统应用。这个“FlexViewer2.3开发教程.rar”压缩包很显然是为了帮助开发者深入理解和掌握FlexViewer 2.3版本的开发技术。FlexViewer ...
总的来说,FlexViewer 2.2 是一个学习和实践GIS Web开发的理想平台,通过深入研究其源代码,开发者可以提升在Flex和ArcGIS API for Flex方面的技能,同时也能了解到如何构建高效、可定制的地图应用。
FlexViewer解析之示例源码,是一篇详细介绍FlexViewer从基础概念到架构设计再到自定义和扩展的详细文章。FlexViewer,是基于ArcGIS API for Flex(简称AGSFlexAPI)设计的一个WebGIS应用程序。最初的版本为...
FlexViewer2.1是一款基于Adobe Flex技术的轻量级WebGIS开发框架,它允许开发者根据自身需求自由定制,构建个性化的Web地理信息系统。这个框架的核心是利用ActionScript 3编程语言,结合MXML来实现与地图服务的交互,...