我有一个可用于多种用途的 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
都使用绑定(bind)和 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}"
>
但是对于前者绑定(bind)是不允许的,对于后者有警告说:
Data binding will not be able to detect assignments to "app_background_color".
我也遇到了 this page这似乎表明我可以用 setStyle()
做到这一点方法,但是 the documentation似乎表明此方法仅适用于组件,不适用于主 Canvas 。
我想我可以将所有内容包装在 <mx:Canvas></mx:Canvas>
中专门用于此目的,但这看起来很浪费——就像 HTML 中的 Div-itis 之类的。
在运行时更改主应用程序背景颜色的最佳方法是什么?
最佳答案
StyleManager.getStyleDeclaration("Application").setStyle('backgroundColor', 'Red');
关于apache-flex - 如何在运行时更改 Flex 3.5 应用程序的应用程序背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2677787/