【发布时间】:2016-09-10 06:49:57
【问题描述】:
我想用节点的“宽度”制作动画。
在这种情况下,我的节点是“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();
}
}
这是小米控制器:
将菜单向左移动(神秘)
LeftTransition leftTransition = new LeftTransition();
leftTransition.OpenMenu(list1);
leftTransition.play();
我想在这里放置我的尺寸“AnchorPane”。 (设置我的“anchorpane”的宽度)
/*ViewPaneTransition paneTransition = new ViewPaneTransition();
paneTransition.CloseMenu(viewPane, width );
paneTransition.play();*/
【问题讨论】:
-
啊什么?你不能这样做吗?
changeWidth(final Pane node, double width) {??在那里你会得到PrefWidthProperty或维护你的节点并使用node.prefWidth(-1);使用双活页夹来连续获得你的宽度。 -
属性或方法“Pref Width Property ()”不存在。
-
嗯,我想我当时很高 :) ....Pane extends Region, and ...
标签: java animation javafx transition