文档详情

FlexViewer使用步骤(补足六个汉字).doc

发布:2018-12-26约3.53千字共6页下载文档
文本预览下载声明
学习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相关的事件相应。 FlexViewer在运行加载ViewerContainer之后,会首先通过HttpService加载config.xml文件,该文件通过ConfigManager获得ConfigXML,通过对ConfigXML的解析获得ConfigData。 对config.xml文件的解析,获得包括全局概念的属性设置(括号内为config.xml中的节点),包括 proxyUrl(httpproxy)、 BingKey(key)、 geometryService的url(geometryservice)、 title标题(title)、subtitle(subtitle)、logo(logo)、 widgetLayout(widgetlayout)、 widgetContainer的Layout、Left、ringt、top和bottom(layout、left、right、top和bottom)等等 map的属性包括:initial或full(initialextent/fullextent)、 Left、ringt、top和bottom(left、rig
显示全部
相似文档