Flex为控件使用远程XML数据

1、 指定<mx:model>标签的source属性并指向外部XML文件,将XML嵌入到一个SWF文件中。这是一种不好的做法,因为XML被编译进了SWF文件中,导致了文件尺寸变大,而且XML也无法立即更新,每当数据改变时,你都得重新编译SWF。

2、 使用HTTPService的一般步骤
a)创建一个HttpService对象
b)调用对象的send()方法
c)使用返回的数据
使用返回的数据有两种方式
第一种:直接在绑定中使用数据(数据被存储在lastResult的变量中), 第二种:使用result事件处理函数(使用event.result属性)

3、 理解安全问题
flex遵循Flash Player的 安全沙箱 限制,这意味着Flash Player会阻止一个域中的应用程序加载另一个域中的数据。若要跨域必须使用跨域策略文件, 这类文件的名称是crossdomain.xml,位于SWF文件调用的web服务器目录下,指定了那些域能通过Flash Player访问其中的资源。

4、 将HTTPService数据填入ArrayCollection
普通数组对于在flex中存储数据也很有用,但若想将数据填入控件或者正以过滤、排序等手段操作数据,则ArrayCollection才是应该选择的数据结构。ArrayCollection还有一个优势就是当修改用于数据绑定的ArrayCollection时,视觉显示会随着底层数据的更改而自动更新。
练习之: 在ComboBox控件中添加一个"all"类型选项
private function catHandler(event:ResultEvent):void{
categories = event.result.catalog.category;//categories为arrayCollection类型
var catObject:Object = new Object();
catObject.name="all";
catObject.categoryId = 0;
categories.addItemAt(catObject, 0);
catCombo.selectedIndex = 0;
}

5、 在Tree控件中使用XML数据
a)理解E4X运算符:点运算符、 圆括号(谓词过滤)、后代存取器
b)将XML数据填入Tree控件(使用XMLListCollection填充Tree控件)

6、 获取XML数据并将这些数据转换为自定义类型的ArrayCollection
for each(var p:XML in event.result..product){...}

7、 示例之 操作购物车数据
a)对ArrayCollection中的项目进行排序
要对ArrayCollection中的项目进行排序,你将同时使用Sort和SortField两个类。一般按如下步骤排序ArrayCollection中的项目:
(1)创建一个新的Sort对象
(2)创建一个或多个SortField对象
(3)将第(2)中创建的SortField对象作为数组赋值到Sort对象的fields属性。
(4)将ArrayCollection的sort属性赋值为Sort对象
(5)调用ArrayCollection的refresh()方法,使排序生效
var prodSort:Sort = new Sort();
var sortField:SortField = new SortField("prodName");
prodSort.fields = new Array(sortField);
myArrayCollection.sort = prodSort;
myArrayCollection.refresh();
注意: 当指定多个sortFields时,数组中顺序就是排序字段时所用的顺序。


b)添加项目或者更新数量
addItem()————manageAddItem()————isItemInCart()————getItemInCart()————... ... 方法的回调
创建大量较短小的方法来实现业务逻辑,而不是将所有逻辑都放进addItem()方法的同一个代码块中。

c) 使用光标定位ShoppingCartItem
光标并不专门针对ArrayCollection,任何实现了ICursorView接口的类都可以使用光标。在集合类中使用光标的一般步骤如下:
(1)使用createCursor()方法在ArrayCollection中创建光标;
(2)对ArrayCollection进行排序
(3)使用光标中的findFirst()、findAny()、moveNext()方法移动光标在ArrayCollection中查找项目。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值