【发布时间】:2011-01-07 14:41:16
【问题描述】:
我正在开发我的开源项目Downloadify,到目前为止,它只是处理返回字符串以响应ExternalInterface.call 命令。
我正在尝试使用JSZip 和Downloadify 组合一个测试用例,最终结果是在浏览器中动态创建一个Zip 文件,然后使用FileReference.save 保存到磁盘。但是,这是我的问题:
JSZip 库可以返回 Zip 的 base64 编码字符串或原始字节字符串。问题是,如果我返回该字节字符串以响应 ExternalInterface.call 命令,我会收到此错误:
Error #1085: The element type "string" must be terminated by the matching end-tag "</string>"
动作脚本 3:
var theData:* = ExternalInterface.call('Downloadify.getTextForSave',queue_name);
其中queue_name 只是一个字符串,用于在 JS 中识别正确的实例。
JavaScript:
var zip = new JSZip();
zip.add("test.txt", "Hello world!\n");
var content = zip.generate(true);
return content;
如果我改为返回普通字符串而不是字节字符串,则调用正常。我想避免使用base64,因为我必须在我的swf 中包含一个base64 解码器,这将增加它的大小。
最后:我不是在寻找 AS3 Zip 生成器。我的项目必须让这部分在 JavaScript 中运行
诚然,我不是一个 AS3 程序员,所以如果你需要更多细节,请告诉我。
【问题讨论】:
-
看起来不错!我不知道如何回答你的问题,但我想我会在 downloadify.info 上指出一个错字——“是时候广泛使用这个功能了”应该是“是时候广泛使用这个功能了”。
-
@Dominic Rodger 谢谢伙计......它已修复!计算机语言,我很擅长。人类语言,嗯,那是不同的:)
-
np - 总是很高兴成为一个书呆子!
标签: javascript flash actionscript-3 bytearray externalinterface