ArcGis server api for flex widget的 理解

第一  widget 面板里面的切换

 

如  Bookmarks里面的面板切换 如何实现?

 

如果要使用 esri 的模板 那么 一定要继承BaseWidget

定义状态

    <viewer:states>
        <s:State name="first"/>
        <s:State name="second"/>
        <s:State name="third"/>       
    </viewer:states>

我这里定义了三个 状态 对应三组面板 。 注意 这里定义的状态 是为了 和后面的 group  绑定 。在 设置不同的状态 可以 让 绑定的 group  可见。

 

对每个面板 设置 图片 标题 , 以及点击标题之后的处理事件

设置

wTemplate.addTitlebarButton(ICON_URL + "i_searchgraphical.png", "aaaa", show1);              
               
wTemplate.addTitlebarButton(ICON_URL + "i_searchtext.png", "bbbb", show2);
               
wTemplate.addTitlebarButton(ICON_URL + "i_table.png", "cccc", show3);

 

show1 事件 目的 是让当前状态激活状态 设置成 firt 。

public function show1():void
            {
                Alert.show("aaa");
            this.currentState="first";
            }
            public function show2():void
            {
                Alert.show("bbb");
                this.currentState="second";
            }
            public function show3():void
            {
                Alert.show("ccc");
                this.currentState="third";
            }

 

 

 

 

<viewer:WidgetTemplate id="wTemplate"
                           width="300" height="300"
                          >
       
        <s:Group  id="first" width="100%" height="100%"  includeIn="first">
            <s:Label text="first" visible="false">
               
            </s:Label>
        </s:Group>
        <s:Group  id="second" width="100%" height="100%" includeIn="second">
            <s:layout>
                <s:VerticalLayout horizontalAlign="center" verticalAlign="middle">
                   
                </s:VerticalLayout>
            </s:layout>
           
            <s:Scroller width="100%" height="100%">   
            </s:Scroller>
           
            <!--<HelloWorld:PersonItemRenderer mytext="abc" click="personitemrenderer1_clickHandler(event)"/>    -->
            <HelloWorld:PersonDataGroup id= "datarroup" dataProvider="{persons}" >     
                <HelloWorld:layout>
                    <s:VerticalLayout gap="2"
                                      horizontalAlign="justify"
                                      useVirtualLayout="true"/>
                </HelloWorld:layout>
                </HelloWorld:PersonDataGroup>
       
            <s:Label text="second">
               
            </s:Label>
        </s:Group>
        <s:Group  id="third" width="100%" height="100%"  includeIn="third">
            <s:layout>
                <s:VerticalLayout horizontalAlign="center" verticalAlign="middle">
                   
                </s:VerticalLayout>
            </s:layout>
            <s:Label text="third">
               
            </s:Label>
        </s:Group>       
        </viewer:WidgetTemplate>

 

使用 esri 的模板 WidgetTemplate 这里 定义了<viewer:WidgetTemplate id="wTemplate"> 注意 这里的id 属性 wTemplate

在定义标签时使用过

wTemplate.addTitlebarButton(ICON_URL + "i_searchgraphical.png", "aaaa", show1);  

 

下面看看这里的group  是怎么回事

这里 要设置 成三组 ,group  是一个容器 ,你可以使用其他的容器 不一定非要使用group

 

includeIn="first" 目的 是让 group  和状态 first 绑定

 

visible="false" 的目的是为了实现 业务逻辑,只要某些条件满足时才让他们显示 。

 

 

你可能感兴趣的:(function,api,server,Flex,layout,bookmarks)