2014-03-28 107 views
0
scene.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { 

    @Override  
    public void handle(MouseEvent me){ 
     Circle circle = new Circle(10, 20,50); 
     circle.setFill(Color.GREEN); 
     root.getChildren().add(circle); 
     animation = ParallelTransitionBuilder.create() 
     .node(circle) 
     .children(
      TranslateTransitionBuilder.create() 
       .duration(Duration.seconds(2)) 
       .fromX(me.getSceneX()) 
       .toX(me.getSceneX()+10) 
       .build() 

     ) 
     .cycleCount(Timeline.INDEFINITE) 
     //.autoReverse(true) 
     .build();  
    } 

    public void play() { 
    animation.play(); 
} 

//public void stop() { 
//animation.stop() 

我想讓circle move當我mouse click在現場。它沒有發生!關於現場鼠標事件動畫

我不確定序列是否錯誤,即在動畫開始之前向根添加對象?

回答

1

我做了一些編輯你的代碼,它似乎爲我工作

scene.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { 

     @Override  
     public void handle(MouseEvent me){ 
      Circle circle = new Circle(10, 20,50); 
      circle.setFill(Color.GREEN); 
      root.getChildren().add(circle); 
      Animation animation = ParallelTransitionBuilder.create() 
      .node(circle) 
      .children(
       TranslateTransitionBuilder.create() 
        .duration(Duration.seconds(2)) 
        .fromX(me.getSceneX()) 
        .toX(me.getSceneX()+10) 
        .build() 

      ) 
      .cycleCount(Timeline.INDEFINITE) 
      .autoReverse(true) 
      .build(); 
      animation.play(); 
     } 
}); 

雖然,我仍然不明白的是你的

public void play() { 
    animation.play(); 
} 

的宗旨,在哪裏你叫它!

+0

謝謝!效果很好。我是JavaFx的新手,我想知道播放和停止方法的目的,因爲我正在從整體學習。 – Pgram