Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает _sound.close() 
:(
    Опции темы
webster
Дата 14.9.2008, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

Репутация: нет
Всего: 34



Всем привет!
У меня появилась такая проблема, при построении проигрывателя я создаю список воспроизведения при помощи объекта List, далее при щелчке в нем мне нужно, чтобы при выборе песни (при щелчке в списке) у меня прекращала проигрываться и ЗАГРУЖАТЬСЯ предыдущая песня и начинала воспроизводиться следующая выбранная.
Это все должен проделывать метод close() - останавливать не только вопроизведение, но и загрузку предыдущего файла, но выдается ошибка:

Код

playList.addEventListener(Event.CHANGE, listPlay);
function listPlay(event:Event):void {
    if(_sound) {
        _playing = false;
        soundPosition = 0;
        _sound.close();
    }
    _buffer = new SoundLoaderContext(10000); /* Задание 10-ти секундного буфера */
    _sound = new Sound(new URLRequest(event.target.selectedItem.data), _buffer);
    _channel = _sound.play();
    _playing = true; /* Начало проигрывания звука */
    //_sound.addEventListener(Event.COMPLETE, soundLoaded);
    _sound.addEventListener(ProgressEvent.PROGRESS, soundLoadedProgress);
}

Ошибка:
Код

Error #2029: This URLStream object does not have a stream opened.
    at flash.media::Sound/close()

PM MAIL   Вверх
bars80080
Дата 14.9.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



может воспроизведение останавливать .stop()
а загружать другую мелодию путём смены у этого объекта url? если это возможно конечно
PM MAIL WWW   Вверх
webster
Дата 14.9.2008, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

Репутация: нет
Всего: 34



Да, метод stop() поддерживается классом SoundChannel, но его удобнее использовать только для создания паузы.
Мнее же нужно, чтобы прекратилась загрузка предыдущей мелодии и началась загрузка следующей выбранной, иначе ползунок загрузки начинает прыгать туда-сюда, отображая загрузку и предыдущей песни (вот ее-то мне и надо отменить) и следующей выбранной.
PM MAIL   Вверх
bars80080
Дата 14.9.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



может вообще уничтожить экземпляр класса? каким-нибудь remove()
или есть ли у этого элемента глубина? по логике у любого клипа должна быть, тогда создание нового объекта на ней же должно вытеснить предыдущий

но это всё конечно хитровыверты. документации нет?
PM MAIL WWW   Вверх
webster
Дата 14.9.2008, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

Репутация: нет
Всего: 34



Кроме книги Лотта и хелпа практически ничего нет.  smile 
Я пробовал уничтожать экземпляр класса при помощи delete, но чего-то все-равно загрузка предыдущей песни не прерывается.

Вроде как решилась проблема, поставил в трай-катч:
Код

try {
_sound.close();
} catch (error:IOError) {
SoundMixer.stopAll();
}
Получается, что метод close() может прервать процесс загрузки потока данных только когда загрузка еще идет, а когда он уже закончился, то этот метод вызывает ошибку...?

Это сообщение отредактировал(а) webster - 14.9.2008, 22:47
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 3 | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.