使用ActionScript创建临时XML文件

时间:2011-04-06 02:57:06

标签: xml actionscript

我想在本地保存带有ActionScript的XML文件,作为临时文件,如果可能的话。我已经阅读了所有关于AS如何在没有对话框的情况下不会让你这样做的事情(我理解安全问题),但肯定必须有某种临时选项?我需要使用URLVariables动态生成一些XML以传递给另一个swf(我无法控制这部分)。现在,我只能传入以前创建的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);

我想用我创建的xml替换us/data.xml

1 个答案:

答案 0 :(得分:0)

您应该能够直接通过URLRequestURLVariables对象传递XML对象。类似的东西:

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/

另外,作为一些替代方案,您是否看过LocalConnectionhttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/LocalConnection.htmlSharedObject.getRemote()(需要Flash Media Server):http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html#getRemote()