flex viewer
文件大小: 1019k
源码售价: 10 个金币 积分规则     积分充值
资源说明: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,那么只能通过网络资源代理来访问。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。