When working in mxml you can use the -keep-generated-actionscript compiler option. and in the 'generated' directory you will find a wealth of information!
In short - the answer you seek is before you! Finding the 'solution' is another story. Rick Winscot From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of mauricen Sent: Tuesday, July 01, 2008 8:42 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Best Practice Data Binding Thanks very much for your time in writing this; it's very helpful. But my question still stands: if there are parts of your answer that I don't understand fully, or that raise more questions in my mind (and both of these are in fact the case), how do I resolve these difficulties? How did you learn about this (aside from the LiveDocs, I mean)? The implementation must be defined *somewhere*, surely, even if only in code? --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , "Josh McDonald" <[EMAIL PROTECTED]> wrote: > > The authoritive story is pretty much as Daniel said: > > [Bindable] > public var myField:String; > > The above will generate something the equivalent of: > > mx_internal var _myField:String; //Might be private, can't be arsed to check > > [Bindable event="propertyChangeEvent"] > public function get myField():String { > return _myField; > } > > public function set myField(value:String):void { > if (value != _myField) { > var oldVal:* = _myfield; > _myField = value; > dispatchEvent(new PropertyChangeEvent(this, "myField", oldVal, newVal)); > } > } > > And if you put the generic [Bindable] on a getter _or_ a setter, you'll > re-generate the above code, but _myField will be the original get/set > functions renamed, not a private or mx_internal var. > > As a rule, I don't use the generic [Bindable] on getter/setter functions. > It's just not that hard to dispatch an event. > > However if you're going to put generic [Bindable] on a getter/setter pair, > put it on the *setter*. Otherwise the debugger will hilight the getter > method when you're single-stepping through foo.myField = "someValue" - it's > not a law or anything, but it's confusing even when you know why it does it. > > When you're using a custom event, put the [Bindable(event="myEventName")] on > the *getter*. That way you always know it's bindable, as not every getter > needs a setter. You can dispatch the event from anywhere you please, either > a setter method or something else. Don't know about performance, but when > you're not using a PropertyChangeEvent, bindings will fire for anything > matching that name, since it can't use the fieldName and object properties > of PropertyChangeEvent to know exactly which field should re-fire bindings. > > One last thing, you can specify [Bindable(event="PropertyChangeEvent")] on a > getter, and you'll still need to dispatch your own PropertyChangeEvents from > the setter or from anywhere else. It lets you be a specific as to what's > changed in the object without having a bunch of custom named events. > > Disclaimer: I'm 99% sure that's all correct. YMMV ;-) > > -Josh > > On Tue, Jul 1, 2008 at 8:19 AM, mauricen <[EMAIL PROTECTED]> wrote: > > > Where *is* the authoritative story on binding? As a newcomer to Flex > > I'm finding it hard to form a coherent picture of how the various > > binding features fit together. What's the mechanism, for example, > > that allows me to call addEventListener on a Bindable property? If > > there's no formal documentation, I'd be happy to look at code - but where/ > > > > Maurice > > > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , "securenetfreedom" <nv1000@> wrote: > > > > > > I found this page to be helpful but not authoritative (This is where I > > > found the use of binding the setter); > > > > > http://livedocs.adobe.com/flex/3/html/help.html?content=databinding_8.ht\<ht tp://livedocs.adobe.com/flex/3/html/help.html?content=databinding_8.ht%5C> > > > ml > > > > > <http://livedocs.adobe.com/flex/3/html/help.html?content=databinding_8.h\<ht tp://livedocs.adobe.com/flex/3/html/help.html?content=databinding_8.h%5C> > > > tml> > > > > > > > > ------------------------------------ > > > > -- > > Flexcoders Mailing List > > FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt > > Search Archives: > > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups > > Links > > > > > > > > > > > -- > "Therefore, send not to know For whom the bell tolls. It tolls for thee." > > :: Josh 'G-Funk' McDonald > :: 0437 221 380 :: [EMAIL PROTECTED] >