Как создать государство, которое включает в себя другие государства - PullRequest
0 голосов
/ 22 января 2012

У меня есть мобильное приложение, в котором есть 3 состояния.Есть портрет и пейзаж по умолчанию, и я хотел бы добавить третье состояние, которое включает в себя два других.

<s:states>
    <s:State name="portrait"/>
    <s:State name="landscape"/>
    <s:State name="panel" stateGroups="portrait, landscape"/>
</s:states>

В этом третьем состоянии, называемом «панель», я хочу включить в него портретное и ландшафтное состояния.Когда я делаю это, я получаю следующую ошибку:

Identifier 'landscape' used for both a state group and a state.

Кстати, я пытался понять stateGroups, и я не думаю, что я получаю это.

ОБНОВЛЕНИЕ
Вот еще контекст.У меня есть контейнер с именем appMenu, который я хочу сделать видимым, когда пользователь нажимает клавишу меню.Поэтому я хочу создать для этого государство.Сейчас изменяется только одно значение, и это свойство "y".Поскольку это мобильное приложение, устройство будет в портретном или ландшафтном режиме (состояние).Я не хочу выводить пользователя из этих состояний, только применять это новое свойство к тому состоянию, в котором он находился.

<s:BorderContainer id="appMenu"
                   borderVisible="false"
                   width="100%" 
                   height="120" 
                   y="-120"  
                   y.panelVisible="0" 
                   backgroundColor="0"
                   >
    <s:HGroup right="10" verticalCenter="0">
        <s:Label text="Feedback" 
                 color="#ffffff" 
                 fontSize="18" 
                 fontWeight="bold"/>
    </s:HGroup>
</s:BorderContainer>

1 Ответ

1 голос
/ 22 января 2012

Есть два возможных ответа на ваш вопрос.

Если состояние «панели» не имеет ничего, кроме того, что находится в двух других состояниях, то все, что вам нужно, это следующее:

<s:states>
    <s:State name="portrait" stateGroups="panel" />
    <s:State name="landscape" stateGroups="panel" />
    <s:State name="someOtherState" />
</s:states>

Если, с другой стороны, другие вещи также включены в состояние «панели», то это может выглядеть примерно так:

<s:states>
    <s:State name="portrait" stateGroups="panel" />
    <s:State name="landscape" stateGroups="panel" />
    <s:State name="justThePanel" stateGroups="panel" />
    <s:State name="someOtherState" />
</s:states>

Если у вас сейчас есть

<s:Group id="a" includeIn="portrait" />
<s:Group id="b" includeIn="landscape" />
<s:Group id="c" includeIn="someOtherState" />
<s:Group id="d" includeIn="panel" />
<s:Group id="e" />

затем

  • e всегда отображается
  • a отображается только в «портретном» состоянии
  • b отображается только в «альбомном» состоянии
  • c отображается только в состоянии someOtherState
  • d отображается в состояниях 'портрет', 'пейзаж' и 'justThePanel' (поскольку все три из них являются членами группы состояний 'panel')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...