> var mivariable:retornaXML = new retornaXML();
> trace(mivariable.elXML);
> but this trace returns null, since the xml file (I think) is not loaded
> yet.

Yes, that's the problem. In Flash, xml loading is always asynchronous so the trace line is executed immediately after the previous one, in which you created an instance of retornaXML; so the XML object isn't at that point loaded and parsed. (It would perhaps be nice to have the option of loading synchronously, but I digress...).

So, you'll have to listen to the COMPLETE event dispatched by the URLLoader and then access the xml object.

You can wrap your xml and the loading logic in a custom class as you seem to be doing so far, but if you're just going to load the xml and the read it / parse it somewhere else (outside that class), in my humble opinion, the wrapper is pointless.

You'll end up re-dispatching the Loader events (all the events you want to support; the error events, and the complete event, at least, just in case something went wrong, and perhaps the Progress event as well) so your external code can handle the different scenarios. By the time you are done coding that, you'll find that you have a class that does almost nothing of use by itself; it just copies all the functionality that you already had in the URLLoader and XML classes out of the box. I did it a couple of times when I started to use AS 3.0, but I changed my approach as it didn't make much sense to me to have such a class. Having all that logic encapsulated in the class that actually does something with the xml, on the other hand, seems like a good idea to me.

Cheers
Juan Pablo Califano

----- Original Message ----- From: "Hans Wichman" <[EMAIL PROTECTED]>
To: "Flash Coders List" <flashcoders@chattyfig.figleaf.com>
Sent: Tuesday, January 29, 2008 7:30 PM
Subject: Re: [Flashcoders] how to return in this function


seems like an item for the newbie list tbh:)

On Tue, Jan 29, 2008 at 8:27 PM, Claudio M. E. Bastos Iorio <
[EMAIL PROTECTED]> wrote:

Thanks for your answer. But how? Where?. I think that
ProgressEvent.bytesLoaded, and ProgressEvent.bytesTotal could help. But
where should I check the status?

____________________________________________________
Claudio M. E. Bastos Iorio
http://www.blumer.com.ar

 -----Original Message-----
From: [EMAIL PROTECTED] [mailto:
[EMAIL PROTECTED] On Behalf Of eric e. dolecki
Sent: Tuesday, January 29, 2008 4:07 PM
To: Flash Coders List
Subject: Re: [Flashcoders] how to return in this function

you could use an event to listen to, to pass the XML out of the class.

On Jan 29, 2008 1:42 PM, Claudio M. E. Bastos Iorio <[EMAIL PROTECTED]
>
wrote:

> Hi guys, hope you can help me on this one.
>
> I have a class to load an XML file. I'm trying this:
>
>
>
>
> package {
>   import flash.net.URLRequest;
>   import flash.net.URLLoader;
>   import flash.events.*;
>   public class retornaXML{
>      private var _xml:XML;
>      public function retornaXML() {
>         cargarXML();
>      }
>
>      private function cargarXML():void {
>         var loader:URLLoader = new URLLoader();
>         loader.addEventListener(Event.COMPLETE, xmlLoaded);
>         loader.load(new URLRequest("LocalData.xml"));
>      }
>      private function xmlLoaded(e:Event):void {
>         _xml = new XML(e.target.data);
>         trace(_xml);
> //THE TRACE HERE WORKS PERFECT AND RETURNS THE XML
>
>      }
>      public function get elXML():XML {
>         return _xml;
> //THIS RETURNS null
>      }
>
>   }
> }
>
>
>
> I want something like this:
>
>
>
> var mivariable:retornaXML = new retornaXML();
> trace(mivariable.elXML);
>
>
>
> but this trace returns null, since the xml file (I think) is not loaded
> yet.
> What should I do?
>
>
>
> Thanks in advance.
>
> ____________________________________________________
>
> Claudio M. E. Bastos Iorio
>
>  <http://www.blumer.com.ar/> http://www.blumer.com.ar
>
>
>
> _______________________________________________
> Flashcoders mailing list
> Flashcoders@chattyfig.figleaf.com
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to