ArcGis server api for flex widget的 理解--自定义组件。

以Bookmar 为例

如何实现 自定义的 列表?

 

flex  其实 是 实现了mvc 

 

数据和显示分离 。

 

Bookmark   数据模型 pojo

[Bindable]


public class Bookmark
{
    public var name:String;

    public var icon:String;

    public var userCreated:Boolean;

    public var xmin:Number;
    public var ymin:Number;
    public var xmax:Number;
    public var ymax:Number;
}

 

BookmarkItemRenderer  用于控制 一个 列表的 显示

在flex 中 要 新建 mxml 项呈视器 就可以建立 这个 mxml 文件了

 

在里面

最关键的事件是  dataChange="itemrenderer_dataChangeHandler(event)" 如果 dataChange 事件不写 ,一切 都不起作用。

到底写什么?

 bookmark = data as Bookmark;  要把数据 强制类型转换成 Bookmark

 

这里bookmark 要绑定[Bindable]

 [Bindable]
private var bookmark:Bookmark;

 

 <s:Label left="30" right="40"
             fontWeight="normal"
             text="{bookmark.name}"
             verticalCenter="0"/>

bookmark 的名字属性和 一个label 控件绑定

 

 

BookmarkDataGroup 这也是个容器 ,继承DataGroup ,没什么好说的 照抄就行了

public class BookmarkDataGroup extends DataGroup
{
    public function BookmarkDataGroup()
    {
        super();

        this.itemRenderer = new ClassFactory(BookmarkItemRenderer);
    }
}

 

最后 是使用 BookmarkDataGroup

  <Bookmark:BookmarkDataGroup
                                         
                                            dataProvider="{bookmarkAL}">
                    <Bookmark:layout>
                        <s:VerticalLayout gap="2"
                                          horizontalAlign="justify"
                                          useVirtualLayout="true"/>
                    </Bookmark:layout>
                </Bookmark:BookmarkDataGroup>

 

继承了DataGroup 之后 就有dataProvider 属性  这里 bookmarkAL  是[Bindable] 是Bookmark 数组。

 

终于理解了 自定义组件的使用了。

 

 

 

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