> 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] 
> <mailto:[EMAIL PROTECTED]>> 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