如何在FadeTransition中添加多个按钮?

问题描述 投票:0回答:1

我有一个学校的程序试图创建一个自动售货机,我试图让一个以上的按钮进行烘烤,以便在同一过渡中进行淡入淡出过渡!这是可能的还是我必须为每个按钮进行完全不同的淡入淡出过渡?

FadeTransition ft = new FadeTransition();
ft.setNode(imgView1);
ft.setDuration(Duration.millis(5000));
ft.setFromValue(1.0);
ft.setToValue(0.0);
ft.setCycleCount(1);
ft.setAutoReverse(true);
ft.plat();

btn1.setOnMousePressed(e->ft.play());

我有3个其他按钮和图像我想做同样的事情但不确定我是否必须制作每个Seperated FadeTransition或者我是否可以将它们添加到这个?

java javafx
1个回答
0
投票

除非节点是没有可视内容的公共父节点中的唯一节点,否则无法将转​​换应用于多个节点。

但是,您可以将其他节点的opacity属性绑定到动画节点的opacity

node2.opacityProperty().bind(imgView1.opacityProperty());
node3.opacityProperty().bind(imgView1.opacityProperty());

您还可以为每个节点创建一个带有Timeline元素的KeyValue

Timeline timeline = new Timeline(new KeyFrame(Duration.ZERO,
                                              new KeyValue(node1.opacityProperty(), 1d),
                                              new KeyValue(node2.opacityProperty(), 1d),
                                              new KeyValue(node3.opacityProperty(), 1d)),
                                 new KeyFrame(Duration.seconds(5),
                                              new KeyValue(node1.opacityProperty(), 0d),
                                              new KeyValue(node2.opacityProperty(), 0d),
                                              new KeyValue(node3.opacityProperty(), 0d)));

timeline.setAutoReverse(true);
timeline.play();
© www.soinside.com 2019 - 2024. All rights reserved.