Alain, Been following your suggested method, it's great, and everything works as advertized, except can't get wsResulthandler to fire once the Webservice data is received.
Also, how do I send the data from the comboBox change event through to the getWsData function? I need to know the data from the selected item in the combobox, as that is a parameter I sent to the webservice to get the data. I hard coded it a number for now, but it doesn't work because of the first problem. Here is a snippet of the code in "Class B" function getWSdata(lobDbId:Number) { var getUserListResult:Object = new Object(); getUserListResult = root_mc.generatorWS.GetUserList(1) //lobDbId); getUserListResult.onResult = Delegate.create(this, wsResulthandler); } function wsResulthandler(data) { _level0.traceMsg("WS Result recieved.") this.dispatchEvent({type:"webServiceResult", newData:data}) } Did I set that up right? Thanks, Jason Merrill Bank of America Learning & Organizational Effectiveness >>-----Original Message----- >>From: [EMAIL PROTECTED] >>[mailto:[EMAIL PROTECTED] On Behalf >>Of Alain Rousseau >>Sent: Friday, February 16, 2007 3:01 PM >>To: 'Flashcoders mailing list' >>Subject: RE: [Flashcoders] Events for custom classes? >> >>Jason, >> >>So if I understand clearly what you want to do is : >> >>>From Class A : (pseudo code following) >> >>class ClassA { >> private var instClassB:ClassB; >> make comboBox >> make datagrid >> function ClassA() { >> instClassB = new ClassB(); >> comboBox.onChange = Delegate.create(this, >>cbChangeHandler); >> instClassB.addEventListener("webServiceResult", this); >> } >> >> function cbChangeHandler(e){ >> instClassB.getWSdata(e.value); >> } >> >> function webServiceResult(evtObj:Object) { >> update datagrid with evtObj.newData >> } >> >>} >> >>class ClassB { >> Decorate with EventDispatcher methods >> dispatchEvent, addEventListener, removeEventListener >> >> function ClassB() { >> EventDispatcher.initialize(this); >> } >> >> function getWSdata(val) { >> get data from web service >> wsInstance.onResult = Delegate.create(this, >>wsResulthandler); >> } >> >> function wsResulthandler(data) { >> this.dispatchEvent({type:"webServiceResult", >>newData:data}) // add anything you want to pass in the object >> } >>} >> >>Now you have them both communication the way you want >> >>Have fun ! >> >>Alain >> >>-----Original Message----- >>From: [EMAIL PROTECTED] >>[mailto:[EMAIL PROTECTED] On Behalf >>Of Merrill, Jason >>Sent: 16 février 2007 14:36 >>To: Flashcoders mailing list >>Subject: RE: [Flashcoders] Events for custom classes? >> >>Daniel, try as I may, I can't get your code to work. I have >>one class, which has a combobox. I can get the event to fire >>when the combobox changes just fine, but I can't get it to >>"hear" the firing of the data capture from the webservice in >>the other class. >> >>So basically, in pseudocode, I need to do this: >> >>class A{ >> make comboBox >> make datagrid >> when comboBox changes, use Class B >> to get data from webservice >> when webservice result received, >> update datagrid with new data >> >>} >> >>class B{ >> connect to webservice >> when requested, return data to requesting class } >> >>Reason I want these two classes to be separate is because I >>want other classes to call Class B to get data as well. So, >>I can do all of those things just fine, they are all working, >>except for the last part, "when requested, return data to >>requesting class" - I figure since the webservice is >>asynchronous, I need to capture the received event, which is >>fine, I can do, that works. But I need to tell Class A to >>update the datagrid with the new data when it gets it from >>Class B - so an event model is required. >> >>in your code, you have a var r in both the "Class A" and >>"Class B" - I'm confused about that. Thanks for any help. >> >> >>Jason Merrill >>Bank of America >>Learning & Organizational Effectiveness >> >> >> >> >> >> >> >>>>-----Original Message----- >>>>From: [EMAIL PROTECTED] >>>>[mailto:[EMAIL PROTECTED] On >>Behalf Of Holth, >>>>Daniel C. >>>>Sent: Friday, February 16, 2007 10:36 AM >>>>To: Flashcoders mailing list >>>>Subject: RE: [Flashcoders] Events for custom classes? >>>> >>>> >>>>Here is your code modified to use the EventDispatcher: >>>> >>>>import mx.events.EventDispatcher; // import the event dispatcher >>>> >>>>class com.boa.projects.iqrcgenerator.components.AdminData{ >>>> public var addEventListener:Function; // Set the functions >>>> public var removeEventListener:Function; // Set the functions >>>> private var dispatchEvent:Function; // Set the functions >>>> >>>> private var userData:Object; >>>> >>>> // I'm sure you have a different constructor, but you need >>>> // to add that line to it if you want to use the eventdispatcher >>>> public function AdminData(){ >>>> mx.events.EventDispatcher.initialize(this); // >>add this to >>>>constructor >>>> } >>>> >>>> public function wsUserDataByLOB(lobDbId:Number):Void{ >>>> var getUserListResult:Object = new Object(); >>>> getUserListResult = >>>>generatorWebService.GetUserList(lobDbId); >>>> >>>> var r = this; // To get this in onResult >>>> getUserListResult.onResult = function(oUser){ >>>> >>>> r.dispatchEvent({type:"eventOnResult", >>>>user:oUser}); // Dispatch the event >>>> >>>> >>>> } >>>> } >>>> >>>> >>>> // I may just take this function out all together since >>the event >>can >>>> // autommatically send them the data. >>>> public function getUserData():Object{ >>>> return userData; >>>> } >>>>} >>>> >>>> >>>>Then in your other class you can do something like: >>>> >>>>//myAdminData is an instance of the class above >>>> >>>>var r = this; >>>>r.eventOnResult= function(evtObj:Object){ >>>> trace("user: " + evtObj.user); // Should return the >>oUser object } >>>>// addEventListener takes the event name, and who you want >>to listen >>>>myAdminData.addEventListener("eventOnResult", r); >>>> >>>> >>>> >>>>Does that help? I obviously can't test the code, but I think >>>>everything is right... I have trouble with scope, which is >>>>why I use a lot of 'r' >>>>values instead of 'this'... Just easier for me... Probably >>>>not a good coding standard :) >>>> >>>>-Dan >>>> >>>>-----Original Message----- >>>>From: [EMAIL PROTECTED] >>>>[mailto:[EMAIL PROTECTED] On Behalf >>>>Of Merrill, Jason >>>>Sent: Friday, February 16, 2007 9:03 AM >>>>To: Flashcoders mailing list >>>>Subject: [Flashcoders] Events for custom classes? >>>> >>>>OK, I'm pretty good at Actionscript 2.0, but something I >>>>never really understood and now need to. >>>> >>>>Core question: How do I make an event in a custom class, and >>>>how do I make a listener in another class listen for the event? >>>> >>>> >>>>EventBroadcaster in the help docs seems to only show how to >>>>use it with Adobe classes and components. Docs on listener >>>>are the same. I know how to set up listeners for other >>>>events, like keypresses and mouse rollovers. Easy enough. >>>>But my problem is this (see comments in code >>>>below): >>>> >>>>class com.boa.projects.iqrcgenerator.components.AdminData{ >>>> >>>> >>>> private var userData:Object; >>>> >>>> public function wsUserDataByLOB(lobDbId:Number):Void{ >>>> var getUserListResult:Object = new Object(); >>>> getUserListResult = >>>>generatorWebService.GetUserList(lobDbId); >>>> getUserListResult.onResult = function(oUser){ >>>> //this works fine, >>>> >>>> //I can capture this event result here, >>>> //but how do I notify another class? >>>> //also what about scope here? >>>> //how to set userData as oUser result? >>>> //can I fire an event in my AdminData >>>> //class from here? >>>> } >>>> } >>>> >>>> >>>> public function getUserData():Object{ >>>> //can't let user get this data >>>> //until Webserive event is done. >>>> return userData; >>>> } >>>>} >>>> >>>>Thanks, >>>> >>>> >>>>Jason Merrill >>>>Bank of America >>>> >>>>Learning & Organizational Effectiveness >>>> >>>> >>>> >>>> >>>>_______________________________________________ >>>>Flashcoders@chattyfig.figleaf.com >>>>To change your subscription options or search the archive: >>>>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>>> >>>>Brought to you by Fig Leaf Software >>>>Premier Authorized Adobe Consulting and Training >>>>http://www.figleaf.com http://training.figleaf.com >>>> >>>>This e-mail and its attachments are intended only for the use >>>>of the addressee(s) and may contain privileged, confidential >>>>or proprietary information. If you are not the intended >>>>recipient, or the employee or agent responsible for >>>>delivering the message to the intended recipient, you are >>>>hereby notified that any dissemination, distribution, >>>>displaying, copying, or use of this information is strictly >>>>prohibited. If you have received this communication in error, >>>>please inform the sender immediately and delete and destroy >>>>any record of this message. Thank you. >>>>_______________________________________________ >>>>Flashcoders@chattyfig.figleaf.com >>>>To change your subscription options or search the archive: >>>>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >>>> >>>>Brought to you by Fig Leaf Software >>>>Premier Authorized Adobe Consulting and Training >>>>http://www.figleaf.com http://training.figleaf.com >>>> >>_______________________________________________ >>Flashcoders@chattyfig.figleaf.com >>To change your subscription options or search the archive: >>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >> >>Brought to you by Fig Leaf Software >>Premier Authorized Adobe Consulting and Training >>http://www.figleaf.com >>http://training.figleaf.com >> >> >>-- >>No virus found in this incoming message. >>Checked by AVG Free Edition. >>Version: 7.1.412 / Virus Database: 268.18.0/689 - Release >>Date: 2007-02-15 >> >> >>-- >>No virus found in this outgoing message. >>Checked by AVG Free Edition. >>Version: 7.1.412 / Virus Database: 268.18.0/689 - Release >>Date: 2007-02-15 >> >> >>_______________________________________________ >>Flashcoders@chattyfig.figleaf.com >>To change your subscription options or search the archive: >>http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >> >>Brought to you by Fig Leaf Software >>Premier Authorized Adobe Consulting and Training >>http://www.figleaf.com >>http://training.figleaf.com >> _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com