PDA

Просмотр полной версии : Событие загрузки не срабатывает?


forward
20.06.2011, 02:53
Доброго времени суток!

Гружу вот так xml:


package {

import flash.display.MovieClip;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;


public class Main extends MovieClip {

private var my_xml:String = 'data.xml'

public function Main() {
initXML();
}

private function initXML(){
var loader = new Loader();
var req = new URLRequest(my_xml);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,parseXML);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
loader.load(req);

}

private function ioErrorHandler(e:Event){
trace('no xml file');
}
private function parseXML(e:Event){
var xml:XML = e.target.data;
trace(xml);

}
}

}


Функция parseXML не вызывается...так как событие окончания загрузки не срабатывает....:(

Что не так?

MXPain
20.06.2011, 04:08
вот так попробуйте
loader.addEventListener(Event.COMPLETE,parseXML);

andrew911
20.06.2011, 05:34
2 MXPain
Не поможет.


Класс Loader (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/Loader.html) Loader используется для загрузки SWF-файлов либо файлов изображений (JPG, PNG или GIF).
...
Используйте класс URLLoader для загрузки текстовых или двоичных данных.


loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
Это скрывает вашу ошибку, уберите и посмотрите.

kackbip
20.06.2011, 05:36
Вам нужно заменить Loader на URLLoader.

forward
20.06.2011, 15:45
Всем СПАСИБО вот так получилось:

package {

import flash.display.MovieClip;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.IOErrorEvent;


public class Main extends MovieClip {

private var my_xml:String = 'data.xml';

public function Main() {
initXML();
}

private function initXML(){
var loader:URLLoader = new URLLoader();
var req = new URLRequest(my_xml);
loader.addEventListener(Event.COMPLETE,parseXML);
loader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);
loader.load(req);

}

private function ioErrorHandler(e:Event){
trace('no xml file');
}
private function parseXML(e:Event){

var xml = new XML(e.target.data);
trace(xml);

}
}

}


:)