Flex 4, ротационный переход, использовать кратчайший маршрут? - PullRequest
0 голосов
/ 14 июня 2010

У меня есть этот объект в 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>

Это круг, разделенный на 5 равных частей каждые 72 градуса. Таким образом, каждое состояние, которое вы видите, увеличивает вращение на 72 градуса.

У меня есть переход для вращения, когда состояние меняется следующим образом:

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

Поскольку это круг, вы можете вращать CW или CCW, чтобы получить нужную степень для государства. Обычно вращение-переход использует тот, который ниже. Например, чтобы попасть из Классики в Центро (от 0 до 72), он идет CW. Но это не всегда так. Чтобы перейти от кружева до Лидо (144 до 216) это идет против часовой стрелки. Это нежелательное ощущение, что переход к CW будет намного лучше, потому что для достижения желаемой степени требуется меньшее вращение круга.

То, что я хочу, это чтобы круг вращался в направлении, которое требует наименьшего количества вращения, чтобы достичь своего целевого уровня.

Надеюсь, это имеет смысл. Есть ли способ установить переход, чтобы сделать это?

1 Ответ

1 голос
/ 09 июля 2010

Не думаю, что вы должны использовать mx: AnimateProperty. Попробуйте новый класс Rotation Rotation в своем переходе. Вы также, вероятно, захотите установить для autoTransformCenter значение true, которое говорит об общем эффекте преобразования, который произойдет с центром объекта.

...