FlexViewer开发框架个人理解
一、整个应用程序公共事件列表----AppEvent
01、appError
02、configLoaded
03、mapLoaded
04、layerLoaded
05、basemapMenuClicked
06、widgetMenuClicked
07、setMapNavigation
08、setStatus
09、widgetShowInfo
10、setMapAction
11、dataAdded
12、dataUpdated
13、dataFetch
二、整个应用程序事件分发器----EventBus
01、仅且只能有一个:使用静态成员变量保证只有一个该对象
02、提供的方法:向整个应用程序分发一个事件
三、整个应用程序所使用的数据数据结构
01、将该应用程序所使用的一切数据已对象形式封装成为一个
对象(程序需要改进的地方)
02、对数据内部按各自职能的不同分为6种不同的类别
四、层层揭开
(一)、最底层:整个应用程序最大的容器----Application
01、功能:侦听应用程序主绘图区域键盘事件,添加事件处理
程序
02、实现:
stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);
03、实现自身容器的功能
(二)、第二层:整个应用程序最为重要容器----SiteContainer
01、功能:* 事件:监听并处理整个应用程序所发生的错误
分发容器加载完成事件
* 会话:为其他层高级对象提供事件处理工具,分
发,注册(监听),移除
* 唯一:保障容器唯一性
* 状态:设置程序当前操作状态
(三)、第三层:各个并列层共同组成
01、配置管理器----ConfigManager
(01)、初始化:完成ConfigData对象的实例化
(02)、会话:监听底层容器初始化完成
分发数据加载完成事件并携带数据
(03)、
02、界面样式管理器----UIManager
(01)、完成样式表的加载,交由样式管理器统一管理
03、控制面板----Controller
(01)、初始化:* 注册配置文件加载事件----配置数据,
导航条,操作菜单
* 注册地图加载事件----配置地图
* 注册程序状态事件----配置当前操作状
态
(02)、菜单:会话与各个子组件
(03)、控制内容:地图,地图操作状态,程序菜单
(04)、
04、数据管理----实现整个应用程序数据缓存与缓存访问
工具性:
(01)、缓存: * 一级缓存----数组对象缓存
* 二级缓存----哈希映射表
* 三级缓存----逻辑地址缓存
(02)、会话: * 数据发送
* 数据增加
* 数据的更新
05、部件管理器----WidgetManagerDocked
(01)、初始化
(02)、会话:数据,地图,图层加载,部件加载
06、地图管理器----MapManager
(01)、初始化:
SiteContainer.addEventListener(AppEvent.CONFIG_LOADED, config);
(02)、地图操作会话:
SiteContainer.addEventListener(AppEvent.SET_MAP_NAVIGATION, changeNavigationbyMenu)
SiteContainer.addEventListener(AppEvent.BASEMAP_MENU_CLICKED, basemapMenuClicked)
//SiteContainer.addEventListener(AppEvent.SET_MAP_NAVIGATION, changeNavigationbyWidget)
SiteContainer.addEventListener(AppEvent.SET_MAP_ACTION, enableMapAction)
(03)、地图弹出式窗口回话:
SiteContainer.addEventListener(AppEvent.SHOW_INFOWINDOW, widgetShowInfo);
应用程序结构图