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

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

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

          okay,以上介紹的兩個知識點是關于Flex組件的數據處理能力,其中dataProvider可以把Array、XML等內容作為數據源直接綁定并顯示到UI上面,而itemRenderer里面的data是實現組件與其渲染器之間的數據處理。

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

          附加:
          關于dataProvideritemRenderer、data的具體用法有些抽象,因此我特此列舉一個例子來說明一下。
          這是一個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是如何與我們今天這個主題聯系起來的。
          1、在myHorizontalList中定義了一個dataProvider,通過代碼可以看出是一個Array類型的變量,然后將其賦值給dataProvider。這個時候,其實就應該將數據顯示到myHorizontalList上面了,這也就是dataProvider的用處。
          2、在dataProvider包含的Array中,定義如下的結構:<mx:Object tooltip= "rubber" styleName="rubber" language="{ _language }"/>
          3、我們不僅設定了dataProvider,還是同時設定了itemRenderer,即為ToolBoxRenderer。
          4、在ToolBoxRenderer里面,定義了一個Button,同時我們使用類似于這樣的方式可以取得dataProvider里面的數據:toolTip="{ data.tooltip }" 

          以上就是一個非常簡單,但是又非常典型的一個dataProvider、itemRenderer、data的用法,希望大家可以理解:)

          posted @ 2010-01-04 22:26 北國狼人的BloG 閱讀(1227) | 評論 (0)編輯 收藏
          是直接寫在包里的函數,包里沒有類,只有函數,這樣的函數叫函數閉包
          函數在類里出現通常叫方法,


          http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f54.html
          函數閉包 是一個對象,其中包含函數的快照及其“詞匯環境”。函數的詞匯環境包括函數范圍鏈中的所有變量、屬性、方法和對象以及它們的值。無論何時在對象或類之外的位置執行函數,都會創建函數閉包。函數閉包保留定義它們的作用域,這樣,在將函數作為參數或返回值傳遞給另一個作用域時,會產生有趣的結果。

          例如,下面的代碼創建兩個函數:foo()(返回一個用來計算矩形面積的嵌套函數 rectArea())和 bar()(調用 foo() 并將返回的函數閉包存儲在名為 myProduct 的變量中)。即使 bar() 函數定義了自己的局部變量 x(值為 2),當調用函數閉包 myProduct() 時,該函數閉包仍保留在函數 foo() 中定義的變量 x(值為 40)。因此,bar() 函數會返回值 160,而不是 8。

          function foo():Function
          {
             var x:int = 40;
             function rectArea(y:int):int // function closure defined
             {
                 return x * y
             }  
             return rectArea;
          }
          function bar():void
          {
             var x:int = 2;
             var y:int = 4;
             var myProduct:Function = foo();
             trace(myProduct(4)); // function closure called
          }
          bar(); // 160

          方法的行為與函數閉包類似,因為方法也保留有關創建它們的詞匯環境的信息。當方法提取自它的實例(這會創建綁定方法)時,此特征尤為突出。函數閉包與綁定方法之間的主要區別在于,綁定方法中 this 關鍵字的值始終引用它最初附加到的實例,而函數閉包中 this 關鍵字的值可以改變。有關詳細信息,請參閱方法。
          posted @ 2009-12-29 14:29 北國狼人的BloG 閱讀(210) | 評論 (0)編輯 收藏
               摘要: 前期準備:       點擊 File 菜單 -> New -> MXML Component ,然后彈出一個對話框。 在對話框中輸入組件名,選擇此組件繼承的類型,如: Canvas , DataGrid , ComboBox …… 等。 然后選擇組件的大小,點擊 Finish 即可。  ...  閱讀全文
          posted @ 2009-12-24 16:06 北國狼人的BloG 閱讀(457) | 評論 (0)編輯 收藏

          as3 + java

          action script 3 真不錯了
          posted @ 2009-12-23 16:33 北國狼人的BloG 閱讀(189) | 評論 (0)編輯 收藏
          表現:
          使用ModuleManager去加載一個Module的時候, 所有的事件都激發不了.

          代碼:

          1.                 var testModule:IModuleInfo = ModuleManager.getModule('modules/pub/User.swf');
          2.                 testModule.addEventListener(ModuleEvent.READY,onModuleReady);
          3.                 testModule.addEventListener(ModuleEvent.SETUP, onModuleSetup);
          4.                 testModule.addEventListener(ModuleEvent.PROGRESS,onModuleLoading);
          5.                 testModule.load();

          打個賭, ModuleEvent里所有的事件都不會被激發.


          原因:

          addEventListener之后, testModule的Event Listeners就可能被GC了.




          解決:

          不要聲明局部IModuleInfo對象.


          相關鏈接:
          http://bugs.adobe.com/jira/browse/SDK-14021
          https://bugs.adobe.com/jira/browse/SDK-11389

          Gaurav Jain 同學說: 
          "References to IModuleInfo must be maintained to keep the event listeneres alive. If the IModuleInfo is defined in function local scope the event listeners may get garbage collected. "
          他表示:
          "This is NAB. The weak reference was a change to fix a memory leak bug (

          Not a bug~ 為了修復另一個bug, 犧牲這個....
          posted @ 2009-12-23 16:31 北國狼人的BloG 閱讀(240) | 評論 (0)編輯 收藏
          as 是請求口氣,比較溫柔。
          XML()是命令口氣,比較霸道。
          這個東西不聽話你就不要給他好語氣

          as 是前面的對象如果是后面的數據類型才返回這個對象,否則返回null

          這里的weather_loader.data是String類型
          posted @ 2009-12-17 15:29 北國狼人的BloG 閱讀(140) | 評論 (0)編輯 收藏
          直接說話主要的

          command屬性可以執行多條命令

          <sshexec host="ipAddr" username="root" command="(export LANG=zh_CN.UTF-8;/data/jdk/bin/java -jar )" password="pwd" trust="true"/>

          posted @ 2009-12-14 11:29 北國狼人的BloG 閱讀(553) | 評論 (0)編輯 收藏
          8點前 的11月19日凌晨,我和我今生最愛的人一起看過流星雨。想到這些,我就會流淚。

          posted @ 2009-11-18 22:19 北國狼人的BloG 閱讀(131) | 評論 (0)編輯 收藏
          Nothing succeeds like confidence.When you are truly confident,it radiates from you like sunlight,and attracts success to you like a magnet.
          信心成就一切,當你真正自信時,它就像燦爛的陽光一樣從你身上散發出來,就像磁鐵一樣將成功吸引到你身上。

          It's important to believe in yourself.Believe that you can do it under any circumstances,because if you believe you can,then you really will.The belief keeps you searching for answers,which means that pretty soon you will get them.

          相信自己非常重要。要相信自己無論在任何情況下都會成功。因為如果你相信你能做到,那么你就真的會做到。這種信念促使你不斷的去尋找答案,而不斷的探索就意味著你很快就會找到答案。

          Confidence is more than an attitude. It comes from knowing exactly where you are going and exactly how you are going to get there. It comes from acting with integrity and confidence.It comes from a strong sense of purpose.It comes from a strong commitment to take responsibility,rather than just letting life happen.

          信心不只是一種態度,它來源于你確切地知道自己要去干什么并且確切地知道怎么去干。它來源于正直和自信地去行動。它來源于強烈的目標感。它來源于強烈地勇于承擔責任的許諾,而不是讓生命放任自流。

          One way to develop self-confidence is to do the thing you fear and to get a record of successful experiences behind you.

          培養自信的一種方法是去做你害怕做的事情,并將它做成功。

          Confidence is compassionate and understanding.It is not arrogant. Arrogance is born out of fear and insecurity,while confidence comes from strength and integrity.

          信心是富有同情心和善解人意的。它一點都不傲慢自大。傲慢是由于害怕和缺乏安全感才產生的,而信心則出于堅強的決心和誠實正直。

          Confidence is not just believing you can do it. Confidence is knowing you can do it.Know that you are capable of accomplish anything you want,and live your life with confidence.

          信心并不是僅僅認為你可能會成功,而是確信你一定能成功。確信你有能力實現自己的愿望,并充滿信心的生活著。

          Anything can be achieved through focused,determined effort and self-confidence.If your life is not what you want it to be,you have the power to change it,and you must make the changes on a moment by moment basis. Live your priorities. Live with your goals and your plan of action. Live each moment with your priorities in mind. Act with your own purpose,and you will have the life you want.

          如果你足夠專心、堅決和自信,那么任何事都能做成。如果生活不像你預想的那樣,你有力量去改變它,并且你必須一步一步的去實現這些改變。銘記你生命中最重要的事情。有目標并且有計劃的去生活。為你的目標而奮斗,你就會擁有自己想要的生活
          posted @ 2009-10-14 18:02 北國狼人的BloG 閱讀(143) | 評論 (0)編輯 收藏
          The hardest victory is over self.
          最艱難的勝利是戰勝自己的勝利!

               我們到底要是什么樣的人生?
               充實的、成功的、善良的、充滿愛心和和諧的?這些都是我們的追求,但大多數人終身辛勞卻無法修成“正果”,為什么呢?
              一切的問題都出在自身:我是一切的根源!大家一定要有這樣的認識。
              下面是摘自一位昨晚留言的朋友,我給這個留言加了一個題目:人生的四大黃金法則。希望大家摘抄在日記本上,并與更多的人分享。

              不妄作評判 --說話要公正客觀,不說違心的話,不說對自己不利的話,不說別人的閑話,把語言的力量用到真和愛上去。(太對了?。?br />
              不受別人影響 --別人所做的事,沒有一件是因為你才去做的。別人所說的話、所做的事都是他們自己世界觀和價值觀的投影。不受別人言行的影響,你就能減少許多“無謂的痛苦”。(太對了?。?br />
              不作假設 --鼓起勇氣提問。把你真正想說的話表達清楚。與別人溝通得越清楚,你就越能避免誤解、傷心或鬧劇。單只這一個約定就能“徹底改變你的生活”。(太對了!)

              行動、盡力、投入 --你所能盡的力并不是時時都一樣的。健康的時候,你能盡的力就比生病的時候要多。只要你在任何情況下都盡力而為,你就不會在事后懊悔、自責或自我審判。(太對了!)


          只有自己經歷過挫折,才能理解很多。我要重新振奮起來。
          posted @ 2009-10-07 10:55 北國狼人的BloG 閱讀(157) | 評論 (0)編輯 收藏
          僅列出標題
          共17頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
          主站蜘蛛池模板: 卢湾区| 无极县| 涟水县| 上虞市| 平武县| 商南县| 乃东县| 错那县| 蕉岭县| 灌阳县| 湖口县| 许昌县| 抚宁县| 蓬莱市| 东辽县| 彭阳县| 利津县| 盐城市| 广安市| 武威市| 南雄市| 吴桥县| 庆云县| 凤山市| 扶余县| 东乡县| 中宁县| 银川市| 屏南县| 彭州市| 广安市| 广宁县| 舟曲县| 革吉县| 会宁县| 延安市| 凤山县| 新昌县| 贺兰县| 梅州市| 丹阳市|