我有一个启用了pannable的scrollPane。当以大图像平移时,转换“滞后”于鼠标后面,从而形成“块状”转换。有没有办法来解决这个问题?如果您需要更多详细信息,请问这里没有多少与实际相关的代码。
我意识到这是一篇过时的文章,但其他人可能需要这方面的帮助。解决此问题的方法是创建一个Transition
对象,然后在插值函数下,将ScrollPane vValue或hValue设置为等于其自身加上0.001,具体取决于您要平移的速度。 vValue和hValue是ScrollPane上的查看位置,因此基本上您只是在逐渐增加查看的内容,因此看起来像平移,但不是平移。这是我正在研究的项目中的一个示例,您可以在其中使用KeyEvents进行“平移”或“平移”。
@FXML
ScrollPane scroll;
private Transition down;
private Transition up;
public void initialize(){
this.down = new Transition() {
{
setCycleDuration(Duration.INDEFINITE);
}
@Override
protected void interpolate(double v) {
scroll.setVvalue(scroll.getVvalue()+0.001);
}
};
this.up = new Transition() {
{
setCycleDuration(Duration.INDEFINITE);
}
@Override
protected void interpolate(double v) {
scroll.setVvalue(scroll.getVvalue()-0.001);
}
};
}
@FXML
private void handleKeyPress(KeyEvent event){
if(event.getCode() == KeyCode.S){
down.play();
}
if(event.getCode() == KeyCode.W){
up.play();
}
}
@FXML
private void handleKeyRelease(){
this.down.stop();
this.up.stop();
}