Я разместил это раньше, но это не совсем соответствует стандарту stackoverflow. Я очистил код и сформулировал свой вопрос немного больше, так что вот так:Как создать и использовать объект внутри внутреннего класса вложенного класса?
Я делаю игру с двумя игроками астероидов в апплете для проекта CS1. Я пытаюсь понять, как реализовать звуковые эффекты, используя методы, которые я могу вызвать в определенное время. Я нашел этот учебник (http://www.dreamincode.net/forums/topic/14083-incredibly-easy-way-to-play-sounds/) при выполнении этого, но у меня возникли проблемы с синтаксисом вложенного цикла.
Как создать объект «Звук» в классе Sound из другого класса (в моем случае, AsteroidsGame.java)?
Из-за беспорядочности кода учебника, здесь для улучшения читаемости.
//Import Statements
import java.applet.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class Audioapp extends JApplet
{
public class Sound // Holds one audio file
{
private AudioClip song; // Sound player
private URL songPath; // Sound path
Sound(String filename)
{
try
{
songPath = new URL(getCodeBase(),filename); // Get the Sound URL
song = Applet.newAudioClip(songPath); // Load the Sound
}
catch(Exception e){} // Satisfy the catch
}
//Loops audio file
public void playSound()
{
song.loop();
}
//Stops audio file
public void stopSound()
{
song.stop();
}
//Plays audio file once
public void playSoundOnce()
{
song.play();
}
} //Closes Sound()
public void init()
{
Sound testsong = new Sound("song.mid");
testsong.playSound();
}
} //Closes Audioapp()
Edit 1: Просто вспомнил кто-то из последней нитки предложил мне после того, что это делает, когда я скомпилировать/запустить его. Эта .java сама по себе ничего не делает; но он действительно компилируется без ошибок при размещении с остальной частью моего проекта.
Редактировать 2: Большое спасибо Zim-Zam за вашу помощь, если кто-нибудь найдет эту тему и имеет такую же проблему, проконсультируйтесь с его комментариями.
FYI 'поймать (Exception е) {}' никогда не является хорошей идеей. –
* «апплет для проекта CS1» * См. [Почему преподаватели CS перестают преподавать апплеты?] (Http://programmers.stackexchange.com/questions/196499/why-should-cs-teachers-stop-teaching-applets) –
* ".. кто-то из последней темы .." * В этом случае, пожалуйста, в будущем отредактируйте свой вопрос, а не удалите его и запустите новый. Люди, которые предлагают советы, обычно не любят повторять себя. –