0

我正在尝试在 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>

我从 Adob​​e docs 获得了这个示例。我认为它应该与布局或类似的东西有关,但我所有改变布局的尝试,包括变成 Canvas 或其他技巧都没有改变任何东西:按钮仍然停留在同一个地方。

谢谢你的帮助 !

4

1 回答 1

0

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

If you remove your layout declaration altogether, it will then use the default BasicLayout which will honor the x/y properties and allow your animation to work.

于 2013-02-13T10:34:49.743 回答