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
>>
>>
>>
>>
>>_______________________________________________
>>[email protected]
>>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.
>>_______________________________________________
>>[email protected]
>>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
>>
_______________________________________________
[email protected]
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