Re: [Flashcoders] using a class to load data
thanks jason a On 27 Mar 2008, at 21:30, Merrill, Jason wrote: Yeah, I mean that's basically how I described it and would do it - there might be a better way, but that way should work fine for you. Jason Merrill Bank of America GTO and Risk LLD Solutions Design Development eTools Multimedia Bank of America Flash Platform Developer Community Are you a Bank of America associate interested in innovative learning ideas and technologies? Check out our internal GTO Innovative Learning Blog subscribe. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allandt Bik-Elliott (Receptacle) Sent: Thursday, March 27, 2008 4:30 PM To: Flash Coders List Subject: Re: [Flashcoders] using a class to load data thanks jason - i've done this and it's working, i just wanted you to take a look to make sure i've not done it stupidly CODE package { //package imports import flash.events.*; import flash.net.*; internal class XMLLoader extends EventDispatcher { // class variable declarations private var xmlDoc:XML; private var xmlURL:String; private var xmlLoader:URLLoader; public static const COMPLETE:String = complete; public function get doc():XML { return xmlDoc; } // constructor public function XMLLoader(url:String) { xmlURL = url; var urlRequest:URLRequest = new URLRequest(xmlURL); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, completeListener); xmlLoader.load(urlRequest); } private function completeListener(e:Event):void { xmlDoc = new XML(xmlLoader.data); dispatchEvent(new Event(XMLLoader.COMPLETE)); } } } /CODE and the function call is CODE private var xmlDoc:XML; private var xmlurl:String; private var xmlLoader:XMLLoader; // call to initialiseXML() made in constructor private function initialiseXML():void { xmlLoader = new XMLLoader(xmlurl); xmlLoader.addEventListener(Event.COMPLETE, completeListener); } private function completeListener(e:Event):void { xmlDoc = xmlLoader.doc; trace (xmlDoc.toXMLString()); //traces xml correctly } /CODE a On 27 Mar 2008, at 19:14, Merrill, Jason wrote: Have your XMLLoader class extend EventDispatcher and have your XMLLoader class dispatch an event when the load is complete. Wherever your instance of the class is declared, add an event listener to the instance and write a function handler. if you need assistance with setting that up, write back, it's pretty simple. Jason Merrill Bank of America GTO and Risk LLD Solutions Design Development eTools Multimedia Bank of America Flash Platform Developer Community Are you a Bank of America associate interested in innovative learning ideas and technologies? Check out our internal GTO Innovative Learning Blog subscribe. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allandt Bik-Elliott (Receptacle) Sent: Thursday, March 27, 2008 2:51 PM To: flashcoders Subject: [Flashcoders] using a class to load data hi guys i am trying to set up a class to handle my xml (will be instantiated for each xml file) but i'm running into a slight problem here is the class so far: CODE package { //package imports import flash.events.*; import flash.net.*; internal class XMLLoader { // class variable declarations private var xmlDoc:XML; private var xmlURL:String; private var xmlLoader:URLLoader; public function get doc():XML {return xmlDoc;} // constructor public function XMLLoader(url:String) { xmlURL = url; var urlRequest:URLRequest = new URLRequest(xmlURL); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, completeListener); xmlLoader.load(urlRequest); } private function completeListener(e:Event):void { xmlDoc = new XML(xmlLoader.data); } } } /CODE the problem is with timing - from within the XMLLoader() Class i can wait for the COMPLETE event to reference the xmlDoc but how would i do that from an instance of the class
RE: [Flashcoders] using a class to load data
Have your XMLLoader class extend EventDispatcher and have your XMLLoader class dispatch an event when the load is complete. Wherever your instance of the class is declared, add an event listener to the instance and write a function handler. if you need assistance with setting that up, write back, it's pretty simple. Jason Merrill Bank of America GTO and Risk LLD Solutions Design Development eTools Multimedia Bank of America Flash Platform Developer Community Are you a Bank of America associate interested in innovative learning ideas and technologies? Check out our internal GTO Innovative Learning Blog subscribe. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allandt Bik-Elliott (Receptacle) Sent: Thursday, March 27, 2008 2:51 PM To: flashcoders Subject: [Flashcoders] using a class to load data hi guys i am trying to set up a class to handle my xml (will be instantiated for each xml file) but i'm running into a slight problem here is the class so far: CODE package { //package imports import flash.events.*; import flash.net.*; internal class XMLLoader { // class variable declarations private var xmlDoc:XML; private var xmlURL:String; private var xmlLoader:URLLoader; public function get doc():XML {return xmlDoc;} // constructor public function XMLLoader(url:String) { xmlURL = url; var urlRequest:URLRequest = new URLRequest(xmlURL); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, completeListener); xmlLoader.load(urlRequest); } private function completeListener(e:Event):void { xmlDoc = new XML(xmlLoader.data); } } } /CODE the problem is with timing - from within the XMLLoader() Class i can wait for the COMPLETE event to reference the xmlDoc but how would i do that from an instance of the class? for instance if i do the following from my main class i get a null object error because it doesn't wait for the data to be loaded before trying to read it: CODE var xmlurl:String = path/to/xml.xml; var xmlDoc:XMLLoader = new XMLLoader(xmlurl); xmlDoc = xmlLoader.doc; trace (xmlDoc.toXMLString()); /CODE this would equally apply to an image loader, i guess thanks in advance a Allandt Bik-Elliott thefieldcomic.com e [EMAIL PROTECTED] ___ 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
Re: [Flashcoders] using a class to load data
thanks jason - i've done this and it's working, i just wanted you to take a look to make sure i've not done it stupidly CODE package { //package imports import flash.events.*; import flash.net.*; internal class XMLLoader extends EventDispatcher { // class variable declarations private var xmlDoc:XML; private var xmlURL:String; private var xmlLoader:URLLoader; public static const COMPLETE:String = complete; public function get doc():XML { return xmlDoc; } // constructor public function XMLLoader(url:String) { xmlURL = url; var urlRequest:URLRequest = new URLRequest(xmlURL); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, completeListener); xmlLoader.load(urlRequest); } private function completeListener(e:Event):void { xmlDoc = new XML(xmlLoader.data); dispatchEvent(new Event(XMLLoader.COMPLETE)); } } } /CODE and the function call is CODE private var xmlDoc:XML; private var xmlurl:String; private var xmlLoader:XMLLoader; // call to initialiseXML() made in constructor private function initialiseXML():void { xmlLoader = new XMLLoader(xmlurl); xmlLoader.addEventListener(Event.COMPLETE, completeListener); } private function completeListener(e:Event):void { xmlDoc = xmlLoader.doc; trace (xmlDoc.toXMLString()); //traces xml correctly } /CODE a On 27 Mar 2008, at 19:14, Merrill, Jason wrote: Have your XMLLoader class extend EventDispatcher and have your XMLLoader class dispatch an event when the load is complete. Wherever your instance of the class is declared, add an event listener to the instance and write a function handler. if you need assistance with setting that up, write back, it's pretty simple. Jason Merrill Bank of America GTO and Risk LLD Solutions Design Development eTools Multimedia Bank of America Flash Platform Developer Community Are you a Bank of America associate interested in innovative learning ideas and technologies? Check out our internal GTO Innovative Learning Blog subscribe. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allandt Bik-Elliott (Receptacle) Sent: Thursday, March 27, 2008 2:51 PM To: flashcoders Subject: [Flashcoders] using a class to load data hi guys i am trying to set up a class to handle my xml (will be instantiated for each xml file) but i'm running into a slight problem here is the class so far: CODE package { //package imports import flash.events.*; import flash.net.*; internal class XMLLoader { // class variable declarations private var xmlDoc:XML; private var xmlURL:String; private var xmlLoader:URLLoader; public function get doc():XML {return xmlDoc;} // constructor public function XMLLoader(url:String) { xmlURL = url; var urlRequest:URLRequest = new URLRequest(xmlURL); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, completeListener); xmlLoader.load(urlRequest); } private function completeListener(e:Event):void { xmlDoc = new XML(xmlLoader.data); } } } /CODE the problem is with timing - from within the XMLLoader() Class i can wait for the COMPLETE event to reference the xmlDoc but how would i do that from an instance of the class? for instance if i do the following from my main class i get a null object error because it doesn't wait for the data to be loaded before trying to read it: CODE var xmlurl:String = path/to/xml.xml; var xmlDoc:XMLLoader = new XMLLoader(xmlurl); xmlDoc = xmlLoader.doc; trace (xmlDoc.toXMLString()); /CODE this would equally apply to an image loader, i guess thanks in advance a Allandt Bik-Elliott thefieldcomic.com e [EMAIL PROTECTED] ___ 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
RE: [Flashcoders] using a class to load data
Yeah, I mean that's basically how I described it and would do it - there might be a better way, but that way should work fine for you. Jason Merrill Bank of America GTO and Risk LLD Solutions Design Development eTools Multimedia Bank of America Flash Platform Developer Community Are you a Bank of America associate interested in innovative learning ideas and technologies? Check out our internal GTO Innovative Learning Blog subscribe. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allandt Bik-Elliott (Receptacle) Sent: Thursday, March 27, 2008 4:30 PM To: Flash Coders List Subject: Re: [Flashcoders] using a class to load data thanks jason - i've done this and it's working, i just wanted you to take a look to make sure i've not done it stupidly CODE package { //package imports import flash.events.*; import flash.net.*; internal class XMLLoader extends EventDispatcher { // class variable declarations private var xmlDoc:XML; private var xmlURL:String; private var xmlLoader:URLLoader; public static const COMPLETE:String = complete; public function get doc():XML { return xmlDoc; } // constructor public function XMLLoader(url:String) { xmlURL = url; var urlRequest:URLRequest = new URLRequest(xmlURL); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, completeListener); xmlLoader.load(urlRequest); } private function completeListener(e:Event):void { xmlDoc = new XML(xmlLoader.data); dispatchEvent(new Event(XMLLoader.COMPLETE)); } } } /CODE and the function call is CODE private var xmlDoc:XML; private var xmlurl:String; private var xmlLoader:XMLLoader; // call to initialiseXML() made in constructor private function initialiseXML():void { xmlLoader = new XMLLoader(xmlurl); xmlLoader.addEventListener(Event.COMPLETE, completeListener); } private function completeListener(e:Event):void { xmlDoc = xmlLoader.doc; trace (xmlDoc.toXMLString()); //traces xml correctly } /CODE a On 27 Mar 2008, at 19:14, Merrill, Jason wrote: Have your XMLLoader class extend EventDispatcher and have your XMLLoader class dispatch an event when the load is complete. Wherever your instance of the class is declared, add an event listener to the instance and write a function handler. if you need assistance with setting that up, write back, it's pretty simple. Jason Merrill Bank of America GTO and Risk LLD Solutions Design Development eTools Multimedia Bank of America Flash Platform Developer Community Are you a Bank of America associate interested in innovative learning ideas and technologies? Check out our internal GTO Innovative Learning Blog subscribe. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Allandt Bik-Elliott (Receptacle) Sent: Thursday, March 27, 2008 2:51 PM To: flashcoders Subject: [Flashcoders] using a class to load data hi guys i am trying to set up a class to handle my xml (will be instantiated for each xml file) but i'm running into a slight problem here is the class so far: CODE package { //package imports import flash.events.*; import flash.net.*; internal class XMLLoader { // class variable declarations private var xmlDoc:XML; private var xmlURL:String; private var xmlLoader:URLLoader; public function get doc():XML {return xmlDoc;} // constructor public function XMLLoader(url:String) { xmlURL = url; var urlRequest:URLRequest = new URLRequest(xmlURL); xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, completeListener); xmlLoader.load(urlRequest); } private function completeListener(e:Event):void { xmlDoc = new XML(xmlLoader.data); } } } /CODE the problem is with timing - from within the XMLLoader() Class i can wait for the COMPLETE event to reference the xmlDoc but how would i do that from an instance of the class? for instance if i do the following from my main class i get a null object error because it doesn't wait for the data to be loaded before trying to read it: CODE var xmlurl:String = path/to/xml.xml; var xmlDoc:XMLLoader = new XMLLoader(xmlurl