我想让节点更进一步,而不是从初始坐标开始,走一段距离任何人都可以帮助我吗?
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, 100
和xDest = 50 and yDest = 50
,那么当我按下按钮时,节点将转到150,150但是如果我再次按下按钮,则动画显示节点从100开始,100然后转到150,150。我希望它在第二次鼠标点击时转到200,200,请问任何想法?
答案 0 :(得分:1)
使用byX
和byY
属性代替toX
和toY
属性:
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=50
和deltaY=50
调用它时,它会沿两个轴将其翻译50个像素。