本講的一個重點。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很有用。