2012-01-06 8 views
0

子コレクションのプロパティの変更を最もよく管理するには、具体的には 子コレクション 内のプロパティが変更されたことを親オブジェクトに通知します。子コレクションとそのプロパティの変更の管理

package 
{ 
    [Bindable] 
    public class Author 
    { 
     public var firstName:String; 
     public var lastName:String; 
     public var books:ArrayCollection; 

     public function get dateOfFirstBookPublished():Date 
     { 
      if (books != null) { 
       return books[0].datePublished; 
      } 
      return null; 
     } 
    } 

} 

package 
{ 
    [Bindable] 
    public class Book 
    { 
     public var name:String; 
     public var datePublished:Date; 
    } 

} 

私はブックproperyが変更されたときに著者に通知し、更新することができますどのように dateOfFirstBookPublished方法 ?いかなる援助も感謝します。

答えて

0

ArrayCollectionのインスタンスは、アイテムを追加/削除するたびにCollectionEvent.COLLECTION_CHANGEを送出します。このイベントを聞くことができます。

author.addEventListener(CollectionEvent.COLLECTION_CHANGE, onChange); 

public function onChange(event:CollectionEvent):void 
{ 
    //your logic here 
} 
+0

ありがとうございました。上記のクラスを使用した例を教えてください。 – Tyler

+0

@タイラーは、どのように使用しますか?dateOfFirstBookPublished() –

+0

私はdateOfFirstBookPublished()を使用して、最も古いdatePublishedの本を返します。したがって、メソッド内では、コレクションをdatePublishedで昇順にソートし、インデックス0でブックを返します。コレクションが変更されたりブックコレクション内のプロパティが変更された場合、dateOfFirstBookPublishedは変更を認識して正しい本。 – Tyler

関連する問題