非常简单的flex动画不沿x轴移动

时间:2013-02-12 18:04:03

标签: animation flex4 mxml

我正在尝试在MXML中使用Animate沿X轴或Y轴移动按钮。 单击时我的按钮增加宽度,但根本不移动。这段代码有什么问题?它应该是非常简单的东西,但我找不到它。

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:s="library://ns.adobe.com/flex/spark"
    initialize='init()'>

    <fx:Script>
        <![CDATA[
            public function init():void {}
        ]]>
    </fx:Script>

    <s:layout>
        <s:VerticalLayout id='l' horizontalAlign="left" />
    </s:layout>

    <fx:Declarations>
        <s:Animate id="mover" target="{button}" duration="1000">
            <s:SimpleMotionPath property="x" valueFrom="0" valueTo="100"/>
            <s:SimpleMotionPath property="y" valueTo="100"/>
            <s:SimpleMotionPath property="width" valueBy="20"/>
        </s:Animate>
    </fx:Declarations>  

    <s:Button id="button" click="mover.play()" label="Button"/>

</s:Application>

我从Adobe docs那里得到了这个样本。我认为它应该与布局或类似的东西有关,但我所有尝试更改布局,包括进入Canvas或其他技巧都不会改变任何东西:按钮仍然停留在同一个地方。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题是由使用VerticalLayout引起的。此布局以及HorizontalLayout忽略正在布局的对象的x / y属性。

如果您完全删除布局声明,它将使用默认的BasicLayout,它将支持x / y属性并允许您的动画工作。