<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-159  評論-114  文章-7  trackbacks-0

    1、dataProvider
         在Adobe ActionScript 3.0里面的定義如下:
        要查看的數(shù)據(jù)集。此屬性允許您將大多數(shù)類型的對象用作數(shù)據(jù)提供程序。如果將 dataProvider屬性設(shè)置為 Array,則會將其轉(zhuǎn)換為 ArrayCollection。如果將該屬性設(shè)置為 XML對象,則會將其轉(zhuǎn)換為僅包含一個(gè)項(xiàng)目的 XMLListCollection。如果將該屬性設(shè)置為XMLList,則會將其轉(zhuǎn)換為 XMLListCollection。如果將該屬性設(shè)置為實(shí)現(xiàn) IList 或 ICollectionView接口的對象,則可直接應(yīng)用此對象。受轉(zhuǎn)換操作的影響,在您獲取 dataProvider屬性時(shí),該屬性值將始終為 ICollectionView,所以此值不一定是您設(shè)置的對象類型。如果要修改數(shù)據(jù)提供程序中的數(shù)據(jù),則了解以下行為非常重要:可能不會檢測對原始數(shù)據(jù)所做的更改,但將檢測對從 dataProvider屬性獲取的 ICollectionView 對象所做的更改。默認(rèn)值為 null.此屬性可用作數(shù)據(jù)綁定的源。
        上面那一大堆的東西其實(shí)就說明以下幾點(diǎn):
        a、凡是具有dataProvider的組件,都可以將Array、XML等內(nèi)容作為數(shù)據(jù)源。
        b、將這些作為數(shù)據(jù)源的內(nèi)容“自動(dòng)”綁定并顯示在這些控件上面。
        所以通常的做法,當(dāng)Flex獲取了外部數(shù)據(jù)后,可以將其直接賦值為dataProvider,然后通過一些設(shè)定,就可以在這些組件上面顯示數(shù)據(jù)了。
        關(guān)于這個(gè)例子我就不在這里復(fù)述了,大家可以自行去找一下,或者直接看這里的內(nèi)容:http://livedocs.adobe.com/flex/3_cn/mx/controls/ComboBox.html#includeExamplesSummary

    2、itemRenderer項(xiàng)目渲染器)及其data屬性。
         itemRenderer的作用就是可以自定義一些組件的項(xiàng)目顯示效果,例如我們熟知的Combobox、List、DataGrid等都具有這樣的屬性,也就是說,我們可以利用itemRenderer來改善ComBoBox里面的下拉的顯示效果。當(dāng)然,List、DataGrid也是這樣的。
         當(dāng)ComboBox中自定義了一個(gè)渲染器后,同時(shí)使用dataProvider的方式綁定了一個(gè)數(shù)據(jù)源,這個(gè)時(shí)候,如何與我們自定義的渲染器里面的item發(fā)生作用呢?就是使用data方式。
         也就是說,dataProvider可以綁定數(shù)據(jù)到UI、如果這個(gè)組件使用了自定義渲染器,那么就可以使用data.XXX的方式獲取到dataProvider里面的數(shù)據(jù)。

    okay,以上介紹的兩個(gè)知識點(diǎn)是關(guān)于Flex組件的數(shù)據(jù)處理能力,其中dataProvider可以把Array、XML等內(nèi)容作為數(shù)據(jù)源直接綁定并顯示到UI上面,而itemRenderer里面的data是實(shí)現(xiàn)組件與其渲染器之間的數(shù)據(jù)處理。

    下一篇的內(nèi)容是關(guān)于Flex與后臺進(jìn)行通訊的常見的幾種方式:HTTPService、WebService、Remote等方式,而通過這幾種方式可以輕松的讓一些例如Java、C#、Python、Ruby、PHP等主流編程語言為Flex所服務(wù):)

    附加:
    關(guān)于dataProvideritemRendererdata的具體用法有些抽象,因此我特此列舉一個(gè)例子來說明一下。
    這是一個(gè)HorizontalList組件,而且其中它的itemRenderer=ToolBoxRenderer,想讓我們看一下HorizontalList的片段代碼:
    <mx:HorizontalList id="myHorizontalList" itemRenderer="ToolBoxRenderer">
             <mx:dataProvider>
                 <mx:Array>
                       <mx:Object tooltip= "rubber" styleName="rubber" language="{ _language }"/>
                 </mx:Array>
             </mx:dataProvider>
    </mx:HorizontalList> 

    然后是ToolBoxRenderer的片段代碼:

    <mx:Canvas width="30" height="30">
             <mx:Button
                width="30" height="30" 
                toolTip="{ data.tooltip }" 
                styleName="{ data.styleName }"/>
    </mx:Canvas>

    再讓我們看看itemRenderer是如何與我們今天這個(gè)主題聯(lián)系起來的。
    1、在myHorizontalList中定義了一個(gè)dataProvider,通過代碼可以看出是一個(gè)Array類型的變量,然后將其賦值給dataProvider。這個(gè)時(shí)候,其實(shí)就應(yīng)該將數(shù)據(jù)顯示到myHorizontalList上面了,這也就是dataProvider的用處。
    2、在dataProvider包含的Array中,定義如下的結(jié)構(gòu):<mx:Object tooltip= "rubber" styleName="rubber" language="{ _language }"/>
    3、我們不僅設(shè)定了dataProvider,還是同時(shí)設(shè)定了itemRenderer,即為ToolBoxRenderer。
    4、在ToolBoxRenderer里面,定義了一個(gè)Button,同時(shí)我們使用類似于這樣的方式可以取得dataProvider里面的數(shù)據(jù):toolTip="{ data.tooltip }" 

    以上就是一個(gè)非常簡單,但是又非常典型的一個(gè)dataProvideritemRendererdata的用法,希望大家可以理解:)



    posted on 2010-01-04 22:26 北國狼人的BloG 閱讀(1226) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲最大黄色网址| 亚洲色成人WWW永久网站| 亚洲国产精品成人综合久久久 | 国产无遮挡裸体免费视频在线观看 | 亚洲精品国产专区91在线| 精品国产免费一区二区三区香蕉| 亚洲一区无码精品色| 五月天婷婷免费视频| 亚洲精品无码AV中文字幕电影网站| 色窝窝亚洲AV网在线观看| 国产老女人精品免费视频| 特级做a爰片毛片免费看| 久久夜色精品国产亚洲av| 免费无码又爽又刺激网站直播| 亚洲妇熟XXXX妇色黄| 国产精彩免费视频| 亚洲一区二区无码偷拍| 国产三级电影免费观看| 久久99久久成人免费播放| 亚洲AV无一区二区三区久久| 亚洲精品在线免费观看视频| 亚洲中文字幕乱码熟女在线| 亚洲成a人片在线观看国产| 免费的全黄一级录像带| 亚洲婷婷综合色高清在线| 永久免费bbbbbb视频| eeuss影院ss奇兵免费com| 亚洲影院在线观看| 在线成人a毛片免费播放| 一个人看的www免费高清| 久久精品国产亚洲AV无码偷窥| a级毛片无码免费真人| 特色特黄a毛片高清免费观看| 亚洲国产一区在线| 国产成人啪精品视频免费网| 拍拍拍无挡免费视频网站| 色婷五月综激情亚洲综合| 国产精品亚洲w码日韩中文| 蜜臀98精品国产免费观看| 免费国产va视频永久在线观看| 久久精品7亚洲午夜a|