【问题标题】:Is there a way to transition an array of nodes in JavaFX有没有办法在 JavaFX 中转换节点数组
【发布时间】:2018-05-10 21:09:26
【问题描述】:

如果我创建一个节点数组,我可以在不为每个节点创建单独的过渡实例的情况下转换每个节点吗?

ArrayList<ImageView> leftScoringNodeBgArray = new ArrayList();

for (int i = 0; i<5; i++){
    leftScoringNodeBgArray.add(new ImageView(leftScoringBgImage));
} 

TranslateTransition leftTransition1 = new TranslateTransition();
TranslateTransition leftTransition2 = new TranslateTransition();
TranslateTransition leftTransition3 = new TranslateTransition();
TranslateTransition leftTransition4 = new TranslateTransition();
TranslateTransition leftTransition5 = new TranslateTransition();

leftTransition1.setNode(leftScoringNodeBgArray.get(0);    
leftTransition2.setNode(leftScoringNodeBgArray.get(1);
leftTransition3.setNode(leftScoringNodeBgArray.get(2);
leftTransition4.setNode(leftScoringNodeBgArray.get(3);
leftTransition5.setNode(leftScoringNodeBgArray.get(4);

leftTransition1.setToX(300);
leftTransition2.setToX(400);
leftTransition3.setToX(500);
leftTransition4.setToX(600);
leftTransition5.setToX(700);

leftTransition1.setCycleCount(1);
leftTransition2.setCycleCount(1);
leftTransition3.setCycleCount(1);
leftTransition4.setCycleCount(1);
leftTransition5.setCycleCount(1);

SequentialTransition st = new SequentialTransition(leftTransition1, leftTransition2, leftTransition3, leftTransition4, leftTransition5);
st.play();

真正唯一改变的就是最终的 X 位置。 有没有办法可以在循环中创建所有转换以避免重复定义转换参数?

【问题讨论】:

  • 这些过渡之后你会做什么?
  • 我将它们放在 SequentialTransition() 中并播放。

标签: java animation javafx


【解决方案1】:

您可以像这样创建它们(并将它们添加到 SequentialTransition ):

ArrayList<ImageView> leftScoringNodeBgArray = new ArrayList<>();
SequentialTransition seq = new SequentialTransition();

for (int i = 0; i < 5; i++) {
    leftScoringNodeBgArray.add(new ImageView(leftScoringBgImage));

    TranslateTransition tr = new TranslateTransition();
    tr.setNode(leftScoringNodeBgArray.get(0));
    tr.setToX(300 + i * 100);
    tr.setCycleCount(1);
    seq.getChildren().add(tr);
}

【讨论】:

    猜你喜欢
    • 2020-04-16
    • 2014-03-20
    • 2020-08-19
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 2019-12-16
    • 2020-09-17
    • 1970-01-01
    相关资源
    最近更新 更多