动态更改JavaFX中的关键帧时间属性

动态更改JavaFX中的关键帧时间属性,javafx,timeline,keyframe,Javafx,Timeline,Keyframe,我正在用JavaFX制作一个游戏,并实现了一个控制游戏速度的滑块。我有一个简单的滑块(javafx.scene.control.slider),我将gameloop的时间属性绑定到从滑块获得的值 滑块只有在提高游戏速度时才起作用。如果我减少它,gameUpdate()将停止一段时间-取决于我减少它的程度。如果我在等待游戏赶上时增加滑块,游戏将再次继续。有时候,无论我等多久,比赛似乎都赶不上进度 更改关键帧时间通常是一个坏主意还是我忘记了其他事情? 我一直在尝试更改canSkip变量,这似乎可以让

我正在用JavaFX制作一个游戏,并实现了一个控制游戏速度的滑块。我有一个简单的滑块(javafx.scene.control.slider),我将gameloop的时间属性绑定到从滑块获得的值

滑块只有在提高游戏速度时才起作用。如果我减少它,gameUpdate()将停止一段时间-取决于我减少它的程度。如果我在等待游戏赶上时增加滑块,游戏将再次继续。有时候,无论我等多久,比赛似乎都赶不上进度

更改关键帧时间通常是一个坏主意还是我忘记了其他事情? 我一直在尝试更改canSkip变量,这似乎可以让游戏在再次启动时运行得更顺畅,但对我帮助不大

def gameLoop:Timeline = Timeline{
    repeatCount: Timeline.INDEFINITE
    keyFrames: [
        KeyFrame{
            time: bind Duration.valueOf(Config.REFRESH_RATE_NUMBER - gameSpeed)
            action: function(){
                gameUpdate();
            }
        }
    ]//keyFrames[]
}// Timeline{}

我看到了一个与此非常类似的情况(尽管在JavaFX1.1.1中),我在

我发现,如果我将声明从脚本级别移到初始化函数(而不是init{}块)中,这个问题就解决了

但是,我同意动态更改关键帧时间是个坏主意。 显然不支持在您发布的代码片段中使用“subtimeline”,而推荐的解决方案是使用JavaFX1.2和时间线


阅读JIRA bug报告了解更多信息,如果它不能解决问题,请发回。

我看到过类似的情况(尽管在JavaFX 1.1.1中),我在

我发现,如果我将声明从脚本级别移到初始化函数(而不是init{}块)中,这个问题就解决了

但是,我同意动态更改关键帧时间是个坏主意。 显然不支持在您发布的代码片段中使用“subtimeline”,而推荐的解决方案是使用JavaFX1.2和时间线


阅读JIRA错误报告了解更多信息,如果无法解决问题,请发回。

我建议在函数中生成一系列关键帧,然后删除并重新设置关键帧。通过绑定,用户在拖动滑块时可能会尝试调整时间轴。

我建议在函数中生成一系列关键帧,然后删除并重新设置关键帧。使用绑定时,似乎可能会在用户拖动滑块时尝试调整时间线。

除非我理解错误(这种情况经常发生),否则我不会在代码段中使用任何子时间线。子时间线时间线不在原始时间线的关键帧内吗?就我所见,你在JIRA上发布的代码的这些部分无论如何都不会影响时间的改变。变化变量的时间限制似乎仍然是个问题。我在移动声明时也无法让它工作。你把它移到整个脚本之外了吗?我希望bug报告能给你一些提示,而不是一个直接的解决方案。要继续前进,您是否可以尝试改用*转换类?当我尝试的时候,我确实发现这个区域有很多问题,所以如果你仍然没有成功的话,也许你可以尝试在吉拉募集资金?除非我理解错误(这种情况经常发生),否则我不会在我的代码片段中使用任何子时间线。子时间线时间线不在原始时间线的关键帧内吗?就我所见,你在JIRA上发布的代码的这些部分无论如何都不会影响时间的改变。变化变量的时间限制似乎仍然是个问题。我在移动声明时也无法让它工作。你把它移到整个脚本之外了吗?我希望bug报告能给你一些提示,而不是一个直接的解决方案。要继续前进,您是否可以尝试改用*转换类?当我尝试的时候,我确实发现这个地区有相当多的马车,所以如果你仍然没有成功的话,也许你可以尝试在吉拉饲养?