Nevermind the second part of the question about passing the combobox data, I figured that out:
(in "class A") function cbChangeHandler(e){ var t_cb:ComboBox = e.target; var thisData:Number = t_cb.dataProvider[t_cb.selectedIndex].data; adminData.getWSdata(thisData); } But the first part of my question regarding getting wsResulthandler to fire once the Webservice data is received is still an issue. Any ideas? Jason Merrill Bank of America Learning & Organizational Effectiveness >>-----Original Message----- >>From: [EMAIL PROTECTED] >>[mailto:[EMAIL PROTECTED] On Behalf >>Of Merrill, Jason >>Sent: Friday, February 16, 2007 4:37 PM >>To: Flashcoders mailing list >>Subject: RE: [Flashcoders] Events for custom classes? >> >>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 >> _______________________________________________ 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