0
从今天上午开始,我一直有这个困难,所以我最终决定寻求你的帮助。 我尝试了很多解决方案,但都没有按需要工作。我想加载一个XML文件(本地)并编辑它,然后将结果保存在同一个文件中。 加载/读取不是问题,它工作正常,但保存文件是非常困难的as3。在AS3 Flash中编辑和保存XML
(注:我有一个本地serveur,所以这不是问题)
这里是我最好的问题的方法至今(发现here):
save.php:
<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
$xml = $GLOBALS["HTTP_RAW_POST_DATA"];
$file = fopen("http://localhost/cs_texte.xml","wt");
fwrite($file, $xml);
fclose($file);
}
?>
myAs3script.as:
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
// Loading XML -> works fine
xmlLoader.load(new URLRequest("http://localhost/cs_texte.xml"));
//When loading complete
function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
trace(xmlData); // Works fine
[.. Do some stuff on xml ..]
var xmlResponse:XML;
var xmlURLReq:URLRequest = new URLRequest("http://localhost/save.php");
xmlURLReq.data = xmlData;
xmlURLReq.contentType = "text/xml";
xmlURLReq.method = URLRequestMethod.POST;
var xmlSendLoad:URLLoader = new URLLoader();
xmlSendLoad.addEventListener(Event.COMPLETE, completeHandler);
xmlSendLoad.load(xmlURLReq);
function completeHandler(evt:Event) {
trace ('Save complete');
}
}
但它不工作,xml文件不改变可言,即使我试图清空它..
任何想法为什么? (你知道如何在Flash输出控制台中得到php错误吗?如果有任何..)
Thansk为您提供帮助! (同时请宽容,这不是我的项目开始..)
试着回应一切从PHP - 它会回来作为结果加载器。检查完整处理程序中的结果。您甚至可以将所有内容都包含在try-catch中并回显错误,以便您可以在Flash中看到它。另一个好方法是在浏览器中测试它并查看http请求。 我认为问题出在文件的路径上,因为我认为需要本地路径才能拥有写权限。反正 - 回声一切,你会抓住它!祝你好运! –
哦,并且一定要添加错误处理程序以及IOError,以确保PHP执行的结果。 –
你检查了这个:http://stackoverflow.com/questions/6481243/saving-flash-as3-data-to-xml/6484450#6484450? - 如果你使用AIR,你也可以使用'FileStream'来保存它而不用打开一个对话框 – divillysausages