List of usage examples for javafx.animation KeyValue KeyValue
public <T> KeyValue(@NamedArg("target") WritableValue<T> target, @NamedArg("endValue") T endValue, @NamedArg("interpolator") Interpolator interpolator)
From source file:io.bitsquare.gui.main.overlays.Overlay.java
protected void animateDisplay() { gridPane.setOpacity(0);/*from w w w.j a v a 2 s.com*/ Interpolator interpolator = Interpolator.SPLINE(0.25, 0.1, 0.25, 1); double duration = getDuration(400); Timeline timeline = new Timeline(); ObservableList<KeyFrame> keyFrames = timeline.getKeyFrames(); if (type.animationType == AnimationType.SlideDownFromCenterTop) { double startY = -gridPane.getHeight(); keyFrames .add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 0, interpolator), new KeyValue(gridPane.translateYProperty(), startY, interpolator))); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 1, interpolator), new KeyValue(gridPane.translateYProperty(), -10, interpolator))); } else if (type.animationType == AnimationType.ScaleFromCenter) { double startScale = 0.25; keyFrames .add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 0, interpolator), new KeyValue(gridPane.scaleXProperty(), startScale, interpolator), new KeyValue(gridPane.scaleYProperty(), startScale, interpolator) )); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 1, interpolator), new KeyValue(gridPane.scaleXProperty(), 1, interpolator), new KeyValue(gridPane.scaleYProperty(), 1, interpolator))); } else if (type.animationType == AnimationType.ScaleYFromCenter) { double startYScale = 0.25; keyFrames .add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 0, interpolator), new KeyValue(gridPane.scaleYProperty(), startYScale, interpolator) )); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 1, interpolator), new KeyValue(gridPane.scaleYProperty(), 1, interpolator))); } else if (type.animationType == AnimationType.ScaleDownToCenter) { double startScale = 1.1; keyFrames .add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 0, interpolator), new KeyValue(gridPane.scaleXProperty(), startScale, interpolator), new KeyValue(gridPane.scaleYProperty(), startScale, interpolator) )); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 1, interpolator), new KeyValue(gridPane.scaleXProperty(), 1, interpolator), new KeyValue(gridPane.scaleYProperty(), 1, interpolator))); } else if (type.animationType == AnimationType.FadeInAtCenter) { keyFrames.add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 0, interpolator) )); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 1, interpolator))); } timeline.play(); }
From source file:io.bitsquare.gui.main.overlays.Overlay.java
protected void animateHide(Runnable onFinishedHandler) { Interpolator interpolator = Interpolator.SPLINE(0.25, 0.1, 0.25, 1); double duration = getDuration(200); Timeline timeline = new Timeline(); ObservableList<KeyFrame> keyFrames = timeline.getKeyFrames(); if (type.animationType == AnimationType.SlideDownFromCenterTop) { double endY = -gridPane.getHeight(); keyFrames// w w w . j a v a 2s. c o m .add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 1, interpolator), new KeyValue(gridPane.translateYProperty(), -10, interpolator))); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 0, interpolator), new KeyValue(gridPane.translateYProperty(), endY, interpolator))); timeline.setOnFinished(e -> onFinishedHandler.run()); timeline.play(); } else if (type.animationType == AnimationType.ScaleFromCenter) { double endScale = 0.25; keyFrames .add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 1, interpolator), new KeyValue(gridPane.scaleXProperty(), 1, interpolator), new KeyValue(gridPane.scaleYProperty(), 1, interpolator))); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 0, interpolator), new KeyValue(gridPane.scaleXProperty(), endScale, interpolator), new KeyValue(gridPane.scaleYProperty(), endScale, interpolator))); } else if (type.animationType == AnimationType.ScaleYFromCenter) { gridPane.setRotationAxis(Rotate.X_AXIS); gridPane.getScene().setCamera(new PerspectiveCamera()); keyFrames.add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.rotateProperty(), 0, interpolator), new KeyValue(gridPane.opacityProperty(), 1, interpolator))); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.rotateProperty(), -90, interpolator), new KeyValue(gridPane.opacityProperty(), 0, interpolator))); } else if (type.animationType == AnimationType.ScaleDownToCenter) { double endScale = 0.1; keyFrames .add(new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 1, interpolator), new KeyValue(gridPane.scaleXProperty(), 1, interpolator), new KeyValue(gridPane.scaleYProperty(), 1, interpolator))); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 0, interpolator), new KeyValue(gridPane.scaleXProperty(), endScale, interpolator), new KeyValue(gridPane.scaleYProperty(), endScale, interpolator))); } else if (type.animationType == AnimationType.FadeInAtCenter) { keyFrames.add( new KeyFrame(Duration.millis(0), new KeyValue(gridPane.opacityProperty(), 1, interpolator))); keyFrames.add(new KeyFrame(Duration.millis(duration), new KeyValue(gridPane.opacityProperty(), 0, interpolator))); } timeline.setOnFinished(e -> onFinishedHandler.run()); timeline.play(); }
From source file:com.github.vatbub.tictactoe.view.Main.java
private void updateAILevelLabel(boolean forceUpdate) { double sliderPos = 100 * Math.round(aiLevelSlider.getValue() * 3.0 / 100.0) / 3.0; if (sliderPos != aiLevelLabelPositionProperty.get() || forceUpdate) { aiLevelLabelPositionProperty.set(sliderPos); // request focus of the current ai label for accessibility aiLevelLabelHBox.getChildren().get((int) (sliderPos * 3 / 100)).requestFocus(); updateAccessibleTexts();//www . j a v a2s.com // get the slider position double[] xDouble = new double[] { 0, 100.0 / 3.0, 200.0 / 3.0, 300.0 / 3.0 }; double[] translationYDouble = new double[4]; double[] widthYDouble = new double[4]; double[] trueWidthYDouble = new double[4]; for (int i = 0; i < translationYDouble.length; i++) { // {-getAILevelLabelCenter(0), -getAILevelLabelCenter(1), -getAILevelLabelCenter(2), -getAILevelLabelCenter(3)}; translationYDouble[i] = -getAILevelLabelCenter(i); widthYDouble[i] = Math.max(90, ((Label) aiLevelLabelHBox.getChildren().get(i)).getWidth() + 8 * aiLevelLabelHBox.getSpacing()); trueWidthYDouble[i] = ((Label) aiLevelLabelHBox.getChildren().get(i)).getWidth(); } SplineInterpolator splineInterpolator = new SplineInterpolator(); PolynomialSplineFunction translateFunction = splineInterpolator.interpolate(xDouble, translationYDouble); PolynomialSplineFunction widthFunction = splineInterpolator.interpolate(xDouble, widthYDouble); PolynomialSplineFunction trueWidthFunction = splineInterpolator.interpolate(xDouble, trueWidthYDouble); KeyValue hBoxLayoutXKeyValue1 = new KeyValue(aiLevelLabelHBox.layoutXProperty(), aiLevelLabelHBox.getLayoutX(), Interpolator.EASE_BOTH); KeyValue aiLevelLabelClipRectangleWidthKeyValue1 = new KeyValue( aiLevelLabelClipRectangle.widthProperty(), aiLevelLabelClipRectangle.getWidth(), Interpolator.EASE_BOTH); KeyValue aiLevelLabelClipRectangleXKeyValue1 = new KeyValue(aiLevelLabelClipRectangle.xProperty(), aiLevelLabelClipRectangle.getX(), Interpolator.EASE_BOTH); KeyValue aiLevelCenterLineStartXKeyValue1 = new KeyValue(aiLevelCenterLine.startXProperty(), aiLevelCenterLine.getStartX(), Interpolator.EASE_BOTH); KeyValue aiLevelCenterLineEndXKeyValue1 = new KeyValue(aiLevelCenterLine.endXProperty(), aiLevelCenterLine.getEndX(), Interpolator.EASE_BOTH); KeyFrame keyFrame1 = new KeyFrame(Duration.seconds(0), hBoxLayoutXKeyValue1, aiLevelLabelClipRectangleWidthKeyValue1, aiLevelLabelClipRectangleXKeyValue1, aiLevelCenterLineStartXKeyValue1, aiLevelCenterLineEndXKeyValue1); double interpolatedLabelWidth = trueWidthFunction.value(sliderPos); KeyValue hBoxLayoutXKeyValue2 = new KeyValue(aiLevelLabelHBox.layoutXProperty(), translateFunction.value(sliderPos), Interpolator.EASE_BOTH); KeyValue aiLevelLabelClipRectangleWidthKeyValue2 = new KeyValue( aiLevelLabelClipRectangle.widthProperty(), widthFunction.value(sliderPos), Interpolator.EASE_BOTH); KeyValue aiLevelLabelClipRectangleXKeyValue2 = new KeyValue(aiLevelLabelClipRectangle.xProperty(), aiLevelLabelPane.getWidth() / 2 - widthFunction.value(sliderPos) / 2, Interpolator.EASE_BOTH); KeyValue aiLevelCenterLineStartXKeyValue2 = new KeyValue(aiLevelCenterLine.startXProperty(), (aiLevelLabelPane.getWidth() - interpolatedLabelWidth) / 2, Interpolator.EASE_BOTH); KeyValue aiLevelCenterLineEndXKeyValue2 = new KeyValue(aiLevelCenterLine.endXProperty(), (aiLevelLabelPane.getWidth() + interpolatedLabelWidth) / 2, Interpolator.EASE_BOTH); KeyFrame keyFrame2 = new KeyFrame(Duration.seconds(animationSpeed * 0.9), hBoxLayoutXKeyValue2, aiLevelLabelClipRectangleWidthKeyValue2, aiLevelLabelClipRectangleXKeyValue2, aiLevelCenterLineStartXKeyValue2, aiLevelCenterLineEndXKeyValue2); Timeline timeline = new Timeline(keyFrame1, keyFrame2); timeline.play(); } }
From source file:com.github.vatbub.tictactoe.view.Main.java
private void setLowerRightAnchorPaneDimensions(Labeled nodeToShow, Labeled nodeToHide, boolean noAnimation, double widthOffset) { final double secondAnimationOffset = 0.1; if (widthOffset > 0) { nodeToShow.setPrefWidth(nodeToShow.getWidth() + widthOffset); }//from w w w . ja v a 2s. c o m if (noAnimation) { nodeToShow.setOpacity(1); nodeToShow.setVisible(true); nodeToHide.setVisible(false); playOnlineAnchorPane.setPrefHeight(nodeToShow.getHeight()); playOnlineAnchorPane.setPrefWidth(nodeToShow.getWidth()); } else { nodeToShow.setOpacity(0); nodeToShow.setVisible(true); nodeToShow.setPrefWidth(nodeToShow.getWidth()); nodeToShow.setPrefHeight(nodeToShow.getHeight()); DoubleProperty firstProperty; DoubleProperty secondProperty; double firstPropertyValue; double secondPropertyValue; double secondPropertyInitialValue; if (nodeToShow.getHeight() > nodeToShow.getWidth()) { firstProperty = playOnlineAnchorPane.prefHeightProperty(); firstPropertyValue = nodeToShow.getHeight() + AnchorPane.getBottomAnchor(nodeToShow); secondProperty = playOnlineAnchorPane.prefWidthProperty(); secondPropertyValue = nodeToShow.getWidth() + AnchorPane.getRightAnchor(nodeToShow); secondPropertyInitialValue = nodeToHide.getWidth(); } else { firstProperty = playOnlineAnchorPane.prefWidthProperty(); firstPropertyValue = nodeToShow.getWidth() + AnchorPane.getRightAnchor(nodeToShow); secondProperty = playOnlineAnchorPane.prefHeightProperty(); secondPropertyValue = nodeToShow.getHeight() + AnchorPane.getBottomAnchor(nodeToShow); secondPropertyInitialValue = nodeToHide.getHeight(); } KeyValue keyValueFirstProperty = new KeyValue(firstProperty, firstPropertyValue, Interpolator.EASE_BOTH); KeyValue keyValueNodeToHideOpacity1 = new KeyValue(nodeToHide.opacityProperty(), 0, Interpolator.EASE_IN); KeyFrame keyFrame1 = new KeyFrame(Duration.seconds(animationSpeed), keyValueFirstProperty, keyValueNodeToHideOpacity1); KeyValue keyValueSecondProperty1 = new KeyValue(secondProperty, secondPropertyInitialValue); KeyValue keyValueNodeToShowOpacity1 = new KeyValue(nodeToShow.opacityProperty(), nodeToShow.getOpacity()); KeyFrame keyFrame2 = new KeyFrame(Duration.seconds(secondAnimationOffset * animationSpeed), keyValueSecondProperty1, keyValueNodeToShowOpacity1); KeyValue keyValueSecondProperty2 = new KeyValue(secondProperty, secondPropertyValue, Interpolator.EASE_BOTH); KeyValue keyValueNodeToShowOpacity2 = new KeyValue(nodeToShow.opacityProperty(), 1, Interpolator.EASE_OUT); KeyFrame keyFrame3 = new KeyFrame(Duration.seconds((1 + secondAnimationOffset) * animationSpeed), keyValueSecondProperty2, keyValueNodeToShowOpacity2); Timeline timeline = new Timeline(keyFrame1, keyFrame2, keyFrame3); timeline.setOnFinished((event) -> nodeToHide.setVisible(false)); timeline.play(); } }
From source file:com.github.vatbub.tictactoe.view.Main.java
private void showWinnerWithTwoHumanPlayers(Board.WinnerInfo winnerInfo) { guiAnimationQueue.submitWaitForUnlock(() -> addWinLineOnWin(winnerInfo, Color.YELLOW, () -> { twoHumansWinnerText.setText(winnerInfo.winningPlayer.getName() + " won :)"); double endX = twoHumansWinnerImage.getX(); double endY = twoHumansWinnerImage.getY(); AnchorPane.clearConstraints(twoHumansWinnerImage); twoHumansWinnerImage.setX(endX); twoHumansWinnerImage.setY(twoHumansWinnerImage.getY() + 300); // blurGamePane(); blurGamePane(10.0);/*from w w w. ja v a 2s. co m*/ twoHumansWinMessage.setOpacity(0); twoHumansWinnerImage.setOpacity(0); twoHumansWinnerPane.setOpacity(1); twoHumansWinnerPane.setVisible(true); twoHumansWinnerImage.setVisible(true); Timeline timeline = new Timeline(); double S4 = 1.45; double x0 = 0.33; KeyValue twoHumansWinnerImageKeyValue1x = new KeyValue(twoHumansWinnerImage.xProperty(), endX, new CustomEaseOutInterpolator(S4, x0)); KeyValue twoHumansWinnerImageKeyValue1y = new KeyValue(twoHumansWinnerImage.yProperty(), endY, new CustomEaseOutInterpolator(S4, x0)); KeyValue twoHumansWinnerImageKeyValue1Opacity = new KeyValue(twoHumansWinnerImage.opacityProperty(), 1); KeyFrame twoHumansWinnerImageKeyFrame1 = new KeyFrame(Duration.millis(600), twoHumansWinnerImageKeyValue1x, twoHumansWinnerImageKeyValue1y, twoHumansWinnerImageKeyValue1Opacity); timeline.getKeyFrames().addAll(twoHumansWinnerImageKeyFrame1); timeline.setOnFinished((event) -> fadeNode(twoHumansWinMessage, 1, () -> { AnchorPane.setLeftAnchor(twoHumansWinnerImage, 0.0); AnchorPane.setBottomAnchor(twoHumansWinnerImage, 0.0); })); timeline.play(); })); }
From source file:com.github.vatbub.tictactoe.view.Main.java
private void showTie() { guiAnimationQueue.submitWaitForUnlock(() -> { double endX = tiePane.getWidth() - 230; double endY = 90; AnchorPane.clearConstraints(bowTie); bowTie.setX(endX);//w ww . ja va 2 s . co m bowTie.setY(-150); blurGamePane(); tieMessage.setOpacity(0); tiePane.setOpacity(1); tiePane.setVisible(true); bowTie.setVisible(true); Timeline timeline = new Timeline(); double S4 = 1.45; double x0 = 0.33; KeyValue keyValue1x = new KeyValue(bowTie.xProperty(), endX, new CustomEaseOutInterpolator(S4, x0)); KeyValue keyValue1y = new KeyValue(bowTie.yProperty(), endY, new CustomEaseOutInterpolator(S4, x0)); KeyFrame keyFrame1 = new KeyFrame(Duration.seconds(1), keyValue1x, keyValue1y); timeline.getKeyFrames().add(keyFrame1); timeline.setOnFinished((event) -> fadeNode(tieMessage, 1, () -> { AnchorPane.setRightAnchor(bowTie, tiePane.getWidth() - bowTie.getFitWidth() - endX); AnchorPane.setTopAnchor(bowTie, endY); })); timeline.play(); }); }
From source file:com.github.vatbub.tictactoe.view.Main.java
private void updateMenuHeight(boolean includeAILevelSlider) { double toHeight = 0; int effectiveChildCount = 0; for (Node child : menuSubBox.getChildren()) { if (child.isVisible() && child != aiLevelTitleLabel && child != aiLevelSlider && child != aiLevelLabelPane) { toHeight = toHeight + child.getBoundsInParent().getHeight(); effectiveChildCount = effectiveChildCount + 1; }//w w w . j a v a 2 s . c o m } if (includeAILevelSlider) { toHeight = toHeight + aiLevelLabelPane.getPrefHeight(); toHeight = toHeight + aiLevelSlider.getPrefHeight(); toHeight = toHeight + aiLevelTitleLabel.getPrefHeight(); effectiveChildCount = effectiveChildCount + 3; } toHeight = toHeight + menuSubBox.getSpacing() * (effectiveChildCount - 1); if (updateMenuHeightTimeline != null && updateMenuHeightTimeline.getStatus() == Animation.Status.RUNNING) { updateMenuHeightTimeline.stop(); } updateMenuHeightTimeline = new Timeline(); KeyValue keyValue0 = new KeyValue(menuSubBox.prefHeightProperty(), toHeight, Interpolator.EASE_BOTH); KeyFrame keyFrame0 = new KeyFrame(Duration.seconds(animationSpeed), keyValue0); updateMenuHeightTimeline.getKeyFrames().add(keyFrame0); updateMenuHeightTimeline.play(); }