是否在一定时间内给变量赋值(java)
所以我写了一个简单的2d javafx游戏,我的脑子里突然有了一个想法。 我可以给一个布尔值(或任何变量类型)一个选定时间的值吗是否在一定时间内给变量赋值(java),java,javafx,Java,Javafx,所以我写了一个简单的2d javafx游戏,我的脑子里突然有了一个想法。 我可以给一个布尔值(或任何变量类型)一个选定时间的值吗 如果可能的话,它看起来会是什么样子?为什么不是一个时间线呢 假设您希望在大约2秒钟内更改声明为myObject的myObject变量引用的对象的String foo字段 myObject.setTemporaryValueForFooField("special value"); Timeline timeline = new Timeline(new KeyFram
如果可能的话,它看起来会是什么样子?为什么不是一个时间线呢 假设您希望在大约2秒钟内更改声明为
myObject
的myObject
变量引用的对象的String foo
字段myObject.setTemporaryValueForFooField("special value");
Timeline timeline = new Timeline(new KeyFrame(
Duration.millis(2000),
ae -> myObject.reuseOriginalValueForFooField()));
timeline.play();
setTemporaryValueForFooField(String)
复制当前实例中foo
字段的当前值,并为其分配临时值。reuseOriginalValueForFooField()
在达到持续时间时,使用原始值重新分配foo
字段。有几种方法可以做到这一点。可以使用a、a(a)和简单的循环。像
AtomicBoolean ab = new AtomicBoolean(true);
Timer t = new Timer(); // <-- The Timer
t.schedule(new TimerTask() {
@Override
public void run() {
ab.set(false);
}
}, TimeUnit.SECONDS.toMillis(5)); // <-- once in five seconds.
while (ab.get()) { // <-- while the boolean is true
System.out.println("It's true");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
t.cancel(); // <-- don't forget to end the Timer.
AtomicBoolean ab=新的AtomicBoolean(真);
计时器t=新计时器();//这是C#但应该给你一些想法。