如何使用JavaFX进行离散颜色翻转动画?

时间:2009-08-26 02:43:55

标签: animation javafx

刚开始使用JavaFX,无法弄清楚如何在对象上进行离散颜色翻转。我可以设置一个带有两个关键帧的时间轴,并设置一个颜色值,一个对象绑定到它的填充变量......但是当我想要的是一个离散的触发器时,我得到插值颜色。

2 个答案:

答案 0 :(得分:1)

或者你可以在KeyFrame的keyColor键值上使用DISCRETE插值器。

Timeline {
    repeatCount: Timeline.INDEFINITE
    keyFrames: [
        at(0s) { fillColor => Color.BLUE tween Interpolator.DISCRETE; }
        at(1s) { fillColor => Color.RED tween Interpolator.DISCRETE; }
    ]
}

答案 1 :(得分:0)

这可能是你正在寻找的更多,但它不会无限重复 - 可能是一个错误? 此外,我怀疑有更简洁的方法可以做到这一点。

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.shape.Rectangle;
import javafx.scene.paint.Color;
import javafx.animation.transition.PauseTransition;
import javafx.animation.transition.SequentialTransition;

import javafx.animation.Timeline;

var fillColor: Color;

Stage {
    title : "MyApp"
    scene: Scene {
        width: 400
        height: 200
        content: [
                Rectangle {
                x: 10, y: 10
                width: 140, height: 90
                fill: bind fillColor
            }
            ]
    }
}

var seqTransition = SequentialTransition {
    repeatCount: Timeline.INDEFINITE
      content: [
        PauseTransition {
            duration: 1s
            action: function():Void {
                fillColor = Color.BLUE;
            }
        },
        PauseTransition {
            duration: 1s
            action: function():Void {
                fillColor = Color.RED;
            }
        }
      ]
    }
    seqTransition.play();