小编Spe*_*lar的帖子

转换结束时的 JavaFX 重复循环

我正在尝试执行以下循环:

  1. 更新一些变量
  2. 播放基于/表示变量的转换
  3. 转换完成后,转到 1

这将永远重复。我使它与以下工作:

//Step 3
transition.setOnFinished(new EventHandler<ActionEvent>(){
    @Override
    public void handle(ActionEvent event){
        doTheThing(); //Step 1, updates data
        transition.setToValue(data);
        transition.play(); // Step 2
    }
});

transition.play(); //Triggers first repeat
Run Code Online (Sandbox Code Playgroud)

当然,这是一个无限的递归循环,这不是一个好主意。问题是,一旦转换完成,我不知道如何触发重复。我试过使用循环:

while (1==1){
    doTheThing();
    transition.setToValue(data);
    transition.play();
}
Run Code Online (Sandbox Code Playgroud)

但这不仅不等待转换(在意料之中,对我来说不是问题),它根本不播放转换,并且程序没有响应。我也试过这个:

transition.setOnFinished(new EventHandler<ActionEvent>(){
    @Override
    public void handle(ActionEvent event){
        ready = true;
    }
});
while (1==1){
    if (ready){
        ready = false;
        doTheThing();
        transition.setToValue();
        transition.play();
    }
}
Run Code Online (Sandbox Code Playgroud)

但它的作用与解决方案#2 相同。我宁愿不编程等待,但即使我这样做了,我也不确定如何在循环重复之前等待,同时不停止播放过渡。

我可以做什么?

java transition loops javafx wait

4
推荐指数
1
解决办法
3690
查看次数

构造函数(特征)不能应用于(类扩展特征)

我有一个特征“ Value”和一个扩展类“ Equation”,如下所示:

trait Value {
    def apply(in: Input): Int
}

class Equation ( eq: Array[Array[Value]] ) extends Value {
    override def apply (in: Input) = {
        eq.map(addend => addend.map( _(in) ).fold(1)(_ * _) ).fold(0)(_ + _)
    }

    def this(eq: String) = {
        this( eq.replace("-", "+-").split('+').map( _.split('*').map(s => Value(s)) ) )
    }
}
Run Code Online (Sandbox Code Playgroud)

(出于我的目的,没有必要进行除法,减法通过添加负数来解决。我打算在完成完整的字符串解析器后在此处删除辅助构造函数,这是一种不处理括号的快速解决方案)

在尝试将字符串解析为方程式的过程中,我创建了Array [Array [Equation]],因为方程式内部的方程式允许我处理括号的运算顺序。由于方程式是一个值,所以我希望可以将此Array [Array [Equation]]传递到方程式的构造函数中,但是随后出现以下错误:

overloaded method constructor Equation with alternatives:
[error]   (eq: String)spekular.misc.Equation <and>
[error]   (eq: Array[Array[spekular.misc.Value]])spekular.misc.Equation
[error]  cannot be applied to (Array[Array[spekular.misc.Equation]])
Run Code Online (Sandbox Code Playgroud)

知道我在做什么错吗?我尝试重写方程式的构造函数(请参见下文),但这给了我更多的错误,而且似乎比必需的更为复杂:

class …
Run Code Online (Sandbox Code Playgroud)

inheritance constructor scala traits

3
推荐指数
1
解决办法
42
查看次数

标签 统计

constructor ×1

inheritance ×1

java ×1

javafx ×1

loops ×1

scala ×1

traits ×1

transition ×1

wait ×1