2011-10-26 58 views
0
<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調用的函數:Creationcomplete聲明

protected function init():void 
     { 
      var mySort:Sort = new Sort(); 
      mySort.fields = [new SortField('title')]; 
      acCart.sort = mySort; 
      acCart.refresh(); 
     } 

現在,我加入從一個ArrayCollection的(店)一些對象到另一個(車)基本上(顯示在數據網格中)。每次按「添加到購物車」按鈕時,購物車數據網格都會被修改。

我認爲creationcomplete語句只執行一次,但現在我有疑問,因爲它是唯一包含refresh()的函數,如果我刪除它,我的購物車不再更新。有人可以提供關於creationcomplete語句的更多信息嗎?在互聯網和我的教科書上進行的搜索並沒有讓我知道它到底做了什麼。

回答

0

創建完成後,您的acCart ArrayCollection進行排序;但是,綁定到該ArrayCollection的組件應該在向ArrayCollection添加對象時進行更新。

ArrayCollection是一個非常重的集合,在收集變更時調度事件。

一旦綁定到DataGrid,對集合的更改將反映在DataGrid中。

http://blog.flexdevelopers.com/2009/03/flex-basics-arraycollection.html

...的ArrayCollection是「暴露數組作爲 集合,可以訪問和使用的方法和的ICollectionView的的 性質或IList接口操縱的包裝類」。 ArrayCollection類的兩個成員對ArrayCollection支持數據綁定的能力是不可或缺的 - collectionChange事件和addEventListener方法。參加 數據綁定,對象必須能夠:

  1. 分派事件時有新的變化
  2. 讓其它物體傾聽和響應事件

創建完成:

當組件及其所有子組件及其所有子組件和所有子組件及其所有子組件被分派時等等,已經創建,佈局,並且可以看到 。

Flex分派的容器creationComplete事件時,那些最初需要 孩子完全處理和 繪製畫面,其中包括所有需要的孩子的孩子,等等 上。爲creationComplete事件創建一個監聽器,例如,如果 您必須在事件 處理程序中擁有子代的維度和位置。不要將creationComplete事件用於設置 佈局屬性的操作,否則會導致處理時間過長。