我想在本地保存带有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
。
答案 0 :(得分:0)
您应该能够直接通过URLRequest
或URLVariables
对象传递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/
另外,作为一些替代方案,您是否看过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()