ArgumentError: неопределенное состояние 'normalAndInactive' - PullRequest
0 голосов
/ 30 октября 2011

У меня есть веб-приложение, которое прекрасно работает. Я сейчас пытаюсь сделать настольную версию для внутреннего пользования. Я преобразовал его и изменил тег на «WindowedApplication». Когда я пытаюсь запустить приложение Air, я получаю сообщение об ошибке:

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>

Ответы [ 2 ]

3 голосов
/ 30 октября 2011

При создании класса скина для компонента (в данном случае WindowedApplication ) ваш класс скина должен реализовывать все состояния, которые ожидает класс компонента.В этом случае disabledAndInactive и normalAndInactive - это два, которые вы не реализовали. См. Полный список .

. Исправьте ошибку, добавив эти состояния в ваш класс скина:

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

Независимо от того, реализованы ли какие-либо другие состояния или нетэто не имеет большого значения.

0 голосов
/ 30 октября 2011

используйте это вместо

<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>
...