我想用我的節點的「寬度」製作動畫。如何用javafx中的節點寬度製作動畫/轉換?
在這種情況下,我的節點是一個「AnchorPane」。
我嘗試在javafx中創建導航抽屜。
沒有屬性「width Property()」?
new Key Value (node.width Property(), 1, WEB_EASE)
node.widthProperty().getValue(
)未發現
我的代碼:
public void changeWidth(final Node node, double width) {
this.node = node;
this.timeline = TimelineBuilder.create()
.keyFrames(
new KeyFrame(Duration.millis(20),
new KeyValue( going here? , width, WEB_EASE)
)
)
.build();
setCycleDuration(Duration.seconds(5));
setDelay(Duration.seconds(0));
}
實施例中包含 「不透明度」 屬性:
new KeyValue(node.opacityProperty(), 1, WEB_EASE)
我類ConfigAnimationViewPane:
public class ConfigAnimationViewPane extends Transition {
protected static final Interpolator WEB_EASE = Interpolator.EASE_BOTH;
protected AnchorPane node;
protected Timeline timeline;
private boolean oldCache = false;
private CacheHint oldCacheHint = CacheHint.DEFAULT;
private final boolean useCache = true;
/**
* Called when the animation is starting
*/
protected void starting() {
if (useCache) {
oldCache = node.isCache();
oldCacheHint = node.getCacheHint();
node.setCache(true);
node.setCacheHint(CacheHint.SPEED);
}
}
/**
* Called when the animation is stopping
*/
protected void stopping() {
if (useCache) {
node.setCache(oldCache);
node.setCacheHint(oldCacheHint);
}
}
@Override protected void interpolate(double d) {
timeline.playFrom(Duration.seconds(d));
timeline.stop();
}
}
這是MI控制器:
移動菜單左側(超自然)
LeftTransition leftTransition = new LeftTransition();
leftTransition.OpenMenu(list1);
leftTransition.play();
在這裏,我希望把我的尺寸 「AnchorPane」。 (設置我的 「anchorpane」 的寬度)
/*ViewPaneTransition paneTransition = new ViewPaneTransition();
paneTransition.CloseMenu(viewPane, width);
paneTransition.play();*/
啊什麼?你不能這樣做嗎? 'changeWidth(最終窗格節點,雙寬度){'??你會得到'PrefWidthProperty' **或**維護你的節點並使用'node.prefWidth(-1);'使用雙活頁夾連續獲得你的寬度。 – Elltz
屬性或方法「Pref Width屬性()」不存在。 –
嗯,我猜即時高,然後:) .... [窗格擴展區域,和...](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Region。 html#prefWidthProperty--) – Elltz