在Flex中移动组件?

时间:2011-01-16 17:00:57

标签: flex actionscript-3

我有以下组件:

<?xml version="1.0" encoding="utf-8"?>
    <mx:Canvas  xmlns:mx="http://www.adobe.com/2006/mxml" width="16" height="16" >
    <mx:Script>
        <![CDATA[
            import mx.controls.Image;       
            public function init(i:Number):void {
                this.setStyle("backgroundColor", userFrame.colors[i]);
            }
        ]]>
    </mx:Script>
    <mx:Image x="0" y="0" width="16" height="16" 
        source="@Embed(source='../border16x16.png')"/>

    </mx:Canvas>

然后我将addChild(block)添加到舞台上 然后我想通过改变失败的block.x来移动它。如何更改代码以实现移动效果?

1 个答案:

答案 0 :(得分:2)

您的样本中没有名为block的变量或组件,所以我不清楚您要移动的是什么。

如果你想移动图像,首先你必须给它一个ID:

<mx:Image id="myImage" x="0" y="0" width="16" height="16" source="@Embed(source='../border16x16.png')"/>

然后在某些时候,只需更改x和y值即可移动它:

myImage.x = newXValue;
myImage.y = newYValue;

您也可以使用移动方法:

myImage.move(newXValue, newYValue);

请记住,某些Flex MX容器(例如HBox或VBox)以及某些Flex 4 Spark布局(例如Horizo​​ntalLayout和VerticalLayout)中会忽略x和y值。在Spark中,如果要使用x和y定位元素,请务必使用基本布局。在Flex 3中,请务必使用容器或画布进行基本布局。