TranslateTransition第二次不能工作

时间:2014-08-12 15:02:30

标签: javafx-2 translate-animation

public void sky(Node node, double xDest, double yDest) {

    TranslateTransition tTrans = new TranslateTransition(
            Duration.seconds(4), node);

    // tTrans.setFromX(xPlec);
    tTrans.setToX(xDest);
    tTrans.setRate(2);
    tTrans.setInterpolator(Interpolator.LINEAR);

    // tTrans.setFromY(yPlec);
    tTrans.setToY(yDest);
    tTrans.setRate(2);
    tTrans.setInterpolator(Interpolator.LINEAR);

    node.setLayoutX(node.getLayoutX() + xDest);
    node.setLayoutY(node.getLayoutY() + yDest);

    tTrans.play();



}

这是我按下按钮时的方法

public void setDateFwd(MouseEvent event) {



    bFwd.setOnMouseClicked(e -> {



        if (data.getValue().equals(LocalDate.of(2014, 8, 15))) {



            sky(Sirius, 35.5, 4.5);
            sky(Procyon, 35.5, 4.5);
            sky(Beetlegeuse, 35.5, 4.5);
            sky(Polux, 35.5, 4.5);
            sky(Capella, 35.5, 4.5);
            sky(Regulus, 35.5, 4.5);
            sky(Rigel, 35.5, 4.5);
            sky(Aldebaran, 35.5, 4.5);
            sky(Castor, 35.5, 4.5);
            sky(Mirphak, 35.5, 4.5);



        }

    });

}

如果我第一次点击它就可以正常工作(它使用动画将我的对象从A点移动到B点)但是如果我第二次点击它就会重新定位对象(它会使它从A点消失并出现在B)点,我想让它从A点移动到B点,所以我可以看到它沿着距离移动,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您需要指定fromXPropertyfromYProperty属性,不应更改布局值

public void sky(Node node, double xDest, double yDest) {

    TranslateTransition tTrans = new TranslateTransition(Duration.seconds(4), node);

    tTrans.setFromX(0);
    tTrans.setFromY(0);

    tTrans.setToX(xDest);
    tTrans.setToY(yDest);

    tTrans.setRate(2);
    tTrans.setInterpolator(Interpolator.LINEAR);

    tTrans.play();
}