Ответ 1
Просто создайте переменную типа объекта и сделайте ее связанной:
[Bindable]
private var application:Object = FlexGlobals.topLevelApplication;
И затем используйте переменную.
height="{application.height}"
Я переношу приложение из Flex 3 в Flex 4. В некоторых случаях есть всплывающие окна, ширина и высота которых привязаны к ширине и высоте приложения.
width="{Application.application.width - 24}"
height="{Application.application.height - 32}"
Application.application устарела в 4.0. поэтому я заменил это на
width="{FlexGlobals.topLevelApplication.width - 24}"
height="{FlexGlobals.topLevelApplication.height - 32}"
Теперь компилятор дает предупреждение о том, что привязки данных не могут быть обнаружены для topLevelApplication.
Связывание данных не сможет обнаруживать присвоения "TopLevelApplication"
Мой вопрос: есть ли другое (связанное) свойство где-то, что я могу использовать, чтобы получить ту же функциональность, что и раньше?
Просто создайте переменную типа объекта и сделайте ее связанной:
[Bindable]
private var application:Object = FlexGlobals.topLevelApplication;
И затем используйте переменную.
height="{application.height}"
Если вы используете {this.screen.height}
, ваши предупреждения должны исчезнуть.
Тим
Это должно работать с приложением:
height="{(FlexGlobals.topLevelApplication as Application).height - 32}"
Причина, по которой он не работает с вашим текущим кодом, состоит в том, что FlexGlobals.topLevelApplication вводится как объект.
Я застрял в течение получаса и узнал, что Bindable
работает только с капиталом "B", я сделал это, и он решил мою проблему.
Итак, вместо bindable просто напишите Bindable
, поскольку упомянутый класс bindable.Bindable
.
Я боролся с аналогичным предупреждением, но вместо проблемы с объектом (которая решена с префиксом [Bindable]) я использовал VBox. Мне нужно было изменить источник изображения в зависимости от того, сколько у меня дочерних элементов моего vbox. Таким образом, решение этой проблемы использует только "this" lol. вот пример:
<mx:Image width="24" height="24" source="{this.vbBox1.getChildren().length>1 ? 'assets/icons/forwardDisable.png':'assets/icons/forward.png'}"/>
Если вы не используете "this", IDE покажет вам предупреждение, подобное тому, которое у вас есть с объектом. Надеюсь, это поможет другим!
С наилучшими пожеланиями