2011-04-06 80 views
0

我想本地保存帶有ActionScript的XML文件作爲臨時文件(如果可能的話)。我已經讀過所有關於AS如何不讓你在沒有對話的情況下做到這一點(並且我理解安全問題),但肯定必須有某種臨時選項?我需要動態生成一些XML傳遞給另一個SWF使用URLVariables(我無法控制這部分)。現在,我只能通過以前創建的XML文件。我想用xml替換us/data.xml我創建了。使用ActionScript創建臨時XML文件

+0

您是傳遞實際的xml文件,還是僅僅鏈接到xml文件?它似乎只是鏈接 – divillysausages 2011-04-06 08:17:36

+0

現在它是一個存儲在磁盤上的本地xml文件的路徑。問題在於我從ActionScript修改了XML,現在需要弄清楚如何通過它。 – 2011-04-06 11:23:38

回答

0

您應該能夠直接通過URLRequestURLVariables對象傳遞XML對象。喜歡的東西:

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編碼它,在這種情況下:

var x:XML = ...; 

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

如果XML是大的,那麼你可以用ByteArray它壓縮,您可以使用此lib目錄下: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媒體服務器):http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html#getRemote()

+0

這似乎並不奏效。我正在使用[從這裏]獲得的swf(http://backpace.com/mapapp/us/us.zip)。我不會說我對AS有很多瞭解,但在我看來,我的swf想要一個文件,並且期望打開一個文件並對其進行處理。因此,傳遞原始數據並不是它想要的。 – 2011-04-06 13:44:36

+0

如果您無法訪問其他SWF(如將其更改爲接受地址或XML對象),那麼您可以繞過它的唯一方法是通過服務器腳本傳遞。如同,將XML傳遞給PHP,讓它保存文件(或覆蓋原文),然後發送第二個Flash文件作爲文件的名稱。您還必須自己跟蹤刪除文件(因爲Flash無法刪除系統文件) – divillysausages 2011-04-06 13:50:40

+0

有關如何將XML從SWF傳遞到PHP的任何提示? – 2011-04-06 16:11:19