我一直在修补IExternalizable
,但我注意到了一些意想不到的行为。我有这堂课:
public function readExternal(input:IDataInput):void {
input.readObject();
input.readObject();
input.readObject();
}
public function writeExternal(output:IDataOutput):void {
output.writeObject("first string");
output.writeObject(424242);
output.writeObject("second string");
}
但是当我尝试使用AMF序列化此类并将其发送到远程服务器(通过RemoteObject
)时,Charles告诉我该请求如下所示:
unexpected result http://img.skitch.com/20100406-cjawastycagp1x2chbe76k2suu.png
但是我的序列化对象泄漏到请求的其余部分似乎是错误的。
那么,我做错了什么?我错过了部分文档吗?
答案 0 :(得分:1)
你的代码看起来很好,但你应该使用正确的方法序列化(writeUTF用于字符串,writeInt用于int等)。无论如何Charles似乎无法正常使用实现IExternalizable的对象(我使用的是3.4.1版本),所以你不应该依赖它所显示的内容。
与您的问题没有直接关系 - 您真的需要使用IExternalizable吗?您将失去与AMF压缩算法相关的一些好处(除非您不打算在writeExternal方法中实现所有这些功能)。