Thanks for all your helps. The Delegate class makes it works like a charm...
On the other hand the self referencing is not working. Would it work that way (The Delegate class "solution") is an other OOP language like Java or C++ ? //h -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Andy Johnston Sent: Thursday, November 24, 2005 10:41 PM To: Flashcoders mailing list Subject: Re: [Flashcoders] OOP newbie question I never have a use for self refencing.. maybe thats just me, feels like a dirty hack. >Just create reference to your class. You will need that a lot ... > > >function connect () > >{ > > mySocket = new XMLSocket (); > var _obj = this; > > mySocket.onXML = function () > { > _obj.handleIncoming(); > } >} > > > > >-----Original Message----- >From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED] On Behalf Of Jim >Phelan >Sent: Friday, 25 November 2005 2:27 PM >To: 'Flashcoders mailing list' >Subject: RE: [Flashcoders] OOP newbie question > >Hi, > >The problem here is scope. When you call parseMessages, you doing it in >the >scope of the mySocket object (where the method doesn't exist.) > >There's a pretty simple workaround for this using the Delegate utility >that >comes with Flash. > >At the top of your class file, do this : import mx.utils.Delegate; > >Change this line: mySocket.onXML = handleIncoming; >To this: mySocket.onXML = Delegate.create(this,handleIncoming); > >And that should solve your problem. Basically you're creating a proxy >function on the XMLSocket object that then invokes the handleIncoming >function on your OSC object. There are other ways to do this, but I >think >the Delegate method is generally considered the best practice. > >Hope that helps, > >Jim > >-----Original Message----- >From: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED] On Behalf Of hbruyere >Sent: Thursday, November 24, 2005 10:19 PM >To: Flashcoders@chattyfig.figleaf.com >Subject: [Flashcoders] OOP newbie question > >Hi, > > > >Here is a OOP newbie question. > > > >I have a class (see below).. > > > >Everything works fine. but the method "handleIncoming" can not access () >or >maybe even find) the method "parseMessages". > >If I give the complete path to the instance of the OSC class (made in my >fla >- for example "_root.OSC_Obj.parseMessages (xmlIn);" ) it works. > > > >How should I code this to make it works ? > > > > > >class OSC > >{ > > > > var mySocket : XMLSocket; > >// > >// > > public function OSC () > > { > > connect (); > > } > > // > > // > > function connect () > > { > > mySocket = new XMLSocket (); > > mySocket.onXML = handleIncoming; > > } > >// > >// > > function handleIncoming (xmlIn) > > { > > parseMessages (xmlIn); > > > > } > >// > > function parseMessages (node) > > { > >actions...... > >} > >} > > > >Thanks for your attention, > > > >//h > >_______________________________________________ >Flashcoders mailing list >Flashcoders@chattyfig.figleaf.com >http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > > > >_______________________________________________ >Flashcoders mailing list >Flashcoders@chattyfig.figleaf.com >http://chattyfig.figleaf.com/mailman/listinfo/flashcoders >_______________________________________________ >Flashcoders mailing list >Flashcoders@chattyfig.figleaf.com >http://chattyfig.figleaf.com/mailman/listinfo/flashcoders > > > > _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders