Animation TranslateTransition跳过几个像素

Animation TranslateTransition跳过几个像素,animation,javafx-2,Animation,Javafx 2,当我点击动画开始时,图像从点A跳到它应该走的距离的四分之一,然后运行良好,直到它到达点B,有人知道为什么吗 这是我用于图像移动的方法: public void sky(Node node, double xDest, double yDest) { TranslateTransition tTrans = new TranslateTransition( Duration.seconds(4), node); // tTrans.setFromX(xP

当我点击动画开始时,图像从点A跳到它应该走的距离的四分之一,然后运行良好,直到它到达点B,有人知道为什么吗

这是我用于图像移动的方法:

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();



}

为什么在开始转换之前为节点设置终点?请尝试下一个代码:

tTrans.setFromX(node.getLayoutX());
tTrans.setToX(xDest);
tTrans.setRate(2);
tTrans.setInterpolator(Interpolator.LINEAR);

tTrans.setFromY(node.getLayoutX());
tTrans.setToY(yDest);

tTrans.play();

另请注意,您不需要调用
setRate
setInterpolator
两次。

如果我在单击移动按钮时尝试使用您的代码,图像将从原来的位置显示,它将显示在屏幕右下角的某个位置,然后转到指定的坐标,所以我没有这个node.setLayoutY(node.getLayoutY()+yDest);但是这个跳帧我发现了问题,问题是我的按钮如果我按下一次,它不会移动图像,但它会改变图像的坐标,当我第二次按下它时,它会工作,它会移动图像2倍于它应该移动的距离,我不知道为什么它会这样做。