Как изменить цвет фона приложения во время выполнения в приложении Flex 3.5? - PullRequest
3 голосов
/ 20 апреля 2010

У меня есть приложение Flex 3.5, которое будет служить нескольким целям, и в качестве части визуальных изменений, которые я хотел бы внести, чтобы указать, в каком режиме находится приложение, я хочу изменить цвет фона.

В настоящее время тег приложения выглядит следующим образом:

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    xmlns:com="ventures.view.component.*"
    xmlns:views="ventures.view.*"
    layout="absolute"
    preinitialize="onPreInitialize()"
    creationComplete="onCreationComplete()"
    applicationComplete="onApplicationComplete()"
    click="onClick(event)"
    enabled="{(!chainController.generalLocked)}"
    backgroundGradientColors="[0xFFFFFF, 0xFFFFFF]"
>

Я пытался использовать привязку для атрибутов backgroundColor и backgroundGradientColors:

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    ...
    backgroundColor="{app_background_color}"
>

& mdash; и & mdash;

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    ...
    backgroundGradientColors="{app_background_color}"
>

но для первого связывание недопустимо, а для последнего есть предупреждение:

Привязка данных не сможет обнаружить назначения для "app_background_color".

Я также натолкнулся на эту страницу , которая, кажется, указывает, что я мог бы сделать это с помощью метода setStyle(), но документация , кажется, указывает, что этот метод доступен только для компоненты, а не основной холст.

Полагаю, я мог бы обернуть все в <mx:Canvas></mx:Canvas> специально для этой цели, но это кажется расточительным - как Div-itis в HTML или что-то в этом роде.

Как лучше всего изменить цвет фона основного приложения во время выполнения?

Ответы [ 2 ]

5 голосов
/ 20 апреля 2010
StyleManager.getStyleDeclaration("Application").setStyle('backgroundColor', 'Red');
2 голосов
/ 22 апреля 2010

Похоже, если ваш тег mx: Application использует атрибут backgroundColor, вам нужно сделать это:

mx.core.Application.application.setStyle('backgroundColor','green');
...