PDA

Volledige versie bekijken : Lege var


Jitze.Pieter
%Europe/Berlin %761 %2010, 18:15
Ik krijg geen foutmeldingen en ik laad een externe xml file.
Als ik een trace doe zie ik niet de data uit mijn xml file kan iemand me helpen?

as file

package src
{
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLRequest;

public class LoadImages extends MovieClip
{
public var loader:Loader = new Loader();
public var urlRequest:URLRequest = new URLRequest("xml/images.xml");

public var imgList:XML;

//constructor
public function LoadImages()
{
trace(" hello constructor ");
this.loader.load(this.urlRequest);
this.loader.addEventListener(Event.COMPLETE, onCompleteHandler);
}

private function onCompleteHandler(event:Event):void
{
imgList = new XML(event.target.data);
trace(imgList);

}
}
}

xml fle

<?xml version="1.0"?>
<images>
<image id="1">
<source>
img/image1.gif
</source>
</image>
<image id="2">
<source>
img/image2.gif
</source>
</image>
<image id="3">
<source>
img/image3.gif
</source>
</image>
<image id="4">
<source>
img/image4.gif
</source>
</image>
<image id="5">
<source>
img/image5.gif
</source>
</image>
<image id="6">
<source>
img/image6.gif
</source>
</image>
</images>



Alvast bedankt

TheDutch
%Europe/Berlin %769 %2010, 18:27
Vervang:

this.loader.addEventListener(Event.COMPLETE, onCompleteHandler);
Door:

this.loader.contentLoaderInfo.addEventListener(Eve nt.COMPLETE, onCompleteHandler);
En zet dit vóór ipv. na deze regel:

this.loader.load(this.urlRequest);


ps. Probeer voorstaan ook even te kijken of je uberhaupt wel in de "onCompleteHandler" functie komt ;).

jaspermuts
%Europe/Berlin %787 %2010, 18:53
Ik wilde eerst de suggestie doen om idd contentLoaderInfo toe te voegen en ook een IO_ErrorEvent handler (zie andere topic (http://www.flashfocus.nl/forum/showthread.php?p=391336#post391336)), maar de fout ligt simpeler:
Je probeert denk ik in 1x de gecombineerde functionaliteit van URLLoader (=data inladen) en Loader (= externe afbeelding inladen) te gebruiken.
Laad de data in via een URLLoader, en laad aan de hand van de url's uit de xml de afbeelding in via een Loader.
In je huidige situatie is het probleem om de xml in te laden opgelost door Loader te vervangen door URLLoader (en dus geen contentLoaderInfo te gebruiken, dat is een eigenschap van Loader)

Jitze.Pieter
%Europe/Berlin %789 %2010, 18:57
Ik kom nog steeds niet in de oncompletehandler

Jitze.Pieter
%Europe/Berlin %795 %2010, 19:05
Oke bedankt ik heb het nu zo gedaan:


package src
{
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

public class LoadImages extends MovieClip
{
public var loader:URLLoader = new URLLoader();
public var urlRequest:URLRequest = new URLRequest("xml/images.xml");

public var imgList:XML;

//constructor
public function LoadImages()
{
trace(" hello constructor ");
this.loader.load(this.urlRequest);
this.loader.addEventListener(Event.COMPLETE, onCompleteHandler);

}

private function onCompleteHandler(event:Event):void
{
trace(" test ");
imgList = new XML(event.target.data);
trace(imgList);
}
}
}


Nu opzoek naar een manier om de url's uit de xml in eeen array te zetten

TheDutch
%Europe/Berlin %813 %2010, 19:31
Scherp Jasper! Helemaal de link niet gelegd tussen XML en Loader, wat inderdaad nooit zal werken :).