PDA

Просмотр полной версии : XML.load()


ReN
25.11.2006, 18:36
Смлтрю MXML ActionScript 2.0 Migration.
Написано: load() Method - Removed.

Поискал и наткнулся...

import flash.display.Sprite;
import flash.events.*;
import flash.net.*;

var fSet:XMLDocument = new XMLDocument();
fSet.ignoreWhite = true;

var loaderXML:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("f.xml");
loaderXML.addEventListener(Event.COMPLETE, completeXML);
try {
loaderXML.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}

function completeXML(event:Event):void {
fSet = loaderXML.data;
trace(fSet)//выводит xml
}

Однако пишет что не может конвертнуть его "to flash.xml.XMLDocument".

Подскажите... плз.

etc
26.11.2006, 00:19
Потому что loaderXML.data — String, а не XMLDocument.
Если хочется конвертировать, то можно написать fSet.parseXML(loaderXML.data);

ReN
26.11.2006, 14:46
Да, я уже так и сделал. Спасибо...

ReN
28.11.2006, 15:27
Вроде XMLDocument это XML из AS2.
Есть ли такой способ применительно к XML?

etc
28.11.2006, 15:50
loaderXML.data as XML; можно event.target.data as XML;

ReN
28.11.2006, 18:10
loaderXML.data as XML возвращает null. Как с этим бороться?

etc
28.11.2006, 18:18
Рабочий пример из хелпа:
package {
import flash.display.Sprite;
import flash.errors.*;
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;

public class ExternalDocs extends Sprite {
public function ExternalDocs() {
var request:URLRequest = new URLRequest("http://www.[yourdomain].com/data.xml");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
try {
loader.load(request);
} catch (error:ArgumentError) {
trace("An ArgumentError has occurred.");
} catch (error:SecurityError) {
trace("A SecurityError has occurred.");
}
}
private function completeHandler(event:Event):void {
var dataXML:XML = XML(event.target.data);
trace(dataXML.toXMLString());
}
}
}

ReN
28.11.2006, 18:58
Спасибо. Тоже не работал, нашел небольшую ошибку в XML...