2011-01-31 4 views
1

でこの2つの状態間の遷移を滑らかにする必要があり、私は二つの状態、最高のオープンとして記述し、閉じていているアイテムを持っている、と彼らは次のようになります。どのように私はflashbuilder /フレックス

closed

open

そして私は何をしたいのは、フッタ/ buttoを移動させるために効果的に滑らかに(正弦)内の2点間を補間することによって、一つの状態と他の間の遷移を滑らかですnブロックし、円グラフをフェードインします。

しかし、これは私を超え、明らかであると時間の+のためにそうするために私ができないことと格闘した後、私はそれをここに掲示しています:

<s:transitions> 
    <s:Transition id="TrayTrans" fromState="*" toState="*"> 
     <s:Sequence> 
      <s:Move duration="400" target="{footer}" interpolator="{Sine}"/> 
      <s:Fade duration="300" targets="{body}"/> 
     </s:Sequence>  
    </s:Transition> 

    <s:Transition> 
     <s:Rotate duration="3000" /> 
    </s:Transition> 
</s:transitions> 

{body}を次のようにD

は、だから私の遷移ブロックが見えます円グラフを指し、{footer}はフッタ/ボタンブロックを指す。

しかし、これは私が実際に何をすべきかわからないので、動作しません...有益であるかもしれ

追加情報:

体ブロックは、(おそらく使用の、常に一定の高さでありますいくつかのエフェクトのXby変数については?)。

両方向で作業する必要があります。

ブロックおよびSineブロックは、前述のように、宣言で<s:Sine id="Sine">と定義されています。

さらに!これらのトランジションブロックを使用して円グラフを連続的に回転させる設定をどうすればできますか? (これはラベルが付いていなくても起こります)それとも、それが変わってもそれほど変わっていくわけではないのですか?私は後だ効果が円グラフは、下のボタンを選択する前に、ラベルなしにゆっくりと回転させますが、選択に回転が停止し、ラベルが表示されるものです

...

事前にどうもありがとう!

グレースケールについてお詫び申し上げますが、私は本当に配色を決めることができません。どんな提案も大歓迎です。

答えて

2

アクションスクリプトのコーディングをやっていないと、これはas3関数でかなり簡単になります。あなたは次の操作を実行する必要があります

public function doTransition():void 
     { 
      var move:Move= new Move(); 
      move.target=footer; 
      move.yFrom = 0;//current position 
      move.yTo = 400;//or whatever is the final position of the footer 
      move.duration=500;//duration in milliseconds 

      var resize:Resize=new Resize(); 
      resize.target=body; 
      resize.heightFrom=0;//or whatever is initial height 
      resize.heightTo=400;//or whatver is the final height 
      resize.duration=500; 

      var fadeIn:Fade =new Fade(); 
      fadeIn.target = pieChart;//the id of the piechart 
      fadeIn.alphaFrom =0; 
      fadeIn.alphaTo = 1; 
      fadeIn.duration =500; 

      move.play(); 
      resize.play(); 
      fadeIn.play(); 
     } 

これを行うには、円グラフを回転させるためのコードが必要になります。 これには、タイマーと回転変換を使用できます。

+0

これは、Flex 4での状態遷移を行うための最良の方法ですか?彼らがMXMLを使用している/快適であると思うなら、並列エフェクトは道のりになります – Ryan

+0

これは開発者がより多くの制御を得る方法の1つであると確信しています。これらすべてを並行して実行する場合は、 myParallelEffect = new mx.effects.Parallel(); myParallelEffect.addChild(move)、myParallelEffect.addChild(resize)などの操作を行い、myParallelEffect.play()を呼び出すと、3つのすべてのトランジションが同時に再生されます。 – Neeraj

0

トゥイーンを簡単にするには、​​を使用して作業を完了することをおすすめします。あなたはあまりアクションスクリプトを書くことになりません。