Я начал пробовать ScalaFX API несколько дней назад. Чтобы изучить использование этого API, я просматриваю примеры на GitHub. Для тестирования функций класса TimeLine
я использовал этот пример: ScalaFXAnimation.
Код для определения объекта TimeLine в примере выглядит следующим образом:
val timeline = new Timeline {
cycleCount = Timeline.Indefinite
autoReverse = true
keyFrames = Seq(
at (2 s) {rect1.x -> 200d tween Interpolator.EASE_IN},
at (4 s) {rect1.x -> 300d},
at (3 s) {rect2.y -> 100d tween Interpolator.EASE_BOTH},
at (4 s) {rect2.y -> 300d},
at (4 s) {rect2.width -> 300d tween Interpolator.EASE_OUT}
)
}
Если я попытаюсь сделать это в своем собственном проекте, я получу некоторые ошибки компиляции, например:
Error:(58, 5) not found: value cycleCount
Значения autoReverse
, keyFrames
и s
также не найдены. Я не настраивал проект и его структуру самостоятельно, а клонировал "Hello world"-проект с GitHub: scalafx-привет-мир. Этот проект и скомпилирован должным образом.
Может ли это быть ошибкой в ScalaFX? У вас есть идеи, как решить эту проблему?
EDIT2: полный код
package hello
import scalafx.animation.{Timeline, Interpolator}
import scalafx.application.JFXApp
import scalafx.application.JFXApp.PrimaryStage
import scalafx.scene.Scene
import scalafx.scene.paint.Color
import scalafx.scene.shape.Rectangle
import scalafx.Includes._
import scala.language.postfixOps
object ScalaFXHelloWorld extends JFXApp {
val rect1 = new Rectangle {
width = 100
height = 200
fill = Color.Red
}
val rect2 = new Rectangle {
width = 200
height = 120
fill = Color.Green
}
val timeline = Timeline {
cycleCount = Timeline.Indefinite
autoReverse = true
keyFrames = Seq(
at (2 s) {rect1.x -> 200d tween Interpolator.EASE_IN},
at (4 s) {rect1.x -> 300d},
at (3 s) {rect2.y -> 100d tween Interpolator.EASE_BOTH},
at (4 s) {rect2.y -> 300d},
at (4 s) {rect2.width -> 300d tween Interpolator.EASE_OUT}
)
}
timeline.play()
stage = new PrimaryStage {
scene = new Scene {
content = List(rect1, rect2)
}
}
}