Flex Viewer 开发教程(2)Widget配置文件

Flex Viewer的设计中,每个Widget都可以有一个配置文件,来配置Widget所需要的各种资源,提倡的做法是配置文件名与Widget名称保持一致,并且位于同一目录下。当然,Widget的配置文件不是必须的,当不需要配置信息时,配置文件可省略。在《Flex Viewer解析》中,我们以HelloWorldWidget为例,说明如何在Flash Builder中实现自定义Widget。下面我们同样以HelloWorldWidget为例,来说明Widget如何从其配置文件获取资源信息。

先来看一下HelloWorldWidget.xml,也就是配置文件的内容:

<?xml version="1.0" ?>

<configuration>

    <hellocontent>Hello, Flex Viewer!</hellocontent>

</configuration>

再来看一下HelloWorldWidget的实现代码,如下:

<?xml version="1.0" encoding="utf-8"?>

<viewer:BaseWidget xmlns:fx="http://ns.adobe.com/mxml/2009"

                 xmlns:s="library://ns.adobe.com/flex/spark"

                 xmlns:mx="library://ns.adobe.com/flex/mx"

                 xmlns:viewer="com.esri.viewer.*"

                 layout="absolute" width="400" height="300"

                 widgetConfigLoaded="init()">

    <fx:Script>

       <![CDATA[

           [Bindable]

           private var helloContent:String;

 

           private function init():void{

              if (configXML){

                  helloContent=String(configXML.hellocontent);

              }

           }

       ]]>

    </fx:Script>

    <viewer:WidgetTemplate>

       <s:HGroup width="100%"

                height="100%"

                horizontalAlign="center"

                verticalAlign="middle">

           <s:Label text="{helloContent}"/>

       </s:HGroup>

    </viewer:WidgetTemplate>

</viewer:BaseWidget>

    widgetConfigLoaded事件

widgetConfigLoaded事件是BaseWidget中设计的一个事件,用来说明Widget对应的配置文件已经成功读取。通常在这个事件的响应方法中解析XML数据,获取所需的资源信息。如果自定义Widget需要配置文件中的信息,如所示,设置widgetConfigLoaded事件的响应方法即可。

   响应方法

widgetConfigLoaded事件的响应方法,在该方法中对XML配置信息进行解析。

   configXML对象

Widget配置文件是一个XML文档,configXML是在BaseWidget中定义的XML对象,用来表示配置文件的XML数据。通常,widgetConfigLoaded事件的响应方法中,直接访问configXML即可。

   解析配置信息

configXML中获取所需资源信息,此处是ActionScript中对于XML数据的操作,可参考相关教程。

   使用配置信息

配置信息可以有多种使用方式,此处只是简单的把字符串信息显示出来。除此之外,配置信息可以是各种资源的url、对Timer设置的时间间隔等等。

 
在具体系统的开发过程中,应尽可能多的将Widget用到的资源放到配置文件中,这样的话,即便在系统交付之后,用户可以通过修改配置文件达到特定需求,而不需要更改源代码。下图是HelloWorldWidget打开时的画面:

Flex Viewer 开发教程(2)Widget配置文件_第1张图片

 

你可能感兴趣的:(xml,String,Flex,library,actionscript,encoding)