我有兩種狀態。當我從OFF切換到A時,它會正確調整大小,但是當我從A切換回OFF時,會發生沒有平滑調整大小過渡的情況。我究竟做錯了什麼?在Flex 4中,狀態轉換不會在兩個方向調整大小
這裏是我的代碼:
<?xml version="1.0" encoding="utf-8"?>
<s:VGroup 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 butA_changeHandler(e:Event):void
{
if ((e.target as ToggleButton).selected) {
this.currentState="A";
} else {
this.currentState="off";
}
}
]]>
</fx:Script>
<s:states>
<s:State name="off" />
<s:State name="A" />
</s:states>
<s:transitions>
<s:Transition fromState="off" toState="A" autoReverse="true">
<s:Parallel duration="300">
<s:Resize target="{content}" heightTo="{cA.height}" />
<s:Fade targets="{cA}"/>
</s:Parallel>
</s:Transition>
<s:Transition fromState="A" toState="off" autoReverse="true">
<s:Parallel duration="300">
<s:Resize target="{content}" heightTo="0" />
<s:Fade targets="{cA}"/>
</s:Parallel>
</s:Transition>
</s:transitions>
<s:Group id="content" excludeFrom="off" width="100%" clipAndEnableScrolling="true">
<s:Group id="cA" includeIn="A" width="100%"><s:Label fontSize="70" text="A"/></s:Group>
</s:Group>
<s:HGroup>
<s:ToggleButton id="butA" label="A" change="butA_changeHandler(event)"/>
</s:HGroup>
</s:VGroup>
由於提前, 努諾
你好凱文,非常感謝你!它像一個魅力。儘管如此,儘管我已經在Adobe Flex文檔中瞭解了它,但我仍然不太瞭解AddAction/RemoveAction的必要性:-(如果您想解釋我將會非常感謝,謝謝!Nuno – nununo 2011-04-05 10:35:38
So你的意思是我不能使用addAction/removeAction和一個使用includeIn/excludeFrom的目標嗎?這很令人困惑,因爲即使這個例子沒有這個,這正是我在真實生活中需要的。 – nununo 2011-04-05 11:08:28
AddAction/RemoveAction和includeIn/excludeFrom都在做同樣的事情 - 在已經在顯示列表中的父容器中添加/刪除顯示對象。問題是,您希望使用轉換來觸發剛剛從顯示列表中移除的顯示對象上的動畫通過一個excludeFrom。你以前的序列: 狀態變化 - > includeFrom/excludeFrom的處理 - >轉換過程隱藏 您可以先手動播放動畫,然後更改視圖狀態以解決問題: 手動播放動畫,不添加/刪除操作 - >狀態更改 – 2011-04-05 12:22:22