gpt4 book ai didi

javascript - 如何在不编码或保存数据的情况下将二进制数据从 javascript 传递到 actionscript(网页到 flash)?

转载 作者:行者123 更新时间:2023-11-30 05:56:38 24 4
gpt4 key购买 nike

情况:我正在尝试用 javascript 替换 Flash Socket 通信(字节范围),以避免 flash socket 安全策略文件限制。

详细信息:我有来自 javascript 的二进制数据,我可以通过 base64 编码/解码将它传递给 flash,但这太慢了。保存到磁盘并传递本地 url 不是一个选项(不仅是为了速度,而且客户更喜欢内存中的所有内容,并且 swf 文件可能被限制加载本地文件)。此外,不使用 base64 是行不通的,因为 Flash 的外部接口(interface)使用 XML(并非设计用于传输二进制数据)将数据传递给 AS3。

问题:有没有办法不用写磁盘,不用bae64编码,就可以从JS中获取二进制数据到AS3?

我知道 Action Message Format (AMF),但它似乎增加了许多外部依赖性,而且速度可能仍然很慢?

注意:我的程序需要尽可能与浏览器兼容,并且它是由客户端下载的(因此需要很小)并且它还需要尽可能快地运行...

谢谢!

最佳答案

我稍微修改了我对这个问题的想法:

没有直接方法可以在 Flash 和 Javascript 之间发送二进制数据而不先将其编码为基于文本的格式(即:对其进行 base64 编码)。

正如 OP 所指出的,为了促进 Actionscript 和 Javascript 之间的通信,ExternalInterface class actually marshals objects/data into an XML format .因此,二进制数据需要经过此转换为 XML。

新想法:当您使用 ExternalInterface 时,Flash 应用程序实际上修改了 DOM,添加了将数据序列化/反序列化为 XML 的方法(需要引用,我'我读过这个但现在找不到)。从技术上讲,可以在 Javascript 中重新定义这些方法并修复您在尝试传递二进制数据时看到的 XML 解析错误。您必须确定这些方法的名称(我记得它们以 __Flash__ 或类似的名称开头)。

关于javascript - 如何在不编码或保存数据的情况下将二进制数据从 javascript 传递到 actionscript(网页到 flash)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11458717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com