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点,所以我可以看到它沿着距离移动,有人可以帮忙吗?
答案 0 :(得分:0)
您需要指定fromXProperty
和fromYProperty
属性,不应更改布局值
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();
}