Hi Joe, thanks. Yep, I considered that along with bindSetter, although
I like to keep setters as free of logic (and other method calls) as
possible - but I think that's the only way to do it using mxml.



On Wed, Jun 25, 2008 at 10:48 PM, Joseph Balderson <[EMAIL PROTECTED]> wrote:

>   > What I'm looking for is the best way to trigger a method whenever a
> bindable value changes.
>
> Just make the destination property a setter method.
> __________________________________________________________
>
> Joseph Balderson, Flash Platform Developer | http://joeflash.ca
>
> nwebb wrote:
> > Hi Joseph,
> >
> > thanks for the reply - no, the provided example was nothing more than a
> > scenario off the top of my head, and probably not a great one, so I'm
> > not looking for a formatter.
> >
> > What I'm looking for is the best way to trigger a method whenever a
> > bindable value changes. Changewatcher achieves what I want to do here,
> > and so does BindSetter to a lesser degree (where the destination is
> > essentially a method ... but that seems to be stretching its intended
> > use). ChangeWatcher seems to be the correct solution here - I just wanted
> to
> > ensure I wasn't missing anything as I was intending to blog about it.
> >
> > Cheers for the reply though, much appreciated :)
> >
> >
> >
> >
> > On Wed, Jun 25, 2008 at 5:58 AM, Joseph Balderson <[EMAIL 
> > PROTECTED]<news%40joeflash.ca>
> > <mailto:[EMAIL PROTECTED] <news%40joeflash.ca>>> wrote:
> >
> > It seems like you are misunderstanding the use of binding, which is
> > to "tie" the
> > value of one property to another with loose coupling such that when
> > one changes
> > (i.e. the source), the other (i.e. the destination) reflects that
> > value change
> > precisely.
> >
> > It sounds like what you're looking for is a custom Formatter, able
> > to take an
> > input and interpret it based on an algorithm, and that formatter
> > value can be
> > bound to a destination property, which in your case seems to be the
> > currentState
> > of the application. If an algorithm will not suite your purposes, I
> > would
> > recommend you stick with the switch statement inside a manager class.
> >
> > If the user level and application state are so closely tied, why not
> > just name
> > your application state strings according to the user level strings.
> > If some sort
> > of validation and logic needs to happen beforehand, then what you're
> > probably
> > looking after is a manager class to make those decisions.
> >
> > __________________________________________________________
> >
> > Joseph Balderson, Flash Platform Developer | http://joeflash.ca
> >
> >
> >
> > nwebb wrote:
> > > Hi,
> > >
> > > I was looking at how you can trigger a function when an argument
> > is a
> > > bindable value....
> > >
> > > e.g.
> > >
> > > //userLevel is a bindable value & formatMessage is a function
> > will be
> > > called when userLevel changes
> > > <mx:Label text="{formatMessage(userLevel)}" />
> > >
> > > This is cool if you're just displaying a value in a text field.
> > However,
> > > what if you don't necessarily want to return a value (i.e. you don't
> > > have a destination)?
> > > Hopefully this will show what I mean:
> > >
> > > private function stateManager(value:String):void
> > > {
> > > switch(value)
> > > {
> > > case "basic":
> > > currentState = '';
> > > break;
> > > case "admin":
> > > currentState = 'AdminState';
> > > break;
> > > default:
> > > currentState = '';
> > > }
> > > }
> > >
> > > BindingUtils methods and the binding tag both expect a
> > destination, but
> > > in this case there isn't one. Is the solution simply to use
> > > ChangeWatcher instead, or can this be done using binding syntax?
> > >
> > > Cheers
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
>  
>

Reply via email to