フレックストランジションを魅力的な方法で動作させる方法を理解しようとしています。私は彼らが非常に不安定に見えることなく彼らを働かせることはできません。フレックストランジションをスムーズに動作させることはできません
私はこれを説明するために愚かなデモンストレーションアプリケーションを添付しました。これは、カスタムItemRendererを持つListを表示します。リスト内の項目が選択されると、TextInputは徐々に大きくなります。 項目が選択解除されると、TextInputはゆっくりと縮小されます。
この実装には2つの問題があり、見栄えが悪いです。これらは、リストをクリックすると表示され、アイテムをアニメートにします。これらの問題は、次のとおりです。
項目がアニメーションが、状態を「ホバリング」と入力した場合、TextInputコントロールは、小さなサイズにスナップバック。どうしてこれなの?
アイテムのアニメーションが中断されると、アイテムは現在の値からアニメーションを続けるのではなく、最大サイズまたは最小サイズにスナップしてアニメーションを開始します。どうして?
大変助かりました。
おかげで、 フィル TestApplication.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
initialize="init(event)"
minWidth="900" minHeight="600">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
protected function init(event:FlexEvent):void {
var ac:ArrayCollection = new ArrayCollection();
ac.addItem("A1");
ac.addItem("B2");
ac.addItem("C3");
myList.dataProvider = ac;
}
]]>
</fx:Script>
<s:List id="myList" width="410" height="350" itemRenderer="MyItemRenderer" requireSelection="true"/>
</s:Application>
MyItemRenderer.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="true">
<s:states>
<s:State name="normal" />
<s:State name="hovered" />
<s:State name="selected" />
</s:states>
<s:transitions>
<s:Transition fromState="*" toState="selected" id="itemHasBeenSelected" >
<mx:AnimateProperty property="width" toValue="300" duration="3000" target="{textInput}" />
</s:Transition>
<s:Transition fromState="selected" toState="*" id="itemHasBeenUnselected">
<mx:AnimateProperty property="width" toValue="100" duration="3000" target="{textInput}" />
</s:Transition>
</s:transitions>
<s:Group width="100%">
<s:Label text="{data}" color.selected="red" color.normal="black"/>
<s:TextInput x="100" id="textInput" width="100"/>
</s:Group>
</s:ItemRenderer>
解決策はありがたく、アニメーションは本当に滑らかに見えます。私は本当に良い機能であるautoReverseについて知りませんでした。私の実際のアプリケーションでは、「ホバート」と「選択」状態のクローズボタンが表示されていたので、ホバリング状態を失うのは恥ずかしいです。 – Phil
これに加えて、私は個人的にadobeのモーションクラスのファンではなく、[TweenMax](http://www.greensock.com/tweenmax/)を見ることをお勧めします。 –
ええ、私は、3つの州をAdobeフレームワークで連携させることができませんでした。私は不可能だと言っているわけではありませんが、J_A_Xは他のツールを使うか、手動でマウスイベントを処理することで、3つの状態がスムーズに移行することができます。 – merv