| |
ска аплета метод init получает значение параметра - имя
звукового файла, и если этот параметр задан в документе HTML, записывает
полученное имя в поле m_ClipName:
param = getParameter(PARAM_ClipName);
if(param != null)
m_ClipName = param;
Далее создаются три кнопки, управляющие звучанием аплета:
btPlay = new Button("Play");
btLoop = new Button("Loop");
btStop = new Button("Stop");
Кнопка Stop блокируется, так как на данный момент проигрывание еще не
запущено:
btStop.disable();
Для блокирования вызывается метод disable, определенный в классе Button.
Подготовленные таким образом кнопки добавляются в окно аплета:
add(btPlay);
add(btLoop);
add(btStop);
Напомним, что работа с кнопками и другими органами управления в приложениях
Java была нами описана в 30 томе “Библиотеки системного программиста”, который
называется “Microsoft Visual J++. Создание приложений на языке Java. Часть 1”.
Последнее, что делает метод init перед тем как возвратить управление, это
получение ссылки на интерфейс AudioClip:
auClip = Applet.getAudioClip(getCodeBase(),m_ClipName);
Адрес URL каталога, в котором расположен аплет, определяется с помощью
метода getCodeBase, о котором мы говорили в предыдущей главе.
Метод action
Метод action получает управление, когда пользователь нажимает на одну из
кнопок, расположенных в окне аплета. В зависимости от того, какая именно кнопка
была нажата, выполняются различные действия.
Если пользователь нажал кнопку Play, вызывается метод play для запуска
однократного проигрывания звукового файла:
auClip.play();
btStop.enable();
Сразу после того как проигрывание будет запущено, приложение разблокирует
кнопку Stop, предоставляя пользователю возможность прервать звучание.
В том случае, когда пользователь нажал кнопку Loop, вызывается метод loop,
запусчкающий проигрывание звукового файла в цикле:
auClip.loop();
fLoopPlay = true;
btStop.enable();
После запуска устанавливается флаг fLoopPlay и разблокируется кнопка Stop.
И, наконец, если пользователь нажимает кнопку Stop, выполняется остановка
проигрывания методом stop:
auClip.stop();
fLoopPlay = false;
btStop.disable();
Флаг fLoopP
|
|