2015-10-18 125 views
0

我想實現一個TranslateTransition到我的矩形,但它沒有做任何事情。 這裏是我的代碼:TranslateTransition JavaFX

primaryStage.setTitle("AnimationTest"); 
    Group group = new Group(); 

    Rectangle rect = new Rectangle(0,0,100,100); 
    group.getChildren().add(rect); 
    TranslateTransition transition =new TranslateTransition(Duration.millis(1000),rect); 
     transition.setByX(100); 

    Button button = new Button("StartAnimation"); 
     button.setOnAction((e)->{ 
      transition.play(); 
     }); 
    VBox layout = new VBox(); 
    layout.getChildren().addAll(group, button); 
    Scene scene = new Scene(layout, 600, 600); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 

回答

0

根據對Group的文檔:

A組將在其子

換句話說集體範圍,爲矩形移動時,組的座標系調整以適應其包含的所有內容。由於它包含的唯一東西是矩形,所以矩形相對於組的容器保持固定。

使用Pane代替Group

primaryStage.setTitle("AnimationTest"); 
Pane pane = new Pane(); 

Rectangle rect = new Rectangle(0,0,100,100); 
pane.getChildren().add(rect); 
TranslateTransition transition =new TranslateTransition(Duration.millis(1000),rect); 
    transition.setByX(100); 

Button button = new Button("StartAnimation"); 
    button.setOnAction((e)->{ 
     transition.play(); 
    }); 
VBox layout = new VBox(); 
layout.getChildren().addAll(pane, button); 
Scene scene = new Scene(layout, 600, 600); 
primaryStage.setScene(scene); 
primaryStage.show(); 
+0

謝謝!現在工作完美。 – XPenguen