套件 | flash.net |
類別 | public final class ObjectEncoding |
繼承 | ObjectEncoding Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
物件編碼會控制物件在 Action Message Format (AMF) 中的表示方式。Flash Player 會使用 AMF 來啟用應用程式和遠端伺服器之間的有效通訊。AMF 會將遠端程序呼叫編碼成精簡的二進位表示法,這種表示法可以透過 Flash Media Server 所使用的 HTTP/HTTPS 或 RTMP/RTMPS 通訊協定進行傳輸。物件和資料值會序列化成這種二進位格式,通常這會較其他表示法如 XML 更精簡。
Adobe AIR 和 Flash Player 9 能以兩種不同的格式進行序列化:AMF3 和 AMF0。AMF3 (專為 ActionScript 3.0 開發的預設序列化格式) 相較於 AMF0 (用於 ActionScript 1.0 和 2.0) 具有更多的優點。AMF3 透過網路傳送資料的效率會比 AMF0 更高。AMF3 支援將 int
和 uint
物件當作整數傳送,而且支援只在 ActionScript 3.0 中可用的資料類型,例如 ByteArray、XML 和 IExternalizable。 它只能在 ActionScript 3.0 中使用,而且必須搭配使用 AMF3 編碼的伺服器 (例如 Flex 2) 使用。
ByteArray、FileStream、NetConnection、NetStream、SharedObject、Socket 和 URLStream 類別含有 ObjectEncoding 類別指定其常數的 objectEncoding
屬性。 objectEncoding
屬性的行為會因物件而不同。每個類別的 objectEncoding
屬性說明會更完整地描述此行為。
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
dynamicPropertyWriter : IDynamicPropertyWriter [靜態]
可針對動態物件之動態屬性的序列化作業,提供較佳的控制能力。 | ObjectEncoding |
常數 | 定義自 | ||
---|---|---|---|
AMF0 : uint = 0 [靜態]
會指定物件要使用 ActionScript 1.0 和 2.0 的 Action Message Format 進行序列化。 | ObjectEncoding | ||
AMF3 : uint = 3 [靜態]
會指定物件要使用 ActionScript 3.0 的 Action Message Format 進行序列化。 | ObjectEncoding | ||
DEFAULT : uint = 3 [靜態]
指定目前執行階段 (可能是 Flash Player 或 AIR) 的預設 (最新) 格式。 | ObjectEncoding |
dynamicPropertyWriter | 屬性 |
dynamicPropertyWriter:IDynamicPropertyWriter
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
可針對動態物件之動態屬性的序列化作業,提供較佳的控制能力。 當這個屬性設定為 null
(預設值) 時,動態屬性就會使用原生程式碼進行序列化,而此程式碼會寫入所有動態屬性,但其值為函數的屬性則除外。
只有動態物件 (在動態類別內宣告的物件) 的屬性,或是使用 new
運算子宣告的物件,才會呼叫這個值。
您可以使用此屬性,從序列化作業中排除動態物件的屬性、將值寫入動態物件的屬性,或建立動態物件的新屬性。 若要執行上述操作,請將此屬性設定為實作 IDynamicPropertyWriter 介面的物件。 如需詳細資訊,請參閱 IDynamicPropertyWriter 介面。
實作
public static function get dynamicPropertyWriter():IDynamicPropertyWriter
public static function set dynamicPropertyWriter(value:IDynamicPropertyWriter):void
相關 API 元素
AMF0 | 常數 |
public static const AMF0:uint = 0
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會指定物件要使用 ActionScript 1.0 和 2.0 的 Action Message Format 進行序列化。
AMF3 | 常數 |
public static const AMF3:uint = 3
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
會指定物件要使用 ActionScript 3.0 的 Action Message Format 進行序列化。
DEFAULT | 常數 |
public static const DEFAULT:uint = 3
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定目前執行階段 (可能是 Flash Player 或 AIR) 的預設 (最新) 格式。由於物件編碼控制只有在 Flash Player 9 和更新版本和 Adobe AIR 中才能使用,因此所使用的最舊格式為 ActionScript 3.0 的 Action Message Format。
例如,如果物件將 objectEncoding
屬性設定為 ObjectEncoding.DEFAULT
,則會使用 AMF3 編碼。如果未來 Flash Player 的更新版本或 Adobe AIR 加入新的 AMF 版本,並且您也重新發佈內容,那麼應用程式將會使用此新的 AMF 版本。只有當您完全不在意與舊版的互通性時,才能使用此常數。
Tue Jun 12 2018, 03:47 PM Z