我正在尝试使用ImageView创建一个滚动按钮,该按钮会在按下时滚动某些图像。我尝试使用MouseEvent的primaryButtonDown属性来执行此操作,但它冻结了应用程序:
ivbutton.onMousePressed = function (e) {
while (e.primaryButtonDown){
//Scroll Stuff
}
你知道创建这种按钮的方法吗?
感谢。
答案 0 :(得分:2)
您可以将滚动链接到时间轴动画吗? 然后按钮可以控制时间线的开始和停止。
例如,这是类似的,但它控制一个正方形的旋转(也许你可以使用TranslateTransition):
import javafx.scene.shape.Rectangle;
import javafx.scene.paint.Color;
import javafx.animation.transition.RotateTransition;
import javafx.animation.Timeline;
import javafx.scene.control.Button;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.animation.Interpolator;
def r = Rectangle {
x: 80 y: 80
height: 100 width: 100
arcHeight: 50 arcWidth: 50
fill: Color.VIOLET
}
def rotTransition = RotateTransition {
duration: 1s
node: r
byAngle: 180
repeatCount: Timeline.INDEFINITE
interpolator: Interpolator.LINEAR
}
def b = Button {
text: "Click and hold"
onMousePressed: function (e) {
rotTransition.play();
};
onMouseReleased: function (e) {
rotTransition.stop();
};
};
Stage {
title : "Rotation"
scene: Scene {
width: 250
height: 250
content: [r,b]
}
}