我有一个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}"
>
- 和 -
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
...
backgroundGradientColors="{app_background_color}"
>
但是对于前者的绑定是不允许的,对于后者有一个警告:
数据绑定将无法检测到“app_background_color”的分配。
我还遇到了this page这似乎表明我可以使用setStyle()
方法执行此操作,但the documentation似乎表明此方法仅适用于组件,而不是主帆布。
我想我可以将<mx:Canvas></mx:Canvas>
中的所有内容专门用于此目的,但这似乎很浪费 - 就像HTML中的Div-itis或其他东西。
在运行时更改主应用程序背景颜色的最佳方法是什么?
答案 0 :(得分:5)
StyleManager.getStyleDeclaration("Application").setStyle('backgroundColor', 'Red');
答案 1 :(得分:2)
如果你的mx:Application标签使用了backgroundColor属性,你需要这样做:
mx.core.Application.application.setStyle('backgroundColor','green');