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
]
}
}