【问题标题】:Sequence Animation序列动画
【发布时间】:2016-01-10 18:35:08
【问题描述】:
package example;/**
 * Created by tri___ton on 09.01.16.
 */

import javafx.animation.ScaleTransition;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;
import javafx.util.Duration;

public class AnimationSequence extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

    Stage stage = new Stage();
        Group group = new Group();
        Image first = new Image("http://hq-oboi.ru/photo/kotik_kak_pushistyy_komochek_1920x1200.jpg", 100.0, 100.0, true, true);
        ImageView firstImage = new ImageView();
        firstImage.setImage(first);


        Image second = new Image("http://hq-wallpapers.ru/wallpapers/2/hq-wallpapers_ru_animals_8040_1280x1024.jpg", 100.0, 100.0, true, true);
        ImageView secondImage = new ImageView();
        secondImage.setImage(second);

        secondImage.setLayoutX(150);
        secondImage.setLayoutY(150);


        group.getChildren().add(firstImage);
        group.getChildren().add(secondImage);


        Scene scene = new Scene(group, 300, 300);
        stage.setScene(scene);
        stage.show();


        ScaleTransition ft = new ScaleTransition(Duration.millis(3000));
        ft.setByX(1.5);
        ft.setByY(1.5);
        ft.setNode(firstImage);
        ft.play();


        ScaleTransition st = new ScaleTransition(Duration.millis(3000));
        st.setNode(secondImage);
        st.setByX(1.5);
        st.setByY(1.5);
        st.play();




    }
}

这只是简单的代码示例。

我需要一个接一个地做动画。

动画优先 超时 3 秒。 动画秒。

我该怎么做?

最大的问题是如何在主线程的不同部分之间暂停。

【问题讨论】:

  • 有无数的例子来说明如何用 Java 制作动画。我建议你读一些。其中一些在演示下载中带有 Java。

标签: java animation javafx


【解决方案1】:

要一个接一个地制作动画,请将它们放入SequentialTransition

ScaleTransition ft = new ScaleTransition(Duration.millis(3000));
ft.setByX(1.5);
ft.setByY(1.5);
ft.setNode(firstImage);

ScaleTransition st = new ScaleTransition(Duration.millis(3000));
st.setNode(secondImage);
st.setByX(1.5);
st.setByY(1.5);

SequentialTransition sequence = new SequentialTransition(ft, st);
sequence.play();

如果您需要它们之间的实际差距,您可以添加PauseTransition,例如

PauseTransition pause = new PauseTransition(Duration.seconds(1));

SequentialTransition sequence = new SequentialTransition(ft, pause, st);
sequence.play();

【讨论】:

  • 非常感谢。请给我建议,如何通过 ButtonOnClickAction 制作第二个动画?
  • 不确定我是否理解。您可以按照制作第一个动画的方式制作第二个动画。
猜你喜欢
  • 2015-11-19
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 2011-09-22
  • 2013-02-21
  • 2017-02-13
相关资源
最近更新 更多