我有一個動畫列表,我希望能夠通過單擊“下一個”按鈕來播放它們,然后通過單擊“上一個”按鈕來播放它們。所以我可以播放第一個動畫,然后播放第二個動畫,然后向后播放第二個動畫并到達只播放第一個動畫后的位置。我的問題是動畫完成后無法反轉。我知道我可以設置autoReverse但是每個動畫都會立即反轉。這是一個動畫的示例:import javafx.animation.TranslateTransition;import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.control.Button;import javafx.scene.layout.HBox;import javafx.scene.layout.Pane;import javafx.scene.layout.VBox;import javafx.scene.paint.Color;import javafx.scene.shape.Circle;import javafx.stage.Stage;import javafx.util.Duration;public class AnimTest extends Application { @Override public void start(Stage stage) throws Exception { Circle c = new Circle(5, Color.RED); TranslateTransition move = new TranslateTransition(Duration.seconds(2), c); move.setByX(10); move.setByY(10); Button next = new Button("Next"); Button previous = new Button("Previous"); next.setOnAction(e -> { move.setRate(1); move.play(); }); previous.setOnAction(e -> { move.setRate(-1); move.play(); }); Pane p = new Pane(c); p.setPrefSize(50, 50); HBox buttons = new HBox(next, previous); VBox root = new VBox(p, buttons); stage.setScene(new Scene(root)); stage.show(); } public static void main(String[] args) { launch(args); }}按“下一個”后,我希望“上一個”將球移回其原始位置(因此有效 x 乘 -10 和 y 乘 -10),而不是反向播放“跟隨”動畫。在實踐中,我的動畫為場景圖形中的不同對象設置動畫,它們可以是并行/順序過渡。對于列表,我保留當前位置索引i并執行以下操作: next.setOnAction(e -> { Animation move = list.get(i); move.setRate(1); move.play(); i++; }); previous.setOnAction(e -> { i--; Animation move = list.get(i); move.setRate(-1); move.play(); });試圖反轉之前的動畫。我怎樣才能做到這一點?澄清一下,我的清單是Animation. 這TranslateTransition只是一個例子。
添加回答
舉報
0/150
提交
取消