【发布时间】:2016-09-17 22:06:17
【问题描述】:
我在 JavaFX 中创建了一个自定义进度条。现在我想在进度条中添加发光效果。
为此,我创建了一个具有高斯模糊效果的椭圆,并将椭圆的 centerX 添加到时间轴中,以便我可以在进度条中设置发光效果的动画。
这是创建椭圆的代码
public Ellipse glowshape;
DropShadow glowEffect;
SimpleDoubleProperty width;
//create ellipse for gloweffect
public void createEllipse(){
glowshape = new Ellipse(25, 20, 10, 15);
glowshape.setFill(Color.rgb(255,255,255,.7));
glowshape.setEffect(new GaussianBlur(5));
}
public void init(){
indetermination();
setStartAnimation();
createEllipse();
width = new SimpleDoubleProperty(0);
width.bind(this.widthProperty());
setGlowAnimation();
}
这是动画的方法
public void setGlowAnimation(){
KeyValue value = new KeyValue(glowshape.centerXProperty(),width.doubleValue(),Interpolator.EASE_OUT);
KeyFrame keyframe1 = new KeyFrame(Duration.millis(2000),value);
glow_timeline = new Timeline();
glow_timeline.setCycleCount(Timeline.INDEFINITE);
glow_timeline.setAutoReverse(true);
glow_timeline.getKeyFrames().add(keyframe1);
}
虽然我已经将宽度属性与自定义栏宽度属性绑定,所以椭圆 centerX 不会超过进度条的当前进度并且应该反转回来。但是当动画开始时它不会发生它只是移动一个确定然后卡住。我认为Keyvalue的目标值在动画方法中根本没有更新。
如果有人在这方面帮助我,那就太好了。
【问题讨论】:
-
也许你可以分享一个代码 sn-p 显示你是如何创建进度条的?
标签: java css javafx progress-bar