Flex:RemoteObject + IExternalizable的意外泄漏?

时间:2010-04-06 15:03:00

标签: flex amf iexternalizable

我一直在修补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

但是我的序列化对象泄漏到请求的其余部分似乎是错误的。

那么,我做错了什么?我错过了部分文档吗?

1 个答案:

答案 0 :(得分:1)

你的代码看起来很好,但你应该使用正确的方法序列化(writeUTF用于字符串,writeInt用于int等)。无论如何Charles似乎无法正常使用实现IExternalizable的对象(我使用的是3.4.1版本),所以你不应该依赖它所显示的内容。

与您的问题没有直接关系 - 您真的需要使用IExternalizable吗?您将失去与AMF压缩算法相关的一些好处(除非您不打算在writeExternal方法中实现所有这些功能)。