У меня есть кожа с 3 состояниями. У меня может быть больше состояний в будущем. Но это панель инструментов с нормальным состоянием, а затем расширенный вид, в котором только одно расширенное представление должно быть видимым одновременно.Отмена перехода состояния и переход непосредственно к другому виду
Когда у меня было два состояния, я мог легко перейти между ними, используя приведенный ниже код перехода. Но теперь, когда у меня три состояния, вторичное состояние не закрыто. Если я нахожусь во вторичном состоянии, я хочу сначала закрыть его.
Вот мой код из класса кожи:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
protected function imageViewButton_clickHandler(event:MouseEvent):void
{
if (currentState==NORMAL_VIEW) {
currentState = IMAGE_VIEW;
}
else {
currentState = NORMAL_VIEW;
}
}
protected function linkViewButton_clickHandler(event:MouseEvent):void
{
if (currentState==NORMAL_VIEW) {
currentState = LINK_VIEW;
}
else {
currentState = NORMAL_VIEW;
}
}
public static var NORMAL_VIEW:String = "normal";
public static var LINK_VIEW:String = "linkView";
public static var IMAGE_VIEW:String = "imageView";
]]>
</fx:Script>
<s:transitions>
<s:Transition fromState="normal" toState="*">
<s:Sequence duration="250">
<s:Resize target="{this}"/>
<s:AddAction target="{linkViewButton}"/>
<s:Fade target="{linkViewButton}"/>
</s:Sequence>
</s:Transition>
<s:Transition fromState="linkView" toState="*">
<s:Sequence duration="250">
<s:Fade target="{linkViewButton}"/>
<s:Resize target="{this}"/>
</s:Sequence>
</s:Transition>
<s:Transition fromState="imageView" toState="*">
<s:Sequence duration="250">
<s:Fade target="{imageViewButton}"/>
<s:Resize target="{this}"/>
</s:Sequence>
</s:Transition>
</s:transitions>
<s:states>
<s:State name="normal"/>
<s:State name="linkView"/>
<s:State name="imageView"/>
</s:states>
<s:VGroup width="100%">
<s:HGroup width="100%" >
<s:Button label="Button 1" />
<s:Line height="100%">
<s:stroke>
<s:SolidColorStroke color="#B3C2B8"/>
</s:stroke>
</s:Line>
<s:ToggleButton id="gotoLinkView" label="Link Details" click="linkViewButton_clickHandler(event)"/>
<s:Line height="100%">
<s:stroke>
<s:SolidColorStroke color="#B3C2B8"/>
</s:stroke>
</s:Line>
<s:ToggleButton id="gotoImageView" label="Image Details" click="imageViewButton_clickHandler(event)"/>
<s:Line height="100%">
<s:stroke>
<s:SolidColorStroke color="#B3C2B8"/>
</s:stroke>
</s:Line>
</s:HGroup>
<s:Button id="linkViewButton" label="Link View"
includeIn="linkView"
itemCreationPolicy="immediate" width="100%"/>
<s:Button id="imageViewButton" label="Image View"
includeIn="imageView"
itemCreationPolicy="immediate"
width="100%"/>
</s:VGroup>
</s:WindowedApplication>