Flex Viewer设计模式
Flex Viewer的设计原则就是“simple”,方便开发人员定制和扩展。Flex Viewer的源代码是可以自由使用的,因此可以很方便的在Flex Viewer基础上进行定制和扩展。
1)事件总线(Event Bus)
Event Bus 是Flex Viewer中组件用来进行通信的模块,其本质是是一个全局的事件调度器,负责各个事件的分发。Event Bus是在EventBus类中实现,在这个类中定义了一些静态代理函数,保证各个组件对Event Bus的访问。
下面介绍一下ConfigManager如何加载配置文件,然后通过Event Bus发送给其他组件。
a)
在ConfigManager的构造函数里添加CONTAINER_INITIALIZED事件的侦听。
当侦听到CONTAINER_INITIALIZED事件后,Init函数响应。CONTAINER_INITIALIZED事件是在SiteContainer构造完成后分发的
b)
当ConfigManager将配置文件解析完成之后,就会分发CONFIG_LOADED事件。解析后的配置文件打包成一个ConfigData和事件一起分发。
c)
其他需要ConfigData的组件添加对CONFIG_LOADED事件的侦听。下面是WidgetManager的init函数,添加了对CONFIG_LOADED事件的侦听。
2)依赖注入原则(Dependence Injection)
依赖注入是指将类之间的关系通过第三方进行注射,不需要类自己去解决调用关系。目的是降低类之间的耦合度,实现的时候就是把依赖从编译时推迟到运行时。
在Flex Viewer 中使用了DI原则。通过使用配置文件的方式将对界面的构建,服务的调用推迟到运行时,而不是在编译时就固定好。即编译时刻程序不知道使用哪些图片来创建UI,不知道调用哪些地图服务,只有当配置文件被加载到Flex Viewer 中时,这些要素才被固定。因此这就为程序的发布提供很大的灵活性,界面修改,服务更换只需要编辑配置文件,而不需要重新编译。
3)国际化(Internationalization)
国际化(Internationalization)和本地化(localization)是有区别的。国际化是支持多国语言,而本地化是只关注于本国语言的支持。因为Flex Viewer不是一个完整的产品,所以他的国际化和本地化没有完全支持,只是提供了示例代码,而不是完整的实现。目前Flex Viewer提供了两种语言的支持,英语 (US English) 和法语(French)。
a)
创建资源文件
在Flex Viewer 工程的源代码nls目录下的en_US和 fr_FR目录下都有WidgetTemplateStrings.properties文件,这个文件就是资源文件,Flex 编译器会自动识别properties文件并编译。
properties文件中字符串的定义很简单,是[name,value]对,中间用等号隔开
b)
在代码中使用资源文件
使用这些资源文件,首先定义这些资源文件:
然后创建nlsString函数去资源文件中查找特定的字符串。
例如,想查“close”, nlsString(“close”)即可
4)自定义本地化
对Flex Viewer进行本地化(比如对简体中文的支持),推荐使用修改widget配置文件的方式来做,而不是通过国际化的方式。
在widget配置文件中定义需要本地化的字符串,然后通过解析配置文件,完成本地化工作。当需要修改显示的内容时,只要编辑配置文件就可以了。
5)日志和错误处理
记录日志以及添加错误处理逻辑,能够很好的保证程序的健壮性,也能够更加快速的定位到问题,在Flex Viewer中提供了日志记录和错误处理的能力。
a)
日志记录:
在SiteContainer中,定义日志记录模块,用来记录RPC远程调用错误信息。
b)
错误处理:
ActionScript 提供了强大的错误处理能力,但flex编译器不像java那样强制捕捉可能的错误或异常。在flex 编程中,程序员要么使用ErrorEvent要么使用try-catch去处理错误。一旦捕捉到错误或者异常,最好通知用户发生了什么错误并说明什么情况下会产生这个错误。
在Flex Viewer中,只需要调用showError()函数即可讲错误信息返回给用户。showError()函数是BaseWidget中定义的public方法,只要继承于BaseWidget的Widget都可以调用。
Flex Viewer部署
1) 部署 Flex Viewer应用程序
a)
导出release Build。
b) 将bin-release目录的内容拷贝到web服务器即可,详细请参考IIS 或其他web服务器如何发布网站。
2) 部署Widget到Flex Viewer应用程序
将一个新开发的Widget部署到已经发布的Flex Viewer应用程序中去的步骤如下:
a)
拷贝Widget.swf到需要部署的目标位置,即部署Flex Viewer的web服务器或其他web服务器,确保有对其访问的权限。
b)
修改Flex Viewer的配置文件,即config.xml
如果widget不和Flex Viewer在同一个web服务器上,则url需要使用全路径
c)
刷新Flex Viewer程序。
新的widget就已经出现在Flex Viewer程序中了。
4) Security Considerations
a)
crossdomain.xml
在flex开发中,经常会遇到安全沙箱的问题。Flex 不能进行跨域访问。解决这个问题,就需要将crossdomain.xml放置到发布服务的web服务器的root目录下。
crossdomain.xml的内容如下:
b) 网络资源代理(Internet Resource Proxy)
在一些情况下需要访问一些服务(例如GeoRSS feeds),发布这些服务的web服务器又没有配置crossdomain.xml,那么只能通过网络资源代理来访问。
分享到:
相关推荐
4. **Flex Viewer的架构**:Flex Viewer采用模块化设计,由核心框架和可插拔的模块组成。核心框架提供基本的地图操作和UI管理,模块则负责特定的功能,如图层管理、工具条、打印等。这种设计允许开发者按需添加或...
Flex Viewer 是一个基于 Adobe Flex 技术的开源框架,主要用于构建交互式的地理信息系统(GIS)应用。它充分利用了 ESRI 的 ArcGIS Server 平台,为开发者提供了一种快速开发GIS应用的方法。Flex Viewer 的设计目标...
在地理信息系统(GIS)开发领域,ESRI Flex Viewer是一种基于Adobe Flex技术的开源框架,用于构建交互式Web GIS应用程序。该框架为开发者提供了丰富的功能,便于快速开发与ArcGIS Server集成的地图应用。本主题将...
Flex Viewer是ESRI公司推出的一款基于Adobe Flex技术的GIS(地理信息系统)应用程序框架,它专为Web上的地理信息展示和交互设计。Flex是ActionScript 3.0编程语言的一个开发平台,用于创建富互联网应用程序(RIA)。...
Flex Viewer 3.0是一款基于Adobe Flex技术的开源GIS(地理信息系统)客户端应用程序框架,它允许开发者构建交互式、富互联网应用(RIA)以展示和操作地图数据。这个开发包的更新日期为2012年6月6日,表明它是当时...
4. **地理处理服务**:了解如何将GIS分析模型封装为可重复使用的Web服务,以及如何通过Flex Viewer调用这些服务。 5. **Flex编程**:熟悉ActionScript 3语法,学习使用Flex SDK进行开发,掌握MXML和AS3的结合使用,...
在本教程中,你将逐步学习到如何从零开始构建和扩展Flex Viewer,从而利用其强大的功能来创建定制化的GIS应用。通过实践这些步骤,你将能够熟练地运用Flex Viewer的灵活性和易用性,为各种项目提供直观且功能丰富的...
4. **配置文件**:配置文件(通常是config.xml)是Flex Viewer的灵魂,它定义了应用的外观、布局、使用的地图服务以及加载的Widget。通过修改配置文件,开发者可以快速调整和部署新的功能。 5. **生命周期**:当...
这个压缩包文件“arcgis_api_for_flex_3_5.zip”包含了ArcGIS Viewer for Flex 3.5的源码,是学习和开发基于Flex的GIS应用的重要资源。 ArcGIS Viewer for Flex 是一个强大的地图浏览和分析工具,它预设了多种地图...
Flex Viewer 是一个基于 Adobe Flex 技术的轻量级GIS(地理信息系统)应用框架,它允许开发者快速构建具有地图浏览、图层管理、查询等功能的Web GIS应用。本篇文章主要探讨Flex Viewer的结构,特别是其核心组件和...
只需要在Flex Viewer应用程序的配置文件中增加配置项,就可以将功能以widget的形式快速部署到已有的Flex Viewer应用中。 容器由一系列高粘性、低耦合组件组成。容器会把关注的任务交给相应的组件去完成。这种设计...
《ArcGIS Flex Viewer Flash版本的GIS应用详解》 ArcGIS Flex Viewer是一款由Esri公司开发的,基于Adobe Flex技术的Web GIS应用程序框架。它为开发者提供了一种灵活且功能强大的方式来构建交互式的地理信息系统...
ArcGIS Viewer for Flex是一款由Esri提供的基于Adobe Flex的应用程序框架,旨在帮助开发者轻松构建地理信息系统(GIS)应用。该框架采用模块化设计,拥有良好的灵活性与扩展性,允许用户根据实际需求定制功能和外观...
Flex_Viewer是一个由ESRI提供的开源GIS(地理信息系统)框架,旨在帮助开发者构建基于Adobe Flex技术的地图应用程序。它提供了一种简单的方法来集成地图服务,并允许创建复杂的GIS应用程序。本文档将深入探讨Flex_...
ArcGIS Viewer For Flex v3.7是一款基于Adobe Flex技术构建的强大的地理信息系统(GIS)应用,它为用户提供了一个直观且可定制的界面,用于浏览、分析和共享地理信息。此版本采用agslib-3.7-2014-11-06.swc库,增强...