Javafx 场景中的鼠标事件动画 scene.addEventHandler(MouseEvent.MOUSE_单击,新建EventHandler()){ @凌驾 公共无效句柄(MouseEvent me){ 圆圈=新圆圈(10,20,50); 圆形。设置填充(颜色。绿色); root.getChildren().add(圆); animation=ParallelTransitionBuilder.create() .节点(圆) .儿童( TranslateTransitionBuilder.create() .持续时间(持续时间.秒(2)) .fromX(me.getSceneX()) .toX(me.getSceneX()+10) .build() ) .cycleCount(时间线不确定) //.autoReverse(真) .build(); } 公共游戏{ 动画。播放(); } //公共停车场(){ //动画。停止()

Javafx 场景中的鼠标事件动画 scene.addEventHandler(MouseEvent.MOUSE_单击,新建EventHandler()){ @凌驾 公共无效句柄(MouseEvent me){ 圆圈=新圆圈(10,20,50); 圆形。设置填充(颜色。绿色); root.getChildren().add(圆); animation=ParallelTransitionBuilder.create() .节点(圆) .儿童( TranslateTransitionBuilder.create() .持续时间(持续时间.秒(2)) .fromX(me.getSceneX()) .toX(me.getSceneX()+10) .build() ) .cycleCount(时间线不确定) //.autoReverse(真) .build(); } 公共游戏{ 动画。播放(); } //公共停车场(){ //动画。停止(),javafx,mouseevent,Javafx,Mouseevent,当我在场景中单击鼠标时,我试图让圆圈移动。这不会发生 我不确定序列是否错误,即在动画开始之前向根添加对象???我对您的代码进行了一些编辑,似乎对我有效 scene.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent me){ Circle circle = new

当我在场景中单击鼠标时,我试图让
圆圈移动
。这不会发生


我不确定序列是否错误,即在动画开始之前向根添加对象???

我对您的代码进行了一些编辑,似乎对我有效

scene.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {

    @Override     
    public void handle(MouseEvent me){
        Circle circle = new Circle(10, 20,50);
        circle.setFill(Color.GREEN);
        root.getChildren().add(circle);
        animation = ParallelTransitionBuilder.create()
        .node(circle)
        .children(
            TranslateTransitionBuilder.create()
                .duration(Duration.seconds(2))
                .fromX(me.getSceneX())
                .toX(me.getSceneX()+10)
                .build()

        )
        .cycleCount(Timeline.INDEFINITE)
        //.autoReverse(true)
        .build();      
    }

    public void play() {
    animation.play();
}

//public void stop() {
//animation.stop()

你叫它什么名字!

谢谢!效果很好。我是JavaFx新手,我想知道播放和停止方法的目的,因为我正在从ensemble学习。
scene.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {

        @Override     
        public void handle(MouseEvent me){
            Circle circle = new Circle(10, 20,50);
            circle.setFill(Color.GREEN);
            root.getChildren().add(circle);
            Animation animation = ParallelTransitionBuilder.create()
            .node(circle)
            .children(
                TranslateTransitionBuilder.create()
                    .duration(Duration.seconds(2))
                    .fromX(me.getSceneX())
                    .toX(me.getSceneX()+10)
                    .build()

            )
            .cycleCount(Timeline.INDEFINITE)
            .autoReverse(true)
            .build();
            animation.play();
       }
});
public void play() {
    animation.play();
}