Flex Viewer是ESRI公司推出的可以高效开发基于WEB的地理信息应用系统的一种基本架构。它帮助你屏蔽了底层繁琐的操作,比如通信机制。此框架和服务器端的通信是基于Web Service的。在服务器端,发布出你的服务,比如地图服务,前端只需简单的调用操作。开发人员只需关注你的功能模块设计。
1、Widget开发
在Flex Viewer中,采用Widget的方式进行模块设计。每一个模块都是一个Widget,具体说是BaseWidget。
类的关系如上图所示,IWidgetTemplate和IBaseWidget是接口,WidgetTemplate和BaseWidget分别实现它们。在初始化BaseWidget时,会依赖IWidgetTemplate去初始化每个模块的title、icon等属性。
上图很清晰地给出了一个Widget的处理流程图。要说明的是,由于BaseWidget继承了Module,所以每一个Widget都是一个Module。好处很多,延迟加载,高内聚性,模块之间几乎没有侵入性。
2、总体上Container结构
图中提到了Flex Viewer Container,整个框架看着是一个大的Container,而这个Container是有一些高内聚低耦合的组件组成,如下图:
这里可以看到整个框架是由几个组件构成,ConfigManger用来管理配置文件,WidgetManger管理所有的Widget。等等。。。SiteContainer.mxml持有对这些组件的引用。
3、核心事件处理
因为Flex采用事件机制,那么,在Flex Viewer中各组件(* Manager)之间通信时怎样完成的呢?这里就提到了Flex Viewer中核心类:EventBus. 注意到EventBus采用单例模式,保证在整个框架中只有一个EventBus。SiteContainer.mxml中提供了一系列静态的代理方法可以访问EventBus。
当上图中每一个组件(* Manager)初始化的时候,都会监听相应的事件;而SiteContainer会把监听任务委托给EventBus,并由EventBus统一分发事件。通过这种发布/订阅的消息模式,组件之间可以轻易交互而不用直接访问组件中的方法。所以,这种方式使组件解耦,可复用性很高。
EventBus中使用的事件类型都是由AppEvent.as这个类定义,它负责帮助EventBus在各个组件间传递消息。它是一个自定义事件,负载着数据传递的功能。
总结一下吧,Flex Viewer是基于事件机制,使用模块化设计,每一个模块负责各自的任务,互不侵入。模块之间的消息传递通过EventBus实现。自定义Widget编译完在各自的配置文件中配置路径、图标等信息,并在config.xml中添加此配置文件的路径信息,最后由ConfigManager统一加载config.xml文件。
分享到:
相关推荐
ESRI公司发布的flexviewer1.3框架的源代码
FlexViewer2.3框架源码 可自由定制,开发自己的webgis
简要介绍了FlexViewer框架发展及其机制
主要讲述了FlexViewer3.1版本,新增加的一些重要的特征
ESRI公司发布的flexviewer2.0框架的源代码,较flexviewer1.3框架有很大的变化。
flexviewer2.5框架 很经典
改写FlexViewer2.4框架,将其用户界面改为FlexViewer1.3的样式。IDE FB4.5 SDK FLEX 4.5
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真不错
FlexViewer开发教程、开发指南、相关实例。
FlexViewer2.1框架源码 可自由定制,开发自己的webgis
flexviewer2.3源代码 配合arcgis flex api2.3使用 开发工具flash builder4
ESRI公司发布的flexviewer2.4框架的源代码,Flex Viewer是ArcGIS Viewer for Flex的简称, Flex Viewer是基于ArcGIS API for Flex(简称AGS Flex API)设计的一个WebGIS应用程序,用户可以通过修改配置文件、自定义...
FlexViewer开发教程,挺不错的一个FlexViewer文档,帮助快速了解Flex框架。
flexviewer的source code,2012年12月12日更新。
flexviewer简单登陆(新版本能用)
flex viewer 3.0 源码 下载
ESRI-FlexViewer解析 了解FlexViewer内的一些控件和基础应用
FlexViewer配置管理器