Creationcomplete声明

时间:2011-10-26 17:22:00

标签: flex actionscript

<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()的函数,如果我删除它,我的购物车就不再更新了。有人可以向我提供有关创建完整声明的更多信息吗?在互联网和我的教科书中搜索并没有了解到它究竟是什么。

1 个答案:

答案 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方法。参加   数据绑定,一个对象必须能够:

     
      
  1. 在事情发生变化时发送事件
  2.   
  3. 允许其他对象收听并回复事件
  4.   

创作完成:

  

在组件及其所有子组件和所有组件分派时调度   他们的孩子,等等,已经被创造,布局,并且是   可见。

     

Flex调度容器的creationComplete事件   最初需要的儿童经过全面处理和抽签   屏幕,包括孩子们所有必需的孩子,等等   上。为creationComplete事件创建一个侦听器,例如if   您必须在活动中拥有孩子的尺寸和位置   处理程序。不要对设置的操作使用creationComplete事件   布局属性,因为这样做会导致处理时间过长。