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);
應用程序結構圖