import javafx.ext.swing.SwingSlider; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.Scene; import javafx.stage.Stage; // イメージのシーケンス // 未定義でエラーにならないよう、先に定義だけ行う var images: ImageView[] = []; // スライダの値にバインドした変数 // スライダの位置が半分に来た時にイメージの並び順を変更する var sliderValue = 0 on replace { if (sliderValue == 50) { images = reverse images; } }; // スライダの値に応じた移動量 var transX = bind sliderValue * (6.0 - 6.0 * sliderValue / 100.0); // 2 枚のイメージ images = [ ImageView { x: 0 y: 50 translateX: bind transX image: Image { url: "{__DIR__}herme.jpg" } }, ImageView { x: 0 y: 50 translateX: bind -transX image: Image { url: "{__DIR__}aoki.jpg" } } ]; Stage { title: "Slide Images" scene: Scene { width: 300 height: 500 // バインドするのは images の変更に同期するため content: bind [ SwingSlider { translateX: 20 translateY: 15 width: 260 minimum: 0 maximum: 100 value: bind sliderValue with inverse vertical: false }, images ] } }