我如何继续翻译过渡?

时间:2014-08-26 10:35:39

标签: javafx css-transitions nodes

我想让节点更进一步,而不是从初始坐标开始,走一段距离任何人都可以帮助我吗?

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

        TranslateTransition tTrans = new TranslateTransition(
                Duration.millis(4000), node);
        tTrans.setFromX(0);
        tTrans.setFromY(0);
        tTrans.setToY(yDest);
        tTrans.setToX(xDest);
        tTrans.setRate(2);
        tTrans.setInterpolator(Interpolator.LINEAR);
        tTrans.play();
    }

上述方法使用xDest和yDest移动节点。

  

xDest = x坐标和yDest = y坐标

如果初始坐标是100, 100xDest = 50 and yDest = 50,那么当我按下按钮时,节点将转到150,150但是如果我再次按下按钮,则动画显示节点从100开始,100然后转到150,150。我希望它在第二次鼠标点击时转到200,200,请问任何想法?

1 个答案:

答案 0 :(得分:1)

使用byXbyY属性代替toXtoY属性:

public void sky(Node node, double deltaX, double deltaY) {

    TranslateTransition tTrans = new TranslateTransition(
            Duration.millis(4000), node);
    tTrans.setFromX(node.getTranslateX());
    tTrans.setFromY(node.getTranslateY());
    tTrans.setByY(deltaY);
    tTrans.setByX(deltaX);
    tTrans.setRate(2);
    tTrans.setInterpolator(Interpolator.LINEAR);
    tTrans.play();
}

现在,每当您使用deltaX=50deltaY=50调用它时,它会沿两个轴将其翻译50个像素。