2012-09-10 30 views
0

所以我有这两个脚本可以相互交流来在线创建一个xml文件。我现在的方式是,AS3 swf发送一些变量到一个php脚本来写。我得到了创建部分,但由于某种原因,PHP不写入一个XML文件。我尝试将变量更改为简单的“foobar”字符串,并且它可以工作。但如果我做:不能从as3传递xml到php

var temp:XML = new XML(<test></test>); 

它doesen't写它。那么,这是正常的吗?

AS3

function SaveXml(inputxml:XML){ 
    var temp:XML = <teste></teste>; 
    var variables:URLVariables = new URLVariables(); 
    variables.xmlfile = temp; 
    variables.folder = TestProperties.Username; 
    var request:URLRequest = new URLRequest("savexml.php"); 
    request.method = URLRequestMethod.POST; 
    request.data = variables; 

    var loader:URLLoader = new URLLoader(); 
    loader.dataFormat = URLLoaderDataFormat.VARIABLES; 

    try{ 
     loader.load(request); 
    } 
    catch (error:Error) { 
     trace("Unable to load URL"); 
    } 

    loader.addEventListener(Event.COMPLETE, completeHandler); 

    function completeHandler(e:Event) 
    { 
       //something when complete; 
    } 
    } 

PHP

<?php 

date_default_timezone_set('GMT'); 

$xmlfile = $_POST["xmlfile"]; 
$folder = $_POST["folder"]; 
$filename = date('ymdhis').".xml"; 

if(! file_exists("./user/".$folder."/")){ 
    mkdir("./user/".$folder."/", 0777); 
} 

$handle = fopen("user/".$folder."/".$filename, 'w+'); 
fwrite($handle, $xmlfile); 
fclose($handle); 

echo "result=success"; 
?> 
+0

你试过谷歌吗? http://www.actionscript.org/forums/showthread.php3?t=169554 –

+0

虽然我很欣赏帮助,但我可以没有讽刺的生活。是的,我尝试使用Google搜索,我发现的大多数问题都是加载器和跨域问题,这不是这里的情况。 – FoxLift

回答

3

像你这样你不能在Flash中创建一个xml。

var temp:XML = <teste></teste>; 

因为在您的文件中没有任何对象。你需要做的是在实例化XML对象时提供一个字符串作为参数。

所以,你应该这样做下面,

var temp:XML = new XML("<teste></teste>"); 

现在你的代码可以发送XML到PHP。

+0

谢谢。我(错误地)认为XML不需要被称为字符串。也许XMLList?无论如何,它的工作,谢谢。 – FoxLift

+0

欢迎您:) – Moorthy