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 數組。

 

終於理解了 自定義組件的使用了。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章