数据绑定将无法检测"topLevelApplication"的分配

Boc*_*ica 11 apache-flex actionscript-3 flex4

我正在将应用程序从Flex 3迁移到Flex 4.在某些情况下,有一些弹出窗口的宽度和高度绑定到应用程序的宽度和高度.

width="{Application.application.width - 24}" 
height="{Application.application.height - 32}"
Run Code Online (Sandbox Code Playgroud)

Application.application在4.0中已弃用.所以我用它取而代之

width="{FlexGlobals.topLevelApplication.width - 24}" 
height="{FlexGlobals.topLevelApplication.height - 32}"
Run Code Online (Sandbox Code Playgroud)

现在,编译器发出警告,无法检测到topLevelApplication的数据绑定.

数据绑定将无法检测"topLevelApplication"的分配

我的问题是:是否有其他(可绑定)属性,我可以使用它来获得与以前相同的功能?

小智 21

只需创建一个object类型的变量并使其可绑定:

[Bindable]
private var application:Object = FlexGlobals.topLevelApplication;
Run Code Online (Sandbox Code Playgroud)

然后使用变量.

height="{application.height}"
Run Code Online (Sandbox Code Playgroud)

  • 这会使警告消失,但它是多余的,并且它不会反映您为变量赋值的任何更改.此修复具有误导性. (2认同)