2010-01-01 38 views
1

我在理解Flex中的Value對象時遇到了一些小問題...我試圖從PHP/MySQL獲取一些數據並將其發送給Flex,但我被困在一些(顯然)的基本問題......幫助理解Flex中Value對象的用法

比方說,我在Flex中的對象應該是這樣的:

package some.package.VO { 

    [RemoteClass(alias="VOPerson")] 

    [Bindable] 
    public class VOPerson { 
     public var personID:int; 
     public var firstName:String; 
     public var lastName:String; 
     public var personDetails:Array; 
    } 
} 

在我的情況,personDetails是一個數組,在理論上,它可能是一些其他的對象...但是真的有必要使它成爲object?除了在我的VOPerson課程中,我不打算在其他地方使用該數據。這是一些關聯數組,我可以很容易地將它轉換爲另一個對象,但是在我的應用程序中會出現很多類似的情況,所以我想避免在不需要的情況下創建不必要的(值)對象...

無論如何,任何提示/提示/鏈接關於我的問題將非常感激! :)
非常感謝!

回答

1

我對Java/Flex的PHP/Flex序列化並不熟悉,但我相信相同的原則也適用。如果personDetails是一個基元數組,則它將被序列化爲Flex。如果personDetails是Flex不知道如何序列化的類型(即,您尚未將其定義爲RemoteClass),則它將被轉換爲匿名對象。

如果您想阻止您的PHP代碼中的personDetails首先被序列化爲Flex,那可能會更棘手。我知道Flex通過查找公共getter/setter對來識別Java中的可序列化字段,因此您可以通過不暴露getter和setter來防止序列化。在PHP中可能會有類似的技巧。

+0

感謝這個偉大的信息!只是問,在我的例子中是否需要序列化personDetails,還是可以使用基元?正如我所提到的,personDetails不是別的,而是簡單的關聯數組,它只會用作person類的一部分,我不會將它用作單獨的類/對象...謝謝! – errata 2010-01-02 23:17:04

+0

將personDetails放入其自己的類中的唯一好處是,如果您想向其添加實例方法或將其作爲類型化參數傳遞給方法。如果你不需要這個功能,把它作爲一個原始數組保存起來會少一些工作。 – 2010-01-04 15:49:55

+0

非常感謝你! :) – errata 2010-01-04 16:47:23