use of javafx.animation.KeyValue in project fxexperience2 by EricCanull.
the class FadeOutDownBigTransition method starting.
@Override
protected void starting() {
double endY = node.getScene().getHeight() - node.localToScene(0, 0).getY();
timeline = new Timeline(new KeyFrame(Duration.millis(0), new KeyValue(node.opacityProperty(), 1, WEB_EASE), new KeyValue(node.translateYProperty(), 0, WEB_EASE)), new KeyFrame(Duration.millis(1000), new KeyValue(node.opacityProperty(), 0, WEB_EASE), new KeyValue(node.translateYProperty(), endY, WEB_EASE)));
super.starting();
}
use of javafx.animation.KeyValue in project fxexperience2 by EricCanull.
the class MainController method setTool.
// Displays a new tool and applies the slide transitions
public void setTool(Integer id) {
// check if existing animation running
if (timeline != null) {
nextTool = screens.get(id);
timeline.setRate(4);
return;
} else {
nextTool = null;
}
// load new content
sparePane.getChildren().setAll(screens.get(id));
sparePane.setCache(true);
currentPane.setCache(true);
// wait one pulse then animate
Platform.runLater(() -> {
// animate switch
if (id > currentToolIndex) {
// animate from bottom
currentToolIndex = id;
sparePane.setTranslateY(rootContainer.getHeight());
sparePane.setVisible(true);
timeline = new Timeline(new KeyFrame(Duration.millis(0), new KeyValue(currentPane.translateYProperty(), 0, INTERPOLATOR), new KeyValue(sparePane.translateYProperty(), rootContainer.getHeight(), INTERPOLATOR)), new KeyFrame(Duration.millis(800), animationEndEventHandler, new KeyValue(currentPane.translateYProperty(), -rootContainer.getHeight(), INTERPOLATOR), new KeyValue(sparePane.translateYProperty(), 0, INTERPOLATOR)));
timeline.play();
} else {
// from top
currentToolIndex = id;
sparePane.setTranslateY(-rootContainer.getHeight());
sparePane.setVisible(true);
timeline = new Timeline(new KeyFrame(Duration.millis(0), new KeyValue(currentPane.translateYProperty(), 0, INTERPOLATOR), new KeyValue(sparePane.translateYProperty(), -rootContainer.getHeight(), INTERPOLATOR)), new KeyFrame(Duration.millis(800), animationEndEventHandler, new KeyValue(currentPane.translateYProperty(), rootContainer.getHeight(), INTERPOLATOR), new KeyValue(sparePane.translateYProperty(), 0, INTERPOLATOR)));
timeline.play();
}
});
}
use of javafx.animation.KeyValue in project Media-Library by The-Rain-Goddess.
the class ApplicationWindow method updatePlayer.
private void updatePlayer() {
timeSlider.valueProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable ov) {
if (timeSlider.isValueChanging()) {
//Duration duration = player.getCurrentTime();
Duration duration = player.getMedia().getDuration();
if (duration != null) {
player.seek(duration.multiply(timeSlider.getValue() / 100.0));
}
updateValues();
}
}
});
player.setOnReady(() -> {
duration = player.getMedia().getDuration();
updateValues();
});
player.currentTimeProperty().addListener(new ChangeListener<Duration>() {
@Override
public void changed(ObservableValue<? extends Duration> arg0, Duration arg1, Duration arg2) {
updateValues();
}
});
player.volumeProperty().bindBidirectional(volumeSlider.valueProperty());
Image PlayButtonImage = new Image("com/negativevr/media_library/res/play.png");
Image PauseButtonImage = new Image("com/negativevr/media_library/res/pause.png");
ImageView imageViewPlay = new ImageView(PlayButtonImage);
ImageView imageViewPause = new ImageView(PauseButtonImage);
play.setGraphic(imageViewPause);
play.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
updateValues();
Status status = player.getStatus();
if (status == Status.PAUSED || status == Status.READY || status == Status.UNKNOWN || status == Status.STOPPED) {
player.play();
play.setGraphic(imageViewPause);
} else {
player.pause();
play.setGraphic(imageViewPlay);
}
}
});
player.setOnEndOfMedia(() -> {
play.setGraphic(imageViewPlay);
if (status == MediaStatus.REPEAT_NONE) {
player.seek(new Duration(0));
player.pause();
play.setGraphic(imageViewPlay);
} else if (status == MediaStatus.REPEAT_SINGLE) {
player.seek(new Duration(0));
player.play();
play.setGraphic(imageViewPause);
}
});
reload.setOnAction((ActionEvent e) -> {
player.seek(player.getStartTime());
});
skip.setOnAction((ActionEvent e) -> {
player.seek(player.getStopTime());
});
//fade in time line
final Timeline fadeInTimeline = new Timeline(new KeyFrame(FADE_DURATION, new KeyValue(player.volumeProperty(), 1.0)));
//fade out timeline
final Timeline fadeOutTimeline = new Timeline(new KeyFrame(FADE_DURATION, new KeyValue(player.volumeProperty(), 0.0)));
//fade in button
fadeIn = new Button("Fade In");
fadeIn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
fadeInTimeline.play();
}
});
fadeIn.setMaxWidth(Double.MAX_VALUE);
//fade out button
fadeOut = new Button("Fade Out");
fadeOut.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
fadeOutTimeline.play();
}
});
fadeOut.setMaxWidth(Double.MAX_VALUE);
}
use of javafx.animation.KeyValue in project Media-Library by The-Rain-Goddess.
the class ApplicationWindow method setupMediaPlayer.
//private Media Player accessors / mutators
private HBox setupMediaPlayer() {
HBox mediaSlot = new HBox();
VBox timeControls = new VBox();
VBox timeBox = new VBox();
HBox mediaControlBox = new HBox();
HBox searchBox = new HBox();
HBox fadeBox = new HBox(5);
VBox volumeControls = new VBox(10);
if (Main.getMasterDataAsList().size() != 0) {
Path path = Paths.get(Main.getMasterDataAsList().get(0).getLibraryFilePath());
Media media = new Media(path.toFile().toURI().toString());
player = new MediaPlayer(media);
} else {
//player = new MediaPlayer(new Media(Paths.get("src/com/negativevr/media_library/res/init.mp3").toFile().toURI().toString()));
}
//player.setAutoPlay(true);
MediaView mediaView = new MediaView();
mediaView.setMediaPlayer(player);
Image PlayButtonImage = new Image("com/negativevr/media_library/res/play.png");
Image PauseButtonImage = new Image("com/negativevr/media_library/res/pause.png");
ImageView imageViewPlay = new ImageView(PlayButtonImage);
ImageView imageViewPause = new ImageView(PauseButtonImage);
play = new Button();
play.setGraphic(imageViewPlay);
play.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
updateValues();
Status status = player.getStatus();
if (status == Status.PAUSED || status == Status.READY || status == Status.UNKNOWN || status == Status.STOPPED) {
player.play();
play.setGraphic(imageViewPause);
} else {
player.pause();
play.setGraphic(imageViewPlay);
}
}
});
reload = new Button();
reload.setGraphic(new ImageView(new Image("com/negativevr/media_library/res/reload.png")));
reload.setOnAction((ActionEvent e) -> {
player.seek(player.getStartTime());
});
skip = new Button();
skip.setGraphic((new ImageView(new Image("com/negativevr/media_library/res/skip.png"))));
skip.setOnAction((ActionEvent e) -> {
player.seek(player.getStopTime());
});
previous = new Button();
previous.setGraphic(new ImageView(new Image("com/negativevr/media_library/res/previous.png")));
next = new Button();
next.setGraphic(new ImageView(new Image("com/negativevr/media_library/res/next.png")));
Button repeat = new Button();
if (status == MediaStatus.REPEAT_NONE)
repeat.setGraphic(new ImageView(new Image("com/negativevr/media_library/res/repeat_none.png")));
else if (status == MediaStatus.REPEAT_SINGLE)
repeat.setGraphic(new ImageView(new Image("com/negativevr/media_library/res/repeat_single.png")));
repeat.setOnAction((ActionEvent e) -> {
if (status == MediaStatus.REPEAT_SINGLE) {
status = MediaStatus.REPEAT_NONE;
repeat.setGraphic(new ImageView(new Image("com/negativevr/media_library/res/repeat_none.png")));
} else if (status == MediaStatus.REPEAT_NONE) {
status = MediaStatus.REPEAT_SINGLE;
repeat.setGraphic(new ImageView(new Image("com/negativevr/media_library/res/repeat_single.png")));
}
});
timeSlider = new Slider();
HBox.setHgrow(timeSlider, Priority.ALWAYS);
timeSlider.setMinSize(100, 50);
timeSlider.valueProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable ov) {
if (timeSlider.isValueChanging()) {
Duration duration = player.getMedia().getDuration();
if (duration != null) {
player.seek(duration.multiply(timeSlider.getValue() / 100.0));
}
updateValues();
}
}
});
List<MediaFile> data = Main.getMasterDataAsList();
if (data.size() != 0) {
artistLabel = new Label(data.get(0).getArtistName() + " - " + data.get(0).getAlbumName());
songLabel = new Label(data.get(0).getSongName());
} else {
artistLabel = new Label();
songLabel = new Label();
}
player.currentTimeProperty().addListener(new InvalidationListener() {
@Override
public void invalidated(Observable ov) {
updateValues();
}
});
player.currentTimeProperty().addListener(new ChangeListener<Duration>() {
@Override
public void changed(ObservableValue<? extends Duration> arg0, Duration arg1, Duration arg2) {
updateValues();
}
});
time = new Label();
time.setTextFill(Color.BLACK);
player.setOnReady(() -> {
duration = player.getMedia().getDuration();
updateValues();
});
//volume control slider
volumeSlider = new Slider(0, 1, 0);
player.volumeProperty().bindBidirectional(volumeSlider.valueProperty());
player.setVolume(0.5);
//fade in time line
final Timeline fadeInTimeline = new Timeline(new KeyFrame(FADE_DURATION, new KeyValue(player.volumeProperty(), 1.0)));
//fade out timeline
final Timeline fadeOutTimeline = new Timeline(new KeyFrame(FADE_DURATION, new KeyValue(player.volumeProperty(), 0.0)));
//fade in button
fadeIn = new Button("Fade In");
fadeIn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
fadeInTimeline.play();
}
});
fadeIn.setMaxWidth(Double.MAX_VALUE);
//fade out button
fadeOut = new Button("Fade Out");
fadeOut.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
fadeOutTimeline.play();
}
});
fadeOut.setMaxWidth(Double.MAX_VALUE);
player.setOnEndOfMedia(() -> {
play.setGraphic(imageViewPlay);
if (status == MediaStatus.REPEAT_NONE) {
player.seek(new Duration(0));
player.pause();
play.setGraphic(imageViewPlay);
} else if (status == MediaStatus.REPEAT_SINGLE) {
player.seek(new Duration(0));
player.play();
play.setGraphic(imageViewPause);
}
});
//volume cotrol box
fadeBox.getChildren().addAll(fadeOut, fadeIn);
fadeBox.setAlignment(Pos.CENTER);
volumeControls.getChildren().setAll(new Label("Volume"), volumeSlider, fadeBox);
volumeControls.setAlignment(Pos.CENTER);
volumeControls.disableProperty().bind(Bindings.or(Bindings.equal(Timeline.Status.RUNNING, fadeInTimeline.statusProperty()), Bindings.equal(Timeline.Status.RUNNING, fadeOutTimeline.statusProperty())));
timeControls.getChildren().addAll(songLabel, artistLabel, timeSlider);
timeControls.setAlignment(Pos.CENTER);
timeControls.setFillWidth(true);
timeControls.setMinWidth(300);
timeBox.getChildren().addAll(repeat, time);
timeBox.setAlignment(Pos.CENTER);
mediaControlBox.getChildren().addAll(previous, reload, play, skip, next);
mediaControlBox.setAlignment(Pos.CENTER);
searchBox.getChildren().addAll(new Label("Search"), search);
searchBox.setAlignment(Pos.CENTER_RIGHT);
mediaSlot.getChildren().addAll(mediaControlBox, timeBox, timeControls, volumeControls, mediaView, searchBox);
mediaSlot.setSpacing(10);
HBox.setHgrow(timeControls, Priority.ALWAYS);
return mediaSlot;
}
use of javafx.animation.KeyValue in project FXyzLib by Birdasaur.
the class CameraViewTest method loadSubScene.
private void loadSubScene() throws NonInvertibleTransformException {
camera = new PerspectiveCamera(true);
cameraTransform.setTranslate(0, 0, -500);
cameraTransform.getChildren().add(camera);
camera.setNearClip(0.1);
camera.setFarClip(10000.0);
camera.setTranslateZ(-1500);
cameraTransform.ry.setAngle(-45.0);
cameraTransform.rx.setAngle(-10.0);
//add a Point Light for better viewing of the grid coordinate system
PointLight light = new PointLight(Color.WHITE);
cameraTransform.getChildren().add(light);
light.setTranslateX(camera.getTranslateX());
light.setTranslateY(camera.getTranslateY());
light.setTranslateZ(camera.getTranslateZ());
worldRoot.getChildren().add(cameraTransform);
SubScene scene = new SubScene(worldRoot, 800, 600, true, SceneAntialiasing.BALANCED);
scene.setFill(Color.DARKSLATEGRAY);
scene.setCamera(camera);
//First person shooter keyboard movement
scene.setOnKeyPressed(event -> {
double change = 10.0;
if (event.isShiftDown()) {
change = 50.0;
}
KeyCode keycode = event.getCode();
if (keycode == KeyCode.W) {
camera.setTranslateZ(camera.getTranslateZ() + change);
}
if (keycode == KeyCode.S) {
camera.setTranslateZ(camera.getTranslateZ() - change);
}
if (keycode == KeyCode.A) {
camera.setTranslateX(camera.getTranslateX() - change);
}
if (keycode == KeyCode.D) {
camera.setTranslateX(camera.getTranslateX() + change);
}
});
scene.setOnMousePressed((MouseEvent me) -> {
mousePosX = me.getSceneX();
mousePosY = me.getSceneY();
mouseOldX = me.getSceneX();
mouseOldY = me.getSceneY();
});
scene.setOnMouseDragged((MouseEvent me) -> {
mouseOldX = mousePosX;
mouseOldY = mousePosY;
mousePosX = me.getSceneX();
mousePosY = me.getSceneY();
mouseDeltaX = (mousePosX - mouseOldX);
mouseDeltaY = (mousePosY - mouseOldY);
double modifier = 10.0;
double modifierFactor = 0.1;
if (me.isControlDown()) {
modifier = 0.1;
}
if (me.isShiftDown()) {
modifier = 50.0;
}
if (me.isPrimaryButtonDown()) {
// +
cameraTransform.ry.setAngle(((cameraTransform.ry.getAngle() + mouseDeltaX * modifierFactor * modifier * 2.0) % 360 + 540) % 360 - 180);
// -
cameraTransform.rx.setAngle(((cameraTransform.rx.getAngle() - mouseDeltaY * modifierFactor * modifier * 2.0) % 360 + 540) % 360 - 180);
} else if (me.isSecondaryButtonDown()) {
double z = camera.getTranslateZ();
double newZ = z + mouseDeltaX * modifierFactor * modifier;
camera.setTranslateZ(newZ);
} else if (me.isMiddleButtonDown()) {
// -
cameraTransform.t.setX(cameraTransform.t.getX() + mouseDeltaX * modifierFactor * modifier * 0.3);
// -
cameraTransform.t.setY(cameraTransform.t.getY() + mouseDeltaY * modifierFactor * modifier * 0.3);
}
});
root.getChildren().add(scene);
scene.widthProperty().bind(root.widthProperty());
scene.heightProperty().bind(root.heightProperty());
cameraView = new CameraView(scene);
cameraView.setFirstPersonNavigationEabled(true);
cameraView.setFitWidth(350);
cameraView.setFitHeight(225);
cameraView.getRx().setAngle(-45);
cameraView.getT().setZ(-1500);
cameraView.getT().setY(-500);
root.getChildren().add(cameraView);
StackPane.setAlignment(cameraView, Pos.BOTTOM_RIGHT);
StackPane.setMargin(cameraView, new Insets(5));
//Add an aritrary object to scene
int rDivs = 32, tDivs = 32;
double rad = 600, trad = 400;
TorusMesh torus = new TorusMesh(rDivs, tDivs, rad, trad);
torus.setDrawMode(DrawMode.LINE);
PhongMaterial mat = new PhongMaterial(Color.BLUEVIOLET);
torus.setMaterial(mat);
torus.setTranslateX(0);
torus.setTranslateY(0);
torus.setTranslateZ(0);
worldRoot.getChildren().add(torus);
final Timeline t = new Timeline();
t.getKeyFrames().addAll(new KeyFrame[] { new KeyFrame(Duration.seconds(5), new KeyValue[] { // Frame End
new KeyValue(torus.tubeStartAngleOffsetProperty(), torus.getTubeStartAngleOffset() - 10, Interpolator.EASE_BOTH), new KeyValue(torus.xOffsetProperty(), torus.getxOffset() + 0.5, Interpolator.EASE_BOTH), new KeyValue(torus.yOffsetProperty(), torus.getyOffset() + 0.5, Interpolator.EASE_BOTH), new KeyValue(torus.zOffsetProperty(), torus.getzOffset() + 2, Interpolator.EASE_BOTH), new KeyValue(torus.tubeDivisionsProperty(), 120, Interpolator.EASE_BOTH), new KeyValue(torus.radiusDivisionsProperty(), 120, Interpolator.EASE_BOTH), new KeyValue(torus.tubeRadiusProperty(), 400, Interpolator.EASE_BOTH) }) });
t.setCycleCount(Animation.INDEFINITE);
t.setAutoReverse(true);
t.playFromStart();
}
Aggregations