1

こんにちは、rxscala と scalafx を一緒に使用したいので、マウス イベントを再パッケージ化するためにこれを行いました。

def mouseEvents: Observable[MouseEvent] = Observable.create(observer => {
  stage.filterEvent(MouseEvent.Any)((event: MouseEvent) => {
    observer.onNext(event)
    event.consume
  })
  Subscription { ??? }
})

問題は、Subscription { ??? }ブロック内で登録されたイベントフィルターを削除したいのですfilterEvent()が、それを見るとfilterEvent()、イベントフィルターへの参照が保持されていないため、使用できませんstage.removeEventFilter()。同等のものも見当たりません。削除removeFilterEvent()を使用して登録されたイベント フィルタはどのように処理されますか?filterEvent()

回避策は、使用filterEvent()せずに javafx を使用することだと思いaddEventFilter()ますが、構文はもっと悪いです。

4

1 に答える 1

0

addEventFilter(eventType, eventHandler)現在、とを使用できますremoveEventFilter(eventType, eventHandler)

最新のScalaFX 1.0.0-M8-SNAPSHOTメソッドfilterEventでは、期待どおりにサブスクリプションが返されます。( ScalaFX Issue 115を参照)

于 2014-01-10T04:45:00.793 に答える