来自actionscript的XML值更新

时间:2011-03-07 05:16:51

标签: flash actionscript-3 actionscript flash-cs4 flash-cs5

var ldr:URLLoader = new URLLoader();
ldr.addEventListener(Event.COMPLETE, onLoaad);
ldr.load(new URLRequest("oman.xml"));//or any script that returns xml

function onLoaad(e:Event):void
{
  var loadedText:String = URLLoader(e.target).data;
  trace(loadedText);

  //create xml from the received string
  var xml:XML = new XML(loadedText);
  trace(xml.toXMLString());

  //modify it
  var word2:XML = <word/>;
  var name:XML = <name/>;
  name.appendChild("the name");
  word2.appendChild(name);
  var title:String = "asdasd";
  word2.appendChild("<title2>" + title + "</title2>");
  xml.appendChild(word2);
  trace(xml.toXMLString());

  //save it
  var ldr:URLLoader = new URLLoader();
  ldr.addEventListener(Event.COMPLETE, onSave);
  //listen for other events here.
  var data:URLVariables = new URLVariables();
  data.xml = xml.toXMLString();
  var req:URLRequest = new URLRequest("oman.xml");
  req.data = data;
  ldr.load(req);
}

function onSave(e:Event):void
{
  trace(e.target.data);
}

这里我编写了ml结构的代码

<words>
    <word>
    <name>this</name>
    <title>that</title>
    </word>
</words>

但是这里没有更新......有没有替代方法呢?

2 个答案:

答案 0 :(得分:1)

仅限URLLoader.load方法...加载数据。您无法通过调用URLLoader.load来保存内容。

如果您只处理本地内容(在您自己的计算机上),则可以使用FileReference类。如果您的XML存储在服务器上,则需要一些服务器端脚本来保存数据

答案 1 :(得分:1)

通过Flash修改文件的唯一方法是在Air或服务器端脚本中进行本地存储,并将修改传递给服务器(整个xml或只是更改),但无法远程修改xml文件。在它中,xml文件是静态结构,对于操作系统,它只是一个ASCII文件。