2012-01-06 59 views
0

在Flex中,如何最好地管理子集合屬性更改,具體爲 通知父對象子集合 內的屬性已更改。管理對子集合及其屬性的更改

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; 
    } 

} 

我怎樣才能通知作者,當一本書屬性格式已經改變和更新 的dateOfFirstBookPublished方法?任何援助表示讚賞。

回答

0

ArrayCollection實例調度CollectionEvent.COLLECTION_CHANGE每次您向其中添加/刪除項目時。你可以聽這個事件。

author.addEventListener(CollectionEvent.COLLECTION_CHANGE, onChange); 

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

謝謝你的迴應。你能提供一個使用上述類的例子嗎? – Tyler 2012-01-06 11:15:48

+0

@Tyler請顯示,你如何使用dateOfFirstBookPublished() – 2012-01-06 11:50:47

+0

我會使用dateOfFirstBookPublished()返回最早的日期發佈的書。因此,在該方法中,我會按照datePublished按升序對集合進行排序,然後將索引返回到索引0.因此,當集合發生更改或書集合中的某個屬性更改時,dateOfFirstBookPublished必須知道更改並返回正確書。 – Tyler 2012-01-06 14:10:38