2011-10-29 3 views
0

나는 훌륭한 웹 앱을 가지고 있습니다. 나는 이제 우리 내부 사용을위한 데스크톱 버전을 만들기 위해 노력하고 있습니다. 변환 한 후 태그를 "WindowedApplication"으로 변경했습니다. Air 앱을 실행하려고하면 오류가 발생합니다.ArgumentError : 정의되지 않은 상태 'normalAndInactive'

ArgumentError: Undefined state 'normalAndInactive'. 
at mx.core::UIComponent/getState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:10596] 
at mx.core::UIComponent/findCommonBaseState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:10616] 
at mx.core::UIComponent/commitCurrentState()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:10370] 
at mx.core::UIComponent/commitProperties()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:8294] 
at spark.components.supportClasses::GroupBase/commitProperties()[E:\dev\4.5.1\frameworks\projects\spark\src\spark\components\supportClasses\GroupBase.as:1128] 
at spark.components::Group/commitProperties()[E:\dev\4.5.1\frameworks\projects\spark\src\spark\components\Group.as:886] 
at mx.core::UIComponent/validateProperties()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:8209] 
at spark.components::Group/validateProperties()[E:\dev\4.5.1\frameworks\projects\spark\src\spark\components\Group.as:864] 
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:597] 
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:783] 
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180] 

내 앱에 'normalAndInactive'상태가 없습니다. 나는 내 응용 프로그램에 퍼팅을 시도하고 아무것도하지 않았다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

편집 : 조금 더 많은 정보를 찾았습니다. 디버깅 모드에서 오류가 다음과 같다 내 사용자 지정 배경 피부를 가리키는 :

<?xml version="1.0" encoding="utf-8"?> 
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"> 

<fx:Metadata> 
    [HostComponent("spark.components.Application")] 
</fx:Metadata> 

<s:states> 
    <s:State name="normal" /> 
    <s:State name="disabled" /> 
</s:states> 

<!-- Define a gradient fill for the background of the Application container. -->  
<s:Rect id="backgroundRect" left="0" right="0" top="0" bottom="0"> 
    <s:fill> 
     <s:SolidColor color="#FFFFFF" alpha=".25" /> 
    </s:fill> 

</s:Rect> 

<s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" /> 
</s:Skin> 

답변

3

을 구성 요소의 스킨 클래스를 작성하는 경우 (이 경우, WindowedApplication) 당신의 피부 클래스는 모든 상태를 구현해야 그 컴포넌트 클래스는 기대하고있다. 이 경우 disabledAndInactive 및 normalAndInactive는 구현하지 않은 두 가지입니다. See the full list.

피부 클래스에 그 상태를 추가하여 오류를 수정 :

<s:states> 
    <s:State name="normal" /> 
    <s:State name="disabled" /> 
    <s:State name="normalAndInactive " /> 
    <s:State name="disabledAndInactive " /> 
</s:states> 

별로 중요하지 않습니다 구현 된 상태의 이상 여부를 지정합니다.

+0

들으! 데스크톱 앱을 만들 때만 오류가 발생한다는 것은 재미 있습니다. –

+0

@ user522962 웹 앱에서; 최상위 응용 프로그램은 normalAndInactive 또는 disabledAndInactive의 스킨 상태를 정의하지 않는 Application 태그 일 가능성이 큽니다. 따라서 이러한 상태가 정의되어 있지 않으면 웹 응용 프로그램에서 오류가 발생하지 않습니다. – JeffryHouser

0

사용이 하나 대신

<s:states> <s:State name="normal" /> 
    <s:State name="disabled" stateGroups="disabledGroup" /> 
    <s:State name="normalAndInactive" stateGroups="inactiveGroup" /> 
    <s:State name="disabledAndInactive" stateGroups="disabledGroup, inactiveGroup" /> 
</s:states> 
+0

무엇이 달성할까요? – JeffryHouser