【原创】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 阅读(2568) 评论(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