Создать временный XML-файл с помощью ActionScript - PullRequest
0 голосов
/ 06 апреля 2011

Я хотел бы локально сохранить файл XML с ActionScript, как временный файл, если это вообще возможно.Я прочитал все о том, как AS не позволит вам сделать это без диалогов (и я понимаю проблемы безопасности), но, конечно, должна быть какая-то временная опция?Мне нужно динамически сгенерировать некоторый XML для передачи другому SWF с помощью URLVariables (я не могу контролировать эту часть).Сейчас я могу передать только ранее созданные XML-файлы.

var urlReq:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.data_file = "us/data.xml"; //data.xml is static/already created
urlReq.data = variables;
ldr.load(urlReq);

Я хотел бы заменить us/data.xml на созданный мною xml.

1 Ответ

0 голосов
/ 06 апреля 2011

Вы должны иметь возможность передавать объект XML напрямую через объект URLRequest или URLVariables.Что-то вроде:

var x:XML = ...;

var req:URLRequest = new URLRequest( url )
req.data = xml;
ldr.load( urlReq );

Если xml большой, то вы можете сжать его с помощью ByteArray:

var x:XML = ...;
var bytes:ByteArray = new ByteArray;
bytes.writeUTFBytes( x );
bytes.compress();

var req:URLRequest = new URLRequest( url )
req.data = bytes;
ldr.load( urlReq );

Если у вас возникла проблема, возможно, вам придется закодировать егос Base64, в этом случае вы можете использовать эту библиотеку: http://jpauclair.net/2010/01/09/base64-optimized-as3-lib/

Также в качестве некоторых альтернатив вы рассматривали LocalConnection: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/LocalConnection.html или SharedObject.getRemote() (требуется Flash Media Server): http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html#getRemote()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...