Вопрос анимации Flex 4 - PullRequest
0 голосов
/ 18 июня 2010

Я пытаюсь сделать анимацию перемещения по вертикали на кнопке, вложенной в вертикальное расположение.Я не уверен, ограничивает ли Hgroup движение кнопки по вертикали.Есть ли способы обойти это?Спасибо за помощь.

<s:states>
<s:State name="default"/>
<s:State name="addRecommend"/>
<s:State name="seeOther"/>
</s:states>


AS:

protected function add_clickHandler(event:MouseEvent):void
{
currentState="addRecommend";
addRecommendMove.play();
}





<s:transitions>
<s:Transition fromState="default" toState="addRecommend">
<s:Sequence id="addRecommendMove">
<s:Move yTo="50" target="{add}"/>  // add button doesn't move at all
</s:Sequence>
</s:Transition>
<s:Transition fromState="addRecommend" toState="seeOther">
<s:Sequence>
<s:Move yBy="50" target="{seeOthers}"/>
</s:Sequence>
</s:Transition>
</s:transitions>




<s:layout>
<s:VerticalLayout paddingTop="15" paddingRight="10" paddingLeft="7"/>
</s:layout>


<button id="add" click=add_clickHandler(event)/>
<button id="seeOthers"/>

1 Ответ

1 голос
/ 18 июня 2010

По умолчанию HGroup ограничивает все свои элементы одним макетом по вертикали.Их можно выровнять с помощью свойства verticalAlign группы HGroup , но все они будут иметь одинаковое выравнивание.

Чтобы дать кнопке полную свободу перемещения, вложите ее в обычную группу с базовой компоновкой,Это эквивалент холста в flex 3 и означает, что вам нужно будет указать координаты x и y каждого элемента в этом контейнере.

Другой вариант - вложить вашу кнопку внутри группы с базовымиразметить и поместить эту вещь в HGroup.Сделайте внутреннюю группу достаточно высокой для воспроизведения анимации.Таким образом, вы можете сохранить все преимущества, которые вы получаете от HGroup, но при этом сможете анимировать положение вашей кнопки.

Надеюсь, это поможет - опубликуйте полный исходный код, если этого недостаточно, и я могу попытаться предоставитьболее полный ответ для вас.

...