Я работаю над проектом с открытым исходным кодом Downloadify , и до сих пор он просто обрабатывал возвращаемые строки в ответ на команды ExternalInterface.call
.
Я пытаюсь собрать тестовый набор, используя JSZip и Downloadify вместе, в результате получается, что файл Zip динамически создается в браузере, а затем сохраняется на диск с помощью FileReference.save
. Однако это моя проблема:
Библиотека JSZip может возвращать либо кодированную строку base64
Zip, либо необработанную строку байтов. Проблема в том, что если я возвращаю эту строку байтов в ответ на команду ExternalInterface.call
, я получаю эту ошибку:
Error #1085: The element type "string" must be terminated by the matching end-tag "</string>"
ActionScript 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
, так как мне пришлось бы включить декодер base64
в мой swf
, что увеличит его размер.
Наконец: я не ищу генератор Z3 AS3. Для моего проекта обязательно, чтобы эта часть выполнялась в JavaScript
По общему признанию не программист AS3 по профессии, поэтому, если вам нужно больше подробностей, пожалуйста, дайте мне знать.