Flex Viewer解析-----结构(3)

来源:互联网 发布:java split 竖线 编辑:程序博客网 时间:2024/04/28 06:34

Flex Viewer解析-----结构(3

其他部分:该部分主要介绍配置信息、样式信息、事件信息等的组织结构

这些部分我们在界面中看不到,但是他们起着至关重要的作用,也就我们说的总体架构里面的中间部分。

首先,看看配置信息的组织,ConfigManager.asConfigData.as来完成。

ConfigData.as中定义了配置信息的数据结构

public function ConfigData()

       {

            configUI = [];

            configMenus = [];

            configMap = [];

            configBasemaps = [];

            configExtents = [];

            configWidgets = [];

   }

我们可以清晰地看到,我们需要的配置信息基本上都包含其中,如果需要进行配置信息的扩展,那么我们就首先要在ConfigData里面加上扩展的数据结构。

ConfigManager.as负责把配置文件中的信息读取初始化到一个ConfigData里面,并执行事件分发。看一下里面的内容还是比较容易明白的。就不做介绍了。

 

然后,样式文件的组织在UIManager.as中实现,打开此文件,我们可以在配置文件加载成功的事件监听函数中找到这一句:

StyleManager.loadStyleDeclarations(value);

这一句就是将配置的样式文件载入到我们的系统中。

 

第三,我们看看自定义事件是如何组织的,事件的组织主要在EventBus.asAppEvent.as中,前者负责分发事件,后者定义事件。在此不多介绍,以后专门介绍。

 

第四,程序总体组织SiteContainer,其将所有的这些组件,配置全部在这个SiteContainer里面进行定义,保证系统中获取的对象都是同一个对象,那就是在SiteContainer中定义的对象。SiteContainer本身也是静态的,就是在整个系统中只有一个Sitecontainer,这样我们就可以通过它方便的获取各个控件中的信息。自定义事件的分发也是由他完成。以后文章会具体介绍。

第五,主窗体Index.mxml中信息加载,我们整个Application的显示完成有主窗体完成。其中的代码段为:

    <SiteContainer id="container"> 

       <configManager> <ConfigManager/> </configManager>

       <uiManager>     <UIManager/>     </uiManager>

       <controller>    <Controller x="20" y="20"/>    </controller>

       <dataManager>   <DataManager/>   </dataManager>

       <widgetManager> <WidgetManagerDocked/> </widgetManager>

       <mapManager>  <MapManager/> </mapManager>

   </SiteContainer>

这一句就是使用静态的SiteContainer,并将SiteContainer中的组件进行实例化,然后在SiteContainer中实例化完成后,将这些对象加到应用程序中,完成最终的程序显示。

 

3、如何获取对象。

了解了上面的结构我们不难发现,所有的对象我们都可以在SiteContainer中找到,那么获取对象的方法我们就不难找到了。

例如获取地图对象。

通过SiteContainer.getInstance().mapManager,我们可以获取到map的管理类,那么获取地图对象就很简单了,我们只需在mapManager中加入返回map控件的函数getMap

map对象返回回来,就可以了,是不是很方便?

 

至此,我们就把整个的结构说完了。有不足之处请网友指出

 

简单结构图如下:

 

 

 

 

原创粉丝点击