我有一个移动应用程序,其中有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.
BTW我一直在努力了解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>
答案 0 :(得分:1)
您的问题有两种可能的答案。
如果“面板”状态只有其他两个状态,那么您只需要以下内容:
<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" />
然后