0

Flex 4にこのオブジェクトがあります

<s:Group 
        id="shanks" 
        width="243" 
        height="243" 
        x="243" 
        y="243"
        rotation.Classic="0"
        rotation.Centro="72"
        rotation.Lace="144"
        rotation.Lido="216"
        rotation.Euro="288"
        clipAndEnableScrolling="false">
        <mx:Image source="{circleUnder}" x="-243" y="-243"/>
    </s:Group>

72度ずつ5等分した円です。つまり、あなたが見ることができる各状態は、回転を 72 度増加させます。

状態が次のように変化すると、回転の遷移があります。

<s:transitions>
        <s:Transition>
            <mx:AnimateProperty target="{shanks}" property="rotation"/>
        </s:Transition>
    </s:transitions>

これは円であるため、実際に時計回りまたは反時計回りに回転させて、その状態に適した角度にすることができます。通常、rotation-transition は低い方を使用します。たとえば、Classic から Centro (0 から 72) に移動するには、CW になります。しかし、これは必ずしもそうではありません。レースからリド (144 から 216) に移動するには、CCW に移動します。これは、望ましい角度に到達するために必要な円の回転が少なくて済むため、CW に移行する方がはるかに優れた移行になるため、望ましい意味ではありません。

私が望むのは、目的の角度に到達するために必要な回転量が最も少ない方向に円が回転することです。

これが理にかなっていることを願っています。それを行うようにトランジションを設定する方法はありますか?

4

1 に答える 1

1

mx:AnimatePropertyを使用するべきではないと思います。トランジションで新しいsparkRotationクラスを試してください。また、autoTransformCenterをtrueに設定することもできます。これにより、全体的な変換効果に、操作がオブジェクトの中心で発生することが通知されます。

于 2010-07-09T16:58:30.867 に答える