gpt4 book ai didi

JavaFX : Delay TranslateTransition

转载 作者:行者123 更新时间:2023-12-01 13:16:24 25 4
gpt4 key购买 nike

我在 javaFX 中创建了一些节点。我需要为每个节点设置动画,以便使用 TranslateTransitionPane 中的某个点到某个点之间进行转换。但我需要使每个节点使用不同的起点独立移动。如何实现这一点?我的意思是javaFX中有没有类似Thread.pause的东西。我尝试使用粗略的方法,如下面的代码所示:

    public void mouseRespon(final double x, final double y){
animasi.pause();
thread = new Thread(
new Runnable() {
@Override
public void run() {
int i = 0;
while(threadStatus && i < allList.size()){
final int j = i;
Platform.runLater(new Runnable() {
@Override
public void run() {
DynamicsText text = allList.get(j);
TranslateTransition transition = new TranslateTransition();
transition.setNode(text);
transition.setFromX(text.getTranslateX());
transition.setFromY(text.getTranslateY());
text.setDestinyOffset(x, y);
text.initCurrentOffSet();
double destX = text.getPotitionX();
double destY = text.getPotitonY();
transition.setToX(destX);
transition.setToY(destY);
transition.setDuration(Duration.seconds(1));
transition.setAutoReverse(false);
transition.setCycleCount(1);
transition.play();
}
});
try{
Thread.sleep(25);
}catch(Exception e){}
i++;
}
}
});
thread.start();
animasi.play();
}

但我认为这不是一个好方法。实际上,当我运行该代码片段时,程序会崩溃(有时)。

最佳答案

创建一个ParallelTransition

对于要移动的每个部分,创建一个 SequentialTransition、一个 PauseTransitionTranslateTransition。每个片段的 PauseTransition 应该逐渐变大,例如 0、25ms、50ms、75ms 等。将 PauseTransitionTranslateTransition 添加到SequentialTransition。将每个 SequentialTransition 添加到 ParallelTransition

然后播放ParallelTransition

无需创建任何Thread或搞乱Platform.runLater(...)

关于JavaFX : Delay TranslateTransition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22432289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com