java - 在迭代之间更改动画的值
问题描述
我正在尝试使用动画计时器句柄(现在很久)方法更改旋转动画的参数(x、y、z 和 vv),但我不知道如何在每次迭代时重定向值。
我试过在那里放置构造函数:
Cylinder cyli = new Cylinder(200,40);
Translate trans3 = new Translate(0, 0, 0);
cyli.getTransforms().add(trans3);
cyli.setMaterial(pm);
cyli.setDrawMode(DrawMode.LINE);
Group group = new Group();
group.setTranslateX(150);
group.setTranslateY(150);
group.setTranslateZ(100);
rotate = new Rotate(0, axis);
group.getTransforms().setAll(rotate);
group.getChildren().add(cyli);
center.getChildren().add(group);
final Timeline rotationAnimation = new Timeline();
rotationAnimation.setCycleCount(1);
timer = new AnimationTimer() {
@Override
public void handle(long now) {
axis = new Point3D(x, y, z);
rotate = new Rotate(0, axis);
speed = 1/vv;
duration = Duration.seconds(speed);
//x, y, z and vv are values set by the user (variables)
}
};
duration = Duration.seconds(speed);
KeyValue keyValue1 = new KeyValue(rotate.angleProperty(),360);
KeyFrame keyFrame1 = new KeyFrame(duration, keyValue1);
rotationAnimation.getKeyFrames().add(keyFrame1);
rotationAnimation.play();
timer.start();
我想在动画期间或动画之间更改 x、y、z 和 vv 值,这些值可以在任何给定时间更改,但它们保持不变。我开始认为我需要以某种方式将整个组移动到 handle 方法,但我不知道如何去做。
解决方案
推荐阅读
- javascript - 如何专注于输入的第一个字段
- sqlite - 表 raw_contacts 没有名为 raw_contact_id 的列
- sql - SQL 选择到 SSIS 派生列
- python - 如何在colab中将谷歌驱动器安装到R笔记本?
- node.js - 如何使用 TypeORM 创建关系数据?
- html - 链接在 div 中不起作用,而且字体很棒的链接。为什么?
- jquery - 如何在 Datatables.net 的响应视图中显示超过 1 行?
- java - 如何在 Here Map Sdk 中从 URL 设置标记图像
- java - java exslt date-time() 产生意外输出
- typescript - Async/Await 无法与地图功能 ionic 4、typescript 一起正常工作