Skip to main content

Manually adding bindings between objects in Flex/AS3

I recently needed to manually create bindings in AS3 code between objects, and since MXML ultimately all is just AS3, I figured there had to be a way to do it.

<b>Binding in MXML</b>

Lets look at the following code...
<code>
    <mx:TextInput id="txtMyText?/>
    <mx:Label id="lblMyLabel? text="{txtMyText.text}"/>
</code>

Here you bind the text property of the TextInput to the label's text property so wh you type in the textInput, it reflects in the label.

<b>Binding in AS</b>

The key to this is a class called BindingUtils in the mx.binding.utils package. You can use this class as below:<more/>You have your components say in mxml as follows
<code>
    <mx:TextInput id="txtMyText? />
    <mx:Label id="lblMyLabel? />
</code>

Now you import the Binding utils and change watcher classes:
<code>
    import mx.binding.utils.BindingUtils;
    import mx.binding.utils.ChangeWatcher;
</code>

Then you use the bindProperty method to create the binding:
<code>
    private var watcher:ChangeWatcher;  
    watcher = BindingUtils.bindProperty(txtMyText,"text", lblMyLabel,"text");
</code>

This binds the txtMyText.text to lblMyLabel.text.

<b>Unbinding in AS</b>

Since we assigned the binding to a ChangeWatcher, we can then just stop watching it:
<code>
    watcher.unwatch();
</code>

I found this info very helpful and it makes coding with our Codex framework much more "flexible" (no pun intended).

Here are some good related links where I got some of this reference info:

<ul>
<li><a href="http://raghuonflex.wordpress.com/2007/08/30/binding-in-mxml-as/">http://raghuonflex.wordpress.com/2007/08/30/binding-in-mxml-as/</a>
<li><a href="http://raghuonflex.wordpress.com/2007/09/17/binding-and-unbinding-variables-in-as3/">http://raghuonflex.wordpress.com/2007/09/17/binding-and-unbinding-variables-in-as3/</a>
<li><a href="http://www.duzengqiang.com/blog/article.asp?id=460">http://www.duzengqiang.com/blog/article.asp?id=460</a>
<li><a href="http://weblogs.macromedia.com/auhlmann/archives/2006/09/using_binding_s.html">http://weblogs.macromedia.com/auhlmann/archives/2006/09/using_binding_s.html</a>
</ul>

Popular posts from this blog

Installing python 3.4.x on OSX El Capitan

I love "brew" package manager, but sometimes being too progressive breaks things.  I have several python apps that I maintain that get deployed to AWS using Elastic Beanstalk.  AWS eb can deploy with python 2.7 or 3.4.  Any recent 'brew install python3" will get 3.5.1. #annoying

Making Macbook Air with 128GB SSD usable with Bootcamp

I recently got a new Macbook Air 11" (the 2012 version) and loaded it with goodies like 8GB ram and 2GHz Core i7.  What I DIDN'T upgrade was the internal SSD.  My config came with 128GB SSD and I refused to pay $300+ to upgrade it to 256GB.  Yeah I know, some call me cheap, but SSds cost $75-$150 for 240GB, so adding another 128GB for $300 seemed way too steep for me.  I figured "ok, I'm going to make 128G work!"

Here is the story of how that went...

Getting Started with OpenVAS on CentOS - an open source vulnerability scanner

The Open Vulnerability Assessment System (OpenVAS) is a framework of several services and tools offering a comprehensive and powerful vulnerability scanning and vulnerability management solution. (Taken from the OpenVAS website, which is at http://www.openvas.org/ )





This blog entry will introduce OpenVAS version 3.1, walk through installation on CentOS and is intended as a "getting started" guide. I'll also do a guide for installing on Ubuntu later.