Я пытаюсь сделать старую ручку радио с вращением, и это вращение - моя проблема. Когда курсор мыши находится на ручке - все в порядке, однако, когда мышь покидает область ручки, все работает плохо. Вот мой код для ручки.
РЕДАКТИРОВАТЬ: я хочу вращать ручку, просто перемещаясь влево и вправо. Движения вверх и вниз меня не интересуют.
EDIT2: проблема не возникает только в области ручки. Я думаю, что это зависит от
расстояние перемещения курсора.
@FXML
void onFrequencyKnobMouseMove(MouseEvent mouseEvent) {
double vX = (mouseEvent.getX() - deltaX);
System.out.println("VX: " + vX);
double rotation = frequencyKnob.getRotate() + vX;
if(rotation > 180) rotation=180;
if(rotation < -180) rotation=-180;
frequencyKnob.setRotate(rotation);
System.out.println("ROTATION: " + rotation);
tuningLine.setLayoutX(rotation*1.33+250);
deltaX = mouseEvent.getX();
System.out.println("DELTAX: " + deltaX + "\n\n");
}
@FXML
void onFrequencyKnobMouseDown(MouseEvent mouseEvent) {
deltaX = mouseEvent.getX();
//System.out.println(deltaX);
}
файл FXML
<ImageView fx:id="frequencyKnob" layoutX="856.0" layoutY="29.0" onMouseDragged="#onFrequencyKnobMouseMove" onMousePressed="#onFrequencyKnobMouseDown">
<image>
<Image url="@knob.png" />
</image>
</ImageView>