2

スキン ファイルを使用してディスプレイをレンダリングするさまざまな状態 (上/上/下など) のボタンがあります。状態間のアニメーションを実現したい。たとえば、「上」から「上」への変化の間に、色と境界線をフェードインしたいと考えています。

私が現時点でこれを行っている方法は、ビューステートを使用し、トランジションと mx:AnimateProperty を使用してビューステート間でアニメーション化することです。ただし、この方法を使用すると、viewstate ごとに 1 つのプロパティしかアニメーション化できません。したがって、境界線または色のみをアニメーション化できます。

プログラムボタンスキンの複数のプロパティで複数のアニメーションを実現する方法を知っている人はいますか? 前もって感謝します!

注:トゥイナーの使用を検討しましたが、それが私の状況にどのように役立つかわかりません

4

3 に答える 3

0

http://www.degrafa.org/

http://www.degrafa.org/source/AdvancedSkins/Skins.html

于 2010-05-13T10:24:11.750 に答える
0

スキン ファイルを使用しているので、Flex4 を使用していると思います。

Flex4 では、複数の mx:AnimatePropery 宣言を as:Sequence または s:Parallel ノードでラップして使用できます。

<s:transitions>
  <s:Transition>
    <s:Parallel>
      <mx:AnimateProperty
        target="{button}"
        property="property1"
        fromValue="property1StartValue"
        toValue="property1EndValue" />
      <mx:AnimateProperty
        target="{button}"
        property="property2"
        fromValue="property2StartValue"
        toValue="property2EndValue" />
    </s:Parallel>
  </s:Transition>
</s:transitions>
于 2010-05-31T08:36:42.880 に答える
0

ルイス、

Flex 3 で ProgammaticSkin のプロパティをアニメーション化することはできません。これは、UIComponent がスキンを行う方法は、スキンの新しいインスタンス全体をインスタンス化し、その name プロパティを設定することによるためです。次に、コンポーネントが新しい状態を表示する必要がある場合、別の新しいインスタンスを作成し、その name プロパティを別のものに設定し、古いスキンを非表示にし、新しいスキンを表示します。このようにして、状態を切り替えて UpdateDisplayList で再描画する代わりに、スキンを「キャッシュ」します。

そのため、スキン自体の描画を簡単にアニメーション化することはできませんが、完全にエレガントではありませんが、解決策があります。

ProgammaticSkin は FlexShape を拡張するため、スキンに子を追加することはできませんが、UIComponent は IProgrammaticSkin を実装するものを探すため、FlexShape の代わりに FlexSprite を拡張する独自の ProgrammaticSkin を作成できます。これにより、addChild をスキンに追加できます。賢ければ、さまざまなキャッシュされたスキン間のトランジションを同期して、それらをアニメート可能にすることができます。

それが役立つことを願って、

ジョナサン

于 2010-06-30T18:13:53.630 に答える