2011-01-16 5 views
1

Ich habe die folgende Komponente:Bewegliche Komponenten in Flex?

<?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> 

ich es dann auf die Bühne fügen mit addChild(block)
Dann will ich es bewegen, indem block.x zu verändern, die fehlschlägt. Wie kann ich meinen Code ändern, um den Bewegungseffekt zu implementieren?

+0

Wie ist das Layout des Elterns, der das Kind hinzufügt? –

+0

Sie meen ? – kandreych

Antwort

2

Sie haben keine Variable oder Komponente mit dem Namen block in Ihrer Probe, daher ist unklar, was Sie zu verschieben versuchen.

Wenn Sie das Bild verschieben möchten, zuerst musst du es eine ID geben:

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

Und dann irgendwann ändern, nur die x- und y-Werte um es zu bewegen:

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

Sie können auch die move-Methode verwenden:

myImage.move(newXValue, newYValue); 

beachten Sie, dass in einigen Flex MX c x und y Werte ignoriert ontainers, wie HBox oder VBox und in einigen Flex 4 Spark-Layouts wie HorizontalLayout und VerticalLayout. Verwenden Sie in Spark ein Grundlayout, wenn Sie Elemente mit x und y positionieren möchten. Stellen Sie sicher, dass Sie in Flex 3 einen Container oder eine Arbeitsfläche für das grundlegende Layout verwenden.

Verwandte Themen