【原創】flex in action (三)flex對xml數據進行處理二

          本講的一個重點。ArrayCollection對一個字段的一個數據的取得:xmls.getItemAt(0).name.toString()。
          這東西弄了我很久,大概是受Java的影響吧。
          首先編寫xml。在src下建立xml文件夾,然后建立一個student.xml的文件。
          文件內容:

           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <persons>
           3     <person>
           4         <name>金浩</name>
           5         <sex>man</sex>
           6         <age>23</age>
           7         <clazz>數學一班</clazz>
           8     </person>
           9     
          10     <person>
          11         <name>張偉</name>
          12         <sex>man</sex>
          13         <age>22</age>
          14         <clazz>英語四班</clazz>
          15     </person>
          16         <person>
          17         <name>蔣天傲</name>
          18         <sex>man</sex>
          19         <age>23</age>
          20         <clazz>計算四班</clazz>
          21     </person>
          22     
          23     <person>
          24         <name>熊敏之</name>
          25         <sex>man</sex>
          26         <age>23</age>
          27         <clazz>計算機一班</clazz>
          28     </person>
          29         <person>
          30         <name>熊超</name>
          31         <sex>man</sex>
          32         <age>23</age>
          33         <clazz>計算二班</clazz>
          34     </person>
          35     
          36     <person>
          37         <name>張洋</name>
          38         <sex>woman</sex>
          39         <age>22</age>
          40         <clazz>英語四班</clazz>
          41     </person>
          42         <person>
          43         <name>朱宇</name>
          44         <sex>man</sex>
          45         <age>23</age>
          46         <clazz>英語一班</clazz>
          47     </person>
          48     
          49     <person>
          50         <name>夏政</name>
          51         <sex>man</sex>
          52         <age>23</age>
          53         <clazz>計算機四班</clazz>
          54     </person>
          55 </persons>

          上面都我大學同學。呵呵.
          然后就是建立一個mxxml application。
          添加一個panel,八個label,2個button。
          如:圖。

          代碼:
           1 <?xml version="1.0" encoding="utf-8"?>
           2 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="xmlData.send()">
           3 <mx:HTTPService id="xmlData" url="xml/student.xml" result="resultHand(event)">
           4 </mx:HTTPService>
           5     <mx:Script>
           6         <![CDATA[
           7             import mx.controls.Alert;
           8             import mx.collections.ArrayCollection;
           9             import mx.rpc.events.ResultEvent;
          10         [Bindable]
          11             private var xmls:ArrayCollection = new ArrayCollection();
          12         [Bindable]
          13             public var i:int = 0;
          14             
          15             private function resultHand(event:ResultEvent):void{
          16                 xmls = event.result.persons.person;
          17             }
          18 
          19             private function upClick():void{
          20                 if(i == 0){
          21                     Alert.show("已經是第一個同學了");
          22                 }else
          23                     i--;
          24             }
          25             private function downClick():void{
          26                 if(i == xmls.length-1){
          27                     Alert.show("已經是最后一個同學了");
          28                 }else
          29                     i++;
          30             }
          31         ]]>
          32     </mx:Script>
          33     
          34     <mx:Panel x="160" y="75" width="291" height="296" layout="absolute" 
          35         title="學生信息" id="message" fontSize="14" fontWeight="bold" fontStyle="normal">
          36         <mx:Label x="49.5" y="39" text="姓名:"/>
          37         <mx:Label x="49.5" y="70" text="年齡:"/>
          38         <mx:Label x="49.5" y="101" text="性別:"/>
          39         <mx:Label x="49.5" y="132" text="班級:" width="50"/>
          40         <mx:Button x="49.5" y="183" label="上一個" id="up" click="upClick()"/>
          41         <mx:Button x="150.5" y="183" label="下一個" id="down" click="downClick()"/>
          42         <mx:Label x="116.5" y="39" width="105" id="nam" text="{xmls.getItemAt(i).name.toString()}"/>
          43         <mx:Label x="116.5" y="70" width="105" id="age" text="{xmls.getItemAt(i).age.toString()}"/>
          44         <mx:Label x="116.5" y="101" width="105" id="sex" text="{xmls.getItemAt(i).sex.toString()}"/>
          45         <mx:Label x="116.5" y="132" width="105" id="clazz" text="{xmls.getItemAt(i).clazz.toString()}"/>
          46     </mx:Panel>
          47 
          48 </mx:Application>
          49 
          沒做注釋是因為覺得太簡單了。呵呵。
          查詢:

          當到最后一個的時候,彈出。對話框。


          ok啦。在這個例子中我沒有在用MX:MODEL 調用xml文件了,而采用的是。MX:HTTPSERVICE.
          書上說的區別是,第一種方法把xml數據“固化”到swf中了,
          這一點沒有去深究。
          而第二中則采用的是,只有再調用的時候才去。
          現在做個測試。
          如果我在運行的情況下,在xml上增加,刪除一個同學,看會怎樣。
          剛做完測試,增加和刪除一個都對其沒有影響。
          不懂書上是什么個意思。還有使用ArrayCollection和Array的區別,網絡上說ArrayCollection可以動態的調整。
          如果我在程序中加入一個remove同學的話,ArrayCollection保證是執行后的結果。
          這個就不做測試了。
          反正我是覺得現在這個demo很有用。

          posted on 2009-04-05 22:19 duduli 閱讀(2590) 評論(7)  編輯  收藏 所屬分類: Flex

          評論

          # re: 【原創】flex in action (三)flex對xml數據進行處理二 2009-04-05 23:24 onlysummer

          你這種圖文并茂的形式非常好,不過你最好講講如何用flex提交表單的形式生成一個xml文件,就是如何用flex添加同學信息。  回復  更多評論   

          # re: 【原創】flex in action (三)flex對xml數據進行處理二 2009-04-05 23:24 onlysummer

          謝謝阿  回復  更多評論   

          # re: 【原創】flex in action (三)flex對xml數據進行處理二 2009-04-06 09:27 duduli

          慢慢來,還有e4x解析xml沒有做。再后來就是用flex和Java進行交互,或許有能力的話,可能出個視頻吧。給入門的人員。@onlysummer
            回復  更多評論   

          # re: 【原創】flex in action (三)flex對xml數據進行處理二 2009-04-06 14:17 左洸

          Array 是真正的數據,ArrayCollection 只是把 Array 包裝了一下,增加了一些訪問接口,最后處理的還是 Array  回復  更多評論   

          # re: 【原創】flex in action (三)flex對xml數據進行處理二 2009-04-07 08:49 張氏兄弟

          和java交互足夠的簡單了,你把httpservice的url寫成servelet或者jsp.或者action(struts),controller(spring)的訪問路徑就行了!
          你要是更酷一點,將這個地址寫在httml中,flex去調用html中的參數,這樣子,你的flex就完全作為一個組件,可以隨意應用了!  回復  更多評論   

          # re: 【原創】flex in action (三)flex對xml數據進行處理二 2009-04-07 13:05 duduli

          才接觸幾天,技術還沒有達到那么高深的地步。發布下一個,e4x和樹形結構@張氏兄弟
            回復  更多評論   

          # re: 【原創】flex in action (三)flex對xml數據進行處理二 2009-04-23 17:26 Sange

          添加怎么實現呢?。  回復  更多評論   

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導航

          統計

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團隊

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地攤兒

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          @duduli
          主站蜘蛛池模板: 阿合奇县| 巴林右旗| 申扎县| 和静县| 堆龙德庆县| 华蓥市| 五寨县| 札达县| 西昌市| 会宁县| 嘉峪关市| 班玛县| 石门县| 运城市| 同德县| 常宁市| 垦利县| 临夏县| 西华县| 湟中县| 尤溪县| 陇川县| 丹东市| 雷波县| 延庆县| 南乐县| 镇平县| 景泰县| 丰原市| 临安市| 西华县| 云梦县| 民县| 金寨县| 东山县| 昔阳县| 任丘市| 琼中| 福贡县| 丹阳市| 台北县|