私は3つの状態のスキンを持っています。私は将来もっと多くの州を持つかもしれない。しかし、これは通常の状態のツールバーであり、拡大表示は一度に1つの拡大表示のみが表示されるはずです。状態遷移を取り消して別のビューに直接移動する
私が2つの州を持っていたとき、私は以下の移行コードを使って2つの州に簡単に移行できました。しかし、今私は二次状態が閉じていない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>