- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 FadeTransition
在 3 个不同的 AnchorPane
之间切换(点击 Button
),下面是我的代码,
public class TestSlide extends Application {
private ObjectBinding<Node> frontNode;
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
AnchorPane pane1 = new AnchorPane(new Button("1"));
AnchorPane pane2 = new AnchorPane(new Button("2"));
AnchorPane pane3 = new AnchorPane(new Button("3"));
root.getChildren().addAll(pane1, pane2, pane3);
handleAnimation(root);
BorderPane border= new BorderPane(root);
HBox bottom = new HBox(10);
Button front1 = new Button("Pane 1");
Button front2 = new Button("Pane 2");
Button front3 = new Button("Pane 3");
front1.setOnAction((ActionEvent event) -> {
pane1.toFront();
});
front2.setOnAction((ActionEvent event) -> {
pane2.toFront();
});
front3.setOnAction((ActionEvent event) -> {
pane3.toFront();
});
bottom.getChildren().addAll(front1, front2, front3);
border.setBottom(bottom);
Scene scene = new Scene(border,400,400);
primaryStage.setScene(scene);
primaryStage.show();
}
private void handleAnimation(StackPane root) {
frontNode = Bindings.valueAt(root.getChildren(),
Bindings.size(root.getChildren()).subtract(1));
frontNode.addListener((obs, oldNode, newNode) -> {
SequentialTransition fadeOutIn = new SequentialTransition();
if (oldNode != null) {
FadeTransition fadeOut = new FadeTransition(Duration.millis(500), oldNode);
fadeOut.setToValue(0);
fadeOutIn.getChildren().add(fadeOut);
}
if (newNode != null) {
FadeTransition fadeIn = new FadeTransition(Duration.millis(500), newNode);
fadeIn.setFromValue(0);
fadeIn.setToValue(1);
fadeOutIn.getChildren().add(fadeIn);
}
fadeOutIn.play();
});
}
public static void main(String[] args) {
launch(args);
}
}
handleAnimation
方法引用自另一个 SO 帖子。
问题是,
启动应用程序后,单击 Pane 1 按钮
。 -> Transition 将首先显示 pane2
,然后是 pane1
。
现在点击 Pane 3 Button
-> Transition 将首先显示 pane2
然后是 pane3
.
现在点击Pane 2 Button
-> Transition会显示pane2
,上面2点提到的问题不会出现再次出现。
为什么在第 1 点和第 2 点显示实际 Pane 之前转换显示 pane2
?是由于不透明度设置吗?
为什么在第 3 点之后问题得到解决?
如何在不显示第三个 Pane 的情况下使过渡工作到 FadeIn
和 FadeOut
各自的 Pane
?
最佳答案
这里的问题是 StackPane
的子级的初始状态是错误的:所有节点的不透明度为 1。当没有动画运行时,您想要的状态具有所有节点,但最后一个节点完全透明(不透明度 = 0)和最后一个完全不透明(不透明度 = 1)。您应该能够通过正确初始化不透明度来解决此问题:
root.getChildren().addAll(pane1, pane2, pane3);
// set opacity for all but the last child to 0
List<Node> children = root.getChildren();
for (int i = children.size()-2; i >= 0; i--) {
children.get(i).setOpacity(0);
}
否则会发生以下情况:
就在 pane1.toFront()
之后。请注意,(SequentialTransition
确保建立动画开始的状态。
最上面的节点是列表中的最后一个子节点,----...
放在可见“层”的旁边。
Pane 1: opacity = 0
Pane 3: opacity = 1 ------------------------------
Pane 2: opacity = 1
现在 SequentialTransition
的前半部分完成后,看起来如下:
Pane 1: opacity = 0
Pane 3: opacity = 0
Pane 2: opacity = 1 ------------------------------
动画完成后:
Pane 1: opacity = 1 ------------------------------
Pane 3: opacity = 0
Pane 2: opacity = 1
使用 pane3.toFront()
产生类似的结果:
Pane 3: opacity = 0
Pane 1: opacity = 1 ------------------------------
Pane 2: opacity = 1
Pane 3: opacity = 0
Pane 1: opacity = 0
Pane 2: opacity = 1 ------------------------------
Pane 3: opacity = 1 ------------------------------
Pane 1: opacity = 0
Pane 2: opacity = 1
关于JavaFX : StackPane Sequential Transition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57471869/
非常强大的开源数据挖掘工具 SPMF 的文档分别列出了它们: http://www.philippe-fournier-viger.com/spmf/index.php?link=algorithms
tf.keras.models.Sequential() 和有什么区别对比 tf.keras.Sequential() ?我不太了解它们之间的区别。有人可以向我解释一下吗?我是 TensorFlow
程序内聚说模块的部分被分组是因为它们始终遵循一定的执行顺序顺序内聚表示模块的各个部分被分组,因为一个部分的输出是另一个部分的输入像流水线一样的部分。这些定义是模棱两可的。请解释。 最佳答案 在顺序内聚
谁能解释定义以及顺序一致性和静态一致性之间的区别?以最愚蠢的形式:| 我确实读过这个:Example of execution which is sequentially consistent but
本文介绍基于 Python 语言中 TensorFlow 的 Keras 接口,实现深度神经网络回归的方法。 目录 1 写在前面
a)原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位。 b)图例说明: 原始数据:int[]a={4,6,2,8,1,9,0,3};
我正在为数据路径电路实现 FSM Controller 。 Controller 在内部递增计数器。当我模拟下面的程序时,计数器从未更新。 reg[3:0] counter; //incrementi
我对为什么REPA函数computeP将其结果打包在monad中感到困惑。它具有以下类型签名。 computeP :: (Load r1 sh e, Target r2 e, Source r2 e,
我知道同步 Ajax 已被弃用。但我有一些代码正在使用它,我的问题是: 假设方法 A 发出一个等待服务器的正常(异步)Ajax 请求。同时,一些其他事件触发方法B,该方法发出同步Ajax请求。现在,假
例如,我有一个这样的数据框,每一行没有重复的数字,数字按每一行排序。 W1 W2 W3 W4 1 1 3 4 7 2 4 5 6 7 3 1 2 5 8 4 2 5
我正在尝试合并两个模型的输出,并使用 keras 顺序模型将它们作为输入提供给第三个模型。 型号1: inputs1 = Input(shape=(750,)) x = Dense(500, acti
我有一个 JSF 页面,用户可以在其中将他们的汽车输入我的数据库。该表单具有三个输入字段: 制造商 模型 注册 我正在使用 PrimeFaces 3.0.M2,Manufacturer 和 Model
我目前有一个如下所示的 keras 模型: model = keras.Sequential() model.add(keras.layers.Dense(100, activation=tf.nn.
假设“连续”日期时间是彼此在特定时间间隔(即三十分钟)内的日期时间;非顺序日期时间是比彼此之间的时间段更长的日期时间。 给定一个由日期时间列表(作为字符串)组成的输入,我想派生一个顺序日期时间列表的列
我有许多服务器在运行,需要在它们之间生成序列号,这些序列号将以 5 个字符的字母数字字符串表示。目前,这被 Base32 编码略微篡改了自午夜以来的秒数,因为这对于测试目的来说足够独特。我们最好使用
我正在尝试使用 FadeTransition 在 3 个不同的 AnchorPane 之间切换(点击 Button),下面是我的代码, public class TestSlide extends A
这是我经常遇到的一个编程问题,我想知道是否存在一种数据结构,无论是在 C++ STL 中还是我可以自己实现的数据结构,它都提供了随机访问和顺序访问。 我可能需要这个的一个例子: 假设有 n 种类型的元
我的问题很简单,什么是验证数据传递给序列模型中的model.fit用于? 而且,它是否会影响模型的训练方式(通常使用验证集,例如,在模型中选择超参数,但我认为这不会发生在这里)? 我说的是可以这样传递
我有一个通用函数,它需要创建一个元组来调用一个我不知道其参数类型的函数。 像这样(除了这个例子中的 array 是由一些外部代码创建的,所以我不能直接应用该函数): Result apply(
给定以下方法... def doSomething1: Future[Int] = { ... } def doSomething2: Future[Int] = { ... } def doSome
我是一名优秀的程序员,十分优秀!