2011-10-26 6 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によって呼び出される関数です:私は別の1つのArrayCollection(ショップ)からいくつかのオブジェクトを追加している、今のcreationComplete声明

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

(カート)基本的に(データグリッドに表示されます)。カートのデータグリッドは、「カートに追加」ボタンを押すたびに変更されています。

私はcreationcomplete文が1回だけ実行されたと思っていましたが、refresh()を含む唯一の関数であり、削除した場合、カートはもうupdatetではないので疑いがあります。誰かがcreationcompleteステートメントに関するさらに詳しい情報を私に提供できますか?インターネットと私の教科書の検索では、正確に何を学んだのか分かっていません。

答えて

0

作成が完了すると、acCart ArrayCollectionがソートされます。ただし、ArrayCollectionにバインドされたコンポーネントは、ArrayCollectionにオブジェクトを追加すると更新される必要があります。

ArrayCollectionは非常に重いコレクションで、コレクションの変更時にイベントを送出します。

DataGridにバインドされると、コレクションへの変更がDataGridに反映されます。

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

...のArrayCollection「は、ICollectionViewまたはIListインターフェイスのメソッドと 特性を使用してアクセスし、操作することができる コレクションとして配列を公開ラッパークラス」です。 ArrayCollectionクラスの2つのメンバーは、データバインディングをサポートするArrayCollectionの機能に不可欠です。 - collectionChangeイベントとaddEventListenerメソッド。バインディング データに参加するには、オブジェクトのことができるようにする必要があります。

:何かが完全
  • を聞いて、イベントに応答するために他のオブジェクトを許可創造を変更したとき

    1. は、イベントを送出します

      コンポーネントとそのすべての子コンポーネント、およびすべて子コンポーネント が子コンポーネントであるときに送出されます。などが作成され、レイアウトされ、 が表示されます。

      Flexは、最初に必要とされるものを 子供たちが完全に処理し、 に描かれた画面を、子供たちのすべての必要な子供を含む、など にされているコンテナのcreationCompleteイベントを送出します。 creationCompleteイベントのリスナーを作成します。たとえば、 の場合は、イベントの子どもの次元と位置が ハンドラにある必要があります。 レイアウトプロパティを設定するアクションに対してcreationCompleteイベントを使用しないでください。処理時間が長くなりすぎます。