AMF3 规范定义了所谓的“参考表”的使用(参见本规范的第 2.2 节)。
我在我用 Erlang 开发的 AMF3 编码器/解码器中实现了这种行为,但是我对 Flash API 不是很有经验,我几乎找不到在将对象序列化为 AMF3 时如何轻松地强制 Flash 使用这些引用表;例如,如果我使用 ByteArray,它似乎只是重复完整的对象编码
var ba:ByteArray = new ByteArray();
ba.writeObject("some string1");
ba.writeObject("some string1");
# =>
# <<6,25,115,111,109,101,32,115,116,114,105,110,103,49,
# 6,25,115,111,109,101,32,115,116,114,105,110,103,49>>
(这显然是重复)。
但是,如果这两个字符串在一个单独的 writeObject 调用中,它似乎确实使用了引用:
ba.writeObject(["some string1", "some string1"]);
# => <<9,5,1,6,25,115,111,109,101,32,115,116,114,105,110,103,49,6,0>>
Socket 的行为似乎相同。
那么,我可以在 Flash 代码中使用引用表吗?(假设我可能在 Flash 应用程序和服务器之间有一个非标准协议)
谢谢!