我正在尝试在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或其他技巧都不会改变任何东西:按钮仍然停留在同一个地方。
感谢您的帮助!
答案 0 :(得分:0)
问题是由使用VerticalLayout
引起的。此布局以及HorizontalLayout
忽略正在布局的对象的x / y属性。
如果您完全删除布局声明,它将使用默认的BasicLayout
,它将支持x / y属性并允许您的动画工作。