的SoundFile
构造函数需要传递到它的构造函数的PApplet
一个实例。
当您在草图中时,可以使用this
关键字来指代PApplet
实例。
但由于您在Sound
班,因此您的this
关键字指的是Sound
实例。这就是你传递给构造函数SoundFile
的内容。 SoundFile
不知道你的Sound
类是什么,所以你会得到那个错误。
要解决此问题,您必须将PApplet
实例传递给SoundFile
构造函数。
选项1:传递PApplet
实例为您Sound
构造函数的参数,然后传递参数到SoundFile
构造。你Sound
构造可能是这样的:
void setup(){
Sound yourSound = new Sound(this);
}
选项2:
Sound(PApplet sketch){
file = new SoundFile(sketch, "upNoise.wav");
}
然后在你的处理草图,你会使用this
关键字通过PApplet
到您Sound
构造由于处理将所有类视为内部类,也可以使用稍微奇怪的语法来引用“外部此”,方法是使用草图的名称,而不是从草图中传入this
:
Sound(){
file = new SoundFile(YourSketchName.this, "upNoise.wav");
}
但是,这是一个有点古怪,并不会在所有情况下工作,所以你可能会更好过只是路过this
从草图。
更多信息可在the reference找到。
感谢第一个选项为我工作! –