2010-04-20 3 views
3

여러 용도로 사용되는 Flex 3.5 응용 프로그램이 있는데 응용 프로그램의 모드를 나타 내기 위해 시각적으로 변경 한 부분으로 배경색을 변경하고 싶습니다.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]" 
> 

내가 모두 backgroundColorbackgroundGradientColors 속성에 대한 바인딩을 사용하여 시도했다 :

<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}" 
> 

그러나 f 또는 이전 바인딩은 허용되지 않으며 후자에 대해서는 다음과 같은 경고가 있습니다.

데이터 바인딩은 "app_background_color"에 대한 할당을 검색 할 수 없습니다.

나는 또한 내가 setStyle() 방법을 함께 할 수 있다는 것을 나타 내기 위해 보인다 this page 가로 질러하지만,이 방법은 구성 요소가 아닌 주요 캔버스에서만 사용할 수 있음을 나타냅니다 the documentation 보인다.

<mx:Canvas></mx:Canvas>의 모든 것을이 목적으로 특별히 지정할 수 있다고 생각하지만, —과 같이 HTML 또는 그와 비슷한 것이 낭비되는 것 같습니다.

런타임시 기본 응용 프로그램 배경색을 변경하는 가장 좋은 방법은 무엇입니까?

답변

5
StyleManager.getStyleDeclaration("Application").setStyle('backgroundColor', 'Red'); 
+0

이것은 어떻게 [플렉스 3 스타일 탐색기] (HTTP : //examples.adobe를 .com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html)이 작동하지만 아직 내 응용 프로그램에서 작동하지 않습니다. 더 이상 작업하지 못하게하는 다른 것이 있는지 확인하십시오. –

+0

내 응용 프로그램 태그에서'backgroundColor' /'backgroundGradientColors' 정의를 제거하고 onApplicationComplete에서 명시 적으로 색상을 하나 또는 다른 것으로 설정했습니다. 그렇게함으로써,이 솔루션은 완벽하게 작동했습니다. –

2

당신의 MX 경우 것 같습니다 : 응용 프로그램 태그가있는 backgroundColor를 사용하여이 작업을 수행 할 필요가 속성 :

mx.core.Application.application.setStyle('backgroundColor','green'); 
관련 문제