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

Reply via email to