Animation JavaFX动画的哪一个方面缺少了?

Animation JavaFX动画的哪一个方面缺少了?,animation,javafx,Animation,Javafx,我试图让这个简单的动画在图像背景上播放,但我无法让它开始。 我尝试添加一个按钮,并使用playFromStart()代替play()。 我还尝试在路径中添加设置方向,我不认为它会起任何作用,因为我只是在移动一个圆,这没有帮助。 我还试图搞乱动画的时间安排和重复次数,以防一切发生得太快或太慢,我错过了。 我觉得我可能错过了一些非常简单的东西,但从我所看到的每件事来看,所有的例子都有,我也有 当我添加按钮时,背景图像也消失了,因为我已经尝试过将其向上移动和其他事情,但我觉得这也是一个简单的问题,我的

我试图让这个简单的动画在图像背景上播放,但我无法让它开始。 我尝试添加一个按钮,并使用playFromStart()代替play()。 我还尝试在路径中添加设置方向,我不认为它会起任何作用,因为我只是在移动一个圆,这没有帮助。 我还试图搞乱动画的时间安排和重复次数,以防一切发生得太快或太慢,我错过了。 我觉得我可能错过了一些非常简单的东西,但从我所看到的每件事来看,所有的例子都有,我也有

当我添加按钮时,背景图像也消失了,因为我已经尝试过将其向上移动和其他事情,但我觉得这也是一个简单的问题,我的大脑刚刚变得呆滞

package javafxapplication10;
import javafx.animation.PathTransition;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.*;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.paint.ImagePattern;
import javafx.scene.shape.*;
import javafx.stage.Stage;
import javafx.util.Duration;


public class JavaFXApplication10 extends Application {

    @Override
    public void start(Stage stage) {


            stage.setScene(scene);
            stage.setResizable(false);
            stage.sizeToScene();
            ImagePattern pattern = new ImagePattern(image);
            scene.setFill(pattern);        

            stage.setScene(scene);
            stage.show();

            Circle cir = new Circle (19);            
            cir.setLayoutX(170);
            cir.setLayoutY(100);
            cir.setFill(Color.KHAKI);
            pane.getChildren().add(cir);

            Path path1 = new Path();


            path1.getElements().add(new MoveTo(170,650));
            path1.getElements().add(new MoveTo(1335,650));
            path1.getElements().add(new MoveTo(1335,100));
            PathTransition pl = new PathTransition();
            pl.setDuration(Duration.seconds(8));
            pl.setPath(path1);
            pl.setNode(cir);
            pl.setCycleCount(1);
            //pl.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT);
            pl.setAutoReverse(false);
            //pl.play();

             Button begin = new Button("Begin");
            begin.setLayoutX(780);
            begin.setLayoutY(105);
            begin.setOnAction(new EventHandler<ActionEvent> () {
            @Override
            public void handle(ActionEvent press) {
                pl.play();

            }
            }); 
            pane.getChildren().add(begin);


    }

    Image image = new Image("file:Figure one.png");

    Pane pane = new Pane();
    Scene scene = new Scene (pane,1474,707);

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

}
PackageJavaFXApplication10;
导入javafx.animation.PathTransition;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.image.*;
导入javafx.scene.layout.Pane;
导入javafx.scene.paint.Color;
导入javafx.scene.paint.ImagePattern;
导入javafx.scene.shape.*;
导入javafx.stage.stage;
导入javafx.util.Duration;
公共类JavaFXApplication10扩展了应用程序{
@凌驾
公众假期开始(阶段){
舞台场景;
阶段。可设置大小(假);
stage.sizeToScene();
ImagePattern模式=新的ImagePattern(图像);
场景。设置填充(图案);
舞台场景;
stage.show();
圆cir=新的圆(19);
cir.setLayoutX(170);
cir.setLayoutY(100);
cir.setFill(颜色为卡其色);
pane.getChildren().add(cir);
路径路径1=新路径();
path1.getElements().add(newmoveto(170650));
path1.getElements().add(newmoveto(1335650));
path1.getElements().add(newmoveto(1335100));
PathTransition pl=新的PathTransition();
pl.setDuration(持续时间秒(8));
pl.setPath(路径1);
pl.setNode(cir);
pl.setCycleCount(1);
//pl.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT);
pl.setAutoReverse(假);
//play();
按钮开始=新按钮(“开始”);
begin.setLayoutX(780);
开始。设置布局(105);
setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent press){
play();
}
}); 
pane.getChildren().add(开始);
}
Image=新图像(“文件:Figure one.png”);
窗格=新窗格();
场景=新场景(窗格,1474707);
公共静态void main(字符串[]args){
发射(args);
}
}

路径转换
仅沿实际绘制的路径移动节点<代码>移动到元素不绘制任何内容,只需设置当前位置。您需要使用
LineTo
(和/或
ClosePath
)在
路径中绘制一些东西。此外,
Path transition
设置转换权限,而不是布局属性,即圆的最终位置是通过将布局坐标添加到
Path
提供的坐标来确定的。因此,您应该使用translate属性定位
,或者从
(0,0)
开始路径:

Path path1 = new Path(
        new MoveTo(0, 0),
        new LineTo(0, 550),
        new LineTo(1165, 550),
        new LineTo(1165, 0),
        new ClosePath()
);
// path1.getElements().add(new MoveTo(170,650));
// path1.getElements().add(new MoveTo(1335,650));
// path1.getElements().add(new MoveTo(1335,100));