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
>>>>
>>>>
>>>>
>>>>
>>>>_______________________________________________
>>>>[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
>>
>>
>>--
>>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
>>
>>
>>_______________________________________________
>>[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