加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex – Flash:带参考表的AMF3?

发布时间:2020-12-15 02:10:14 所属栏目:百科 来源:网络整理
导读:AMF3 specification 定义了所谓的“参考表”的使用(参见本规范的第2.2节). 我在我在Erlang中开发的AMF3编码器/解码器中实现了这种行为,但对Flash API不是很有经验,我很难找到在将对象序列化为AMF3时如何轻松强制Flash使用这些引用表;例如,如果我使用ByteArra
AMF3 specification 定义了所谓的“参考表”的使用(参见本规范的第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,116,114,105,110,103,49,#   6,49>>

(这显然是重复).

但是,如果这两个字符串在一个writeObject调用中,它似乎确实使用引用:

ba.writeObject(["some string1","some string1"]);
 # => <<9,5,1,6,0>>

套接字似乎表现得一样.

那么,我可以在Flash代码中使用引用表吗? (假设我在Flash应用程序和服务器之间可能有非标准协议)

谢谢!

解决方法

我认为不同之处在于,在第一个示例中,您正在编写两个字符串文字.在第二个示例中,您正在编写一个数组(或Adobe的规范中的复杂对象),该数组具有对两个字符串的引用.因此,如果您从对象或数组引用字符串,它将在引用表中写入它.

这不一定是强制执行它的方法,但是内置到flash中的AMF序列化程序以这种方式序列化对象似乎是合乎逻辑的,因此它可能是获得所需行为的可靠方法(引用表字符串).

我希望这对你有所帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读