<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="init()">
这是我的标题,这是creationComplete调用的函数:
protected function init():void
{
var mySort:Sort = new Sort();
mySort.fields = [new SortField('title')];
acCart.sort = mySort;
acCart.refresh();
}
现在,我基本上将一些对象从一个arraycollection(shop)添加到另一个(cart)(在datagrid中显示)。每次按下“添加到购物车”按钮时,都会修改cart-datagrid。
我认为creationcomplete语句只执行一次,但现在我有疑问,因为它是唯一包含refresh()的函数,如果我删除它,我的购物车就不再更新了。有人可以向我提供有关创建完整声明的更多信息吗?在互联网和我的教科书中搜索并没有了解到它究竟是什么。
答案 0 :(得分:0)
创建完成后,您的acCart
ArrayCollection已排序;但是,绑定到该ArrayCollection的组件应该在将对象添加到ArrayCollection时更新。
ArrayCollection是一个非常繁重的集合,在集合更改时调度事件。
一旦绑定到DataGrid,对集合的更改将反映在DataGrid中。
http://blog.flexdevelopers.com/2009/03/flex-basics-arraycollection.html
...一个ArrayCollection是一个“包装类,它将一个数组公开为一个 可以使用方法访问和操作的集合 ICollectionView或IList接口的属性“。 ArrayCollection类的两个成员是ArrayCollection支持数据绑定的能力不可或缺的 - The collectionChange事件和addEventListener方法。参加 数据绑定,一个对象必须能够:
- 在事情发生变化时发送事件
- 允许其他对象收听并回复事件
醇>
创作完成:
在组件及其所有子组件和所有组件分派时调度 他们的孩子,等等,已经被创造,布局,并且是 可见。
Flex调度容器的creationComplete事件 最初需要的儿童经过全面处理和抽签 屏幕,包括孩子们所有必需的孩子,等等 上。为creationComplete事件创建一个侦听器,例如if 您必须在活动中拥有孩子的尺寸和位置 处理程序。不要对设置的操作使用creationComplete事件 布局属性,因为这样做会导致处理时间过长。