I am migrating an application from Flex 3 to Flex 4. In some cases there are popup windows of which the width and height is bound to the application width and height.
width="{Application.application.width - 24}"
height="{Application.application.height - 32}"
Application.application is deprecated in 4.0. so I have replaced this with
width="{FlexGlobals.topLevelApplication.width - 24}"
height="{FlexGlobals.topLevelApplication.height - 32}"
Now the compiler gives the warning that data bindings cannot be detected for topLevelApplication.
Data binding will not be able to detect assignments to "topLevelApplication"
My question is: Is there another (bindable) property somewhere that I can use to get the same functionality as before?
Just create a variable of type object and make it bindable :
[Bindable]
private var application:Object = FlexGlobals.topLevelApplication;
And then use the variable.
height="{application.height}"
If you use {this.screen.height}
your warnings should go away.
Tim
This should work with a cast:
height="{(FlexGlobals.topLevelApplication as Application).height - 32}"
The reason why it isn't working with your current code is because FlexGlobals.topLevelApplication is typed as an Object.
I was stuck for half an hour and found out that Bindable
only works with a capital 'B', I did it and it solved my problem.
So, instead of bindable just write Bindable
as the referred class is bindable.Bindable
.
i was struggling with a similar warning, but instead of an object problem (wich is solved with the [Bindable] prefix) i was using a VBox. I needed to change the source of an image depending on how many childs my vbox has. So the solution to this is only using "this" lol. here's an example:
<mx:Image width="24" height="24" source="{this.vbBox1.getChildren().length>1 ? 'assets/icons/forwardDisable.png':'assets/icons/forward.png'}"/>
If you dont use "this" the IDE will show you a warning similar to the one that you have with the object. I hope it helps others!
Best Regards
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With