首页 > 解决方案 > javaFX 翻译动画不会双向触发?

问题描述

现在我正在尝试用 JavaFX 编写一个简单的算盘。在网格窗格中排列的水平轨道上有球,我正在使用 translateTransition 在单击时将它们向右移动。以下是我现在拥有的代码,它在网格中的任何球上都可以正常工作,只是它只动画向右移动。在第二次单击时,球跳回左侧到其原始位置,没有动画,我不知道为什么它没有动画。任何帮助或想法将不胜感激!

private void onClick(final Circle circle) {
    circle.setOnMouseClicked(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent mouseEvent) {
            //set movement direction, check if circle has been moved
            int targetX = 200;
            if (circle.getTranslateX() > 1) {
                targetX = 0;
            }   

            //animation trigger and details
            TranslateTransition push = new TranslateTransition(Duration.millis(500));
            push.setNode(circle);
            push.setFromX(circle.getCenterX());
            push.setToX(targetX);
            push.play();
        }
    });
}

标签: javaanimationeventsjavafxonclick

解决方案


推荐阅读