Another area where “old” Flex was easier is data binding.

Currently, to get data binding to work, you need to specify the correct data 
binding bead. That’s great, but I’m not sure it covers all cases, and knowing 
what to use where is not immediately obvious.

Additionally, a lot of uses of “data binding” is not really data binding at 
all. Being able to specify a property in curly brackets is a very convenient 
method of specifying values which need to be evaluated at instantiation, even 
if they never need to be evaluated and “bound” at runtime.

I think this kind of simple evaluation should work even if data binding beads 
are not used.

Even if I specify data binding, the kind of data binding I’m used to doing does 
not work very well in FlexJS. I have a PanelStrings class which has a bunch of 
getters for localized strings. The strings are evaluated at runtime based on 
the locale. I have a lot of text=“{PanelStrings.FOO}” in my code which generate 
compile errors. The only way I was able to see to get rid of the errors was:
1. Declare a local (public) Bindable variable: [Bindable]public var FOO:String 
= PanelStrings.FOO and declare that. It’s a pain to double declare these 
strings everywhere they are used in mxml.
2. Used a static function: text=“{PanelStrings.getStr(‘FOO')}”. This is error 
prone because “FOO” can easily be misspelled.

Is there a way to bind class static getters in FlexJS? In “classic” Flex, just 
making the class extend EventDispatcher, made the compiler stop complaining.

Harbs

Reply via email to