AS3:强制保存 Xml 文件

Posted

技术标签:

【中文标题】AS3:强制保存 Xml 文件【英文标题】:AS3: Force Save an Xml File 【发布时间】:2012-07-27 17:50:37 【问题描述】:

我想知道是否有办法强制用户将 xml 文件保存在某个位置。 即他们无法选择保存文件的位置。 我希望它始终保存在与 swf 文件相同的位置。


提前感谢您的帮助。

【问题讨论】:

我实际上不记得了,但是“闪存”安全策略不允许这样有趣的事情。也许我错了。 【参考方案1】:

不,你不能。

为此,您需要知道用户文件系统的有效路径。您不能只使用C:\mylocation\,因为Flash Player 也可以在其他没有C:\mylocation\ 的操作系统中运行。

如果您将 Flash 用作内部工具,而不是用于 Web,则您有其他选择,例如将数据存储在剪贴板中,然后运行后台应用程序,该应用程序将获取剪贴板数据并将其保存在特定路径中;或者干脆使用 AIR

【讨论】:

【参考方案2】:

如果它在线运行,您可以在编辑 xml 后将其转换为字符串。可以使用 POST 或 GET 请求将此字符串发送到 php 或其他服务器端语言。

由于 swf 的运行客户端,它们无法访问服务器上的文件。像 php 这样的服务器端语言可以访问文件并写入文件。

在 as3 上将您的 xml 字符串发送到 php 脚本。 (查看AS3 URL string -> URLRequest)

// url variables all which will appear after ? sign
var url = "www.example.nl/phpfilelocation.php";
var urlVariables : URLVariables = new URLVariables ();
urlVariables.xmldata = myXml.toString();

var request : URLRequest = new URLRequest  ( url );
request.data = urlVariables;
request.method = URLRequestMethod.POST;

var loader : URLLoader = new URLLoader ();
loader.addEventListener( Event.COMPLETE, handleLoaderComplete )
loader.load ( request );

在 php 方面,您可以使用此代码(警告这是一个示例,并不安全,因为现在每个人都可以使用 url 编写您的 myFile.xml 并提供名为 xmldata 的帖子数据。

$file = "myFile.xml";
$fileHandle = fopen($file, 'w');
fwrite($fileHandle , $_POST['xmldata']);
fclose($fileHandle );

【讨论】:

以上是关于AS3:强制保存 Xml 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 AS3 中强制垃圾收集?

AS3 Flash 中的类型强制

AS3强制单例

AS3 - 仅 iOS 强制横向模式?

ActionScript 3 AS3强制单身人士

AS3 Flash中的类型强制