JavaFX中的TranslateTransition什么都不做

时间:2015-03-02 18:17:10

标签: javafx imageview translate-animation

我试图在JavaFX中使用TranslateTransition对象来移动我正在构建的LOGO程序中的屏幕对象。我有一个屏幕上的TurtleDisplay对象,它扩展了ImageView,这就是我想要移动的东西。移动它的代码在这里:

 public void drawTurtle(TurtleData currentData) {
    TurtleImage inList = getTurtleImage(currentData);

    if (inList==null) {
        TurtleImage temp = new TurtleImage(currentData.getX(),
                currentData.getY(), currentData.getHeading(), turtleImage);
        myTurtlesGroup.getChildren().add(temp);
        myTurtlesList.add(temp);
    }
    else {
        TranslateTransition tt = new TranslateTransition(Duration.seconds(3),inList);
        tt.setFromX(inList.getX());
        tt.setFromY(inList.getY());
        tt.setToX(inList.getX()+currentData.getX());
        tt.setToY(inList.getY()+currentData.getY());
        tt.setCycleCount(Timeline.INDEFINITE);
        tt.play();
    }
}

此代码是前端的一部分,通过ObservableList上的Listener从后端调用。后端包含这个ObservableTigraData对象列表,其中包含在屏幕上移动乌龟所需的信息 - 要移动的乌龟,移动到的坐标以及乌龟的旋转。调用它的代码在这里:

 ObservableList<TurtleData> myTurtles = FXCollections
            .observableArrayList();
    myTurtles.addListener(new ListChangeListener<TurtleData>() {
        @Override
        public void onChanged(Change<? extends TurtleData> c) {
            myDisplay.getSelectedWorkspace().getTV().clearTurtles();
            while (c.next()) {
                for (TurtleData addItem : c.getAddedSubList()) {
                    myDisplay.getSelectedWorkspace().getTV().drawTurtle(addItem);
                }
            }
        }
    });

我已经使用调试器并确保调用此代码 - 具体来说,运行tt.play()行。屏幕上没有任何动静。有谁知道什么是错的?我需要设置动画时间轴吗?谢谢你的帮助!

0 个答案:

没有答案