收藏 分享(赏)

FlexViewer使用步骤.doc

上传人:11xg27ws 文档编号:7806112 上传时间:2019-05-26 格式:DOC 页数:6 大小:876KB
下载 相关 举报
FlexViewer使用步骤.doc_第1页
第1页 / 共6页
FlexViewer使用步骤.doc_第2页
第2页 / 共6页
FlexViewer使用步骤.doc_第3页
第3页 / 共6页
FlexViewer使用步骤.doc_第4页
第4页 / 共6页
FlexViewer使用步骤.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、学习 FlexViewer,最重要的是掌握其框架结构,了解 FlexViewer 组织模式,包括VierContainer、MapManager、ConfigManager、WidgetManager 的关联关系,以及事件。本篇将重点讲述 FlexViewer 的组织原理以及开发方法,先从事件入手,通过事件的分发与监听,将 FlexViewer 中的各个 Manager 关联起来,进而明确其组织架构。1、Flex Viewer 事件整个 FlexViewer,有两个关于事件的类 EventBus 和 AppEvent。EventBus 继承自EventDispatcher 类,它是一个 sin

2、gleton 类,并且所有 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_LOADE

3、D:加载 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:Widg

4、et 得到焦点时调用WIDGET_ADD:添加 Widget 时调用WIDGET_ADDED:widget 已添加后调用2、掌握 FlexViewer 的架构FlexViewer 中,首先构造的 UIComponet 就是 ViewContainer。ViewContainer 中首先要通过 httpservice 加载 config.xml 文件,然后加载MapManger、ConfigManager、WidgetManager 等对象;MapManager 与 MapMangerSkin 共同表达了 FlexViewer 主视图,实例化了 Map 对象,然后通过 ViewContainer

5、.DispatchEvent 方法分发 AppEvent.MAP_LOADED 事件,事件的参数包含了事件类型(Type),还包含了对象类型(data 参数) ,这样就可以通过 AppEvent事件的监听获得 Map 对象了。ConfigManger 主要用于加载 widget 的 xml 文件,每一个 widget 实例化之前都要加载 xml文件,在 xml 中可以定义一些全局的变量( 如 geometryservice 等),加载完毕之后同样通过 viewContainer.DispatchEvent 分发 CONFIG_LOADED 事件,并添加相应的事件监听。WidgetManager

6、 主要用于加载 Widget,任何 widget 制作之后都要在 WidgetManager 中才能使用,因此该类中主要是 Widget 相关的事件相应。FlexViewer 在运行加载 ViewerContainer 之后,会首先通过 HttpService 加载 config.xml文件,该文件通过 ConfigManager 获得 ConfigXML,通过对 ConfigXML 的解析获得ConfigData。对 config.xml 文件的解析,获得包括全局概念的属性设置(括号内为 config.xml 中的节点) ,包括proxyUrl(httpproxy) 、BingKey(key

7、) 、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、right、top 和

8、bottom) 、wkid(wkid) 、 wkt(wkt) 、zoomslider 是否可见(zoomslidervisible) 、scalebar 是否可见(scalebarvisible ) 、esrilogo 是否可见( esrilogovisible) 、lod 的设置(父节点 lods,子节点 lod) 、basemap 用于显示的地图服务(父 basemaps 子 Layer) 、用于操作的地图服务(父 operationallayers 子 layer)等等Layer 的属性包括:显示标签(Label)地图类型(dynamic/tiled/bing/image/wms/arc

9、ims)地图服务的 url(url)widget 的属性包括: Label(label) 、Icon 图标(icon)config 文件(config );widget 所对应的 url,swf 文件(url);preload 是否展开(preload);x(x) ,y(y);Left、ringt 、top 和 bottom(left、right、top 和 bottom)等开发者也可根据自定义,定制自己的标签。如果是全局的,需要在 WidgetManager 中解析,如果是和 Map 相关的,需要在 MapManager 中解析,如果和 Widget 相关,需要在WidgetManager

10、中解析。FlexViewer 开发,大多是继承自 BaseWidget,进行 Widget 开发。整个 FlexViewer 的框架架构,可以看做是由容器(Container ) 、管理器(Manager)以及一个个 Widget 组成的,其中 Widget 即是 FlexViewer 中实现功能的微型组件,在一定程度上讲,Widget 承载了我们的需求实现。在整个 FlexViewer 中,只有 index.mxml 是主应用程序,所有的 widget 都是 Componet。所以,我们要创建自己的 widget,第一步即是,创建一个 mxml Component。第二步,继承自 BaseW

11、idget,创建自己的 Widget。切记:一定要继承自 BaseWidget,才能最终将自己的 widget 添加至 WidgetManger 中。第三步,既然是继承自 BaseWidget,我们就要明确继承了那些成员。继承的成员包括:WidgetID:widget 的唯一 ID 值WidgetTitle:titleWidgetIcon:图标Config: widget 自己的 config 文件ConfigXML:config.xmlConfigData:ConfigData 类型Map:全局的 Map 类型IsDragable:是否可拖拽IsResizeable:是否重定义大小SetXYPosition 函数:设置显示位置第四步:将自己的 widget 加入至 Flex Module List 中(Project PropertiesFlex Modules) ,编译。第五步:在自己的 widget 中,编写自己的功能实现代码。最后一步:在 config.xml 中标签内添加自己的 widget 如下,运行。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报