Обновление значения XML из ActionScript - PullRequest
0 голосов
/ 07 марта 2011
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 ]

1 голос
/ 07 марта 2011

Единственный способ изменить файловую флеш-память - это локальное хранилище в Air или сценарии на стороне сервера и перенести изменения на сервер (либо весь xml, либо только изменения), но нет способа удаленного изменения файла xml.В нем xml-файл является статической структурой, а для ОС - просто ASCII-файлом.

1 голос
/ 07 марта 2011

Только метод URLLoader.load ... загрузка данных. Вы не можете сохранить контент, вызвав URLLoader.load.

Если вы работаете только с локальным контентом (на своем компьютере), вы можете использовать класс FileReference. Если ваш XML хранится на сервере, вам нужен серверный скрипт для сохранения данных

...