1

数日前から 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

autoReversekeyFramesおよびsも見つかりません。私は自分でプロジェクトとその構造をセットアップしませんでしたが、GitHub から "Hello world" プロジェクトを複製しました: scalafx-hello-world。このプロジェクトと適切にコンパイルされました。

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)
    }
  }
}
4

1 に答える 1

2

最新バージョンではnew、 の前にありませんTimeline。そのはず:

val timeline = new Timeline { 
   ... 
}
于 2015-02-20T21:07:20.873 に答える