【发布时间】:2016-07-26 00:50:59
【问题描述】:
我正在开发一个 ScalaFX 应用程序,该应用程序在同一窗口中具有控件和模型(它是一个游戏)。不幸的是,当我添加模型时,即使两者不重叠,控件也会停止接收鼠标事件。一个最小的工作示例如下所示:
import scalafx.Includes._
import scalafx.application.JFXApp
import scalafx.application.JFXApp.PrimaryStage
import scalafx.scene._
import scalafx.scene.control._
import scalafx.scene.input.MouseEvent
import scalafx.scene.layout._
import scalafx.scene.shape._
object GameWindow extends JFXApp {
stage = new PrimaryStage {
scene = new Scene(800, 600, true, SceneAntialiasing.Balanced) {
root = new VBox(
new Button("Click me!") {
handleEvent(MouseEvent.MouseClicked) {
me: MouseEvent => Console println "clicked!"
}
},
new Sphere() {
radius = 100
})
}
}
}
如果我将球体替换为 2D 形状,例如 Circle 或 Rectangle,控件会再次响应;当我添加 3D 形状时,这只是一个问题。我尝试在Sphere 上设置mouseTransparent 和清除pickOnBounds,但似乎都不起作用。
如何让控件在被点击时继续接收鼠标事件?模型不接收是可以接受的。
【问题讨论】: