PDA

Просмотр полной версии : delete sound - не удаляется


Czar
09.04.2008, 19:04
делал прослушку потокового звука, то есть как бы превьюшка мп3-файла...
была проблема с остановкой звука, нашёл на форуме, темку где советовали удалять контейнер со звуком..в общем у меня почему то не удаляется и звук получается вообще ведёт себя непонятным образом: при загрузке начинает играть как и полагается, но потом даже если оатсанавливаешь, он видать докачивает поток и начинает играть... в общем в прикреплённом файле пример моей работы...взято всё с приера из самого флэша....

qazwsx
09.04.2008, 19:25
Не смотрю файл но... Перед удалением ты останавливаеш звук?

Czar
09.04.2008, 19:37
да:)) а не надо?


var flag:Boolean;
flag = false;


_root.playstop.onRelease = function() {
if (flag) {
_root.playstop.gotoAndStop(1);
my_sound.stop();
delete my_sound;
flag = false;
} else {
var my_sound:Sound = new Sound();
flag = true;
_root.playstop.gotoAndStop(2);
my_sound.loadSound('http://adm.umuza.com/01.07.mp3',true);//_level0.pathToSong
my_sound.onLoad = function(success:Boolean) {
if (success) {

my_sound.start();

}
};/**/
}

};

вот код, кому лень качать

etc
09.04.2008, 20:07
А с чего вы взяли, что ваша локальная переменная, созданная при первом вызове функции, доживет до второго?

Czar
09.04.2008, 20:46
хороший вопрос!! можно сказать даже отличный, спасибо за него. натолкнул на верную мысль....

следующий вопрос:
скрипт работает уже почти так, как я хочу, но всё же при нажатии на плэй, он начинает играть, НО потом обрывается через время и начинает заново. видать поток докачивается и трэк начинает играть заново.. как этого избежать???
вот собственно исправленный код

var flag:Boolean;
flag = false;

_root.playstop.onRelease = function() {
if (flag) {
_root.playstop.gotoAndStop(1);
delete _global.my_sound;
flag = false;
} else {
_global.my_sound = new Sound();
flag = true;
_root.playstop.gotoAndStop(2);
_global.my_sound.loadSound('http://adm.umuza.com/01.07.mp3',true);//_level0.pathToSong
_global.my_sound.onLoad = function(success:Boolean) {
if (success) {

_global.my_sound.start();

}
};
}

};

etc
09.04.2008, 22:31
delete удаляет ссылку на объект Sound, но сам звук продолжает жить в памяти и звучать. Где вы его останавливаете *— я не вижу.

Czar
10.04.2008, 12:11
хорошо, и куда его запихнуть???
и разве он в этом объекте не хранится??

действия у меня происходят следующие:
нажимаю на кнопку, начинается потоковое проигрывание трэка, потом по прошествии времени, необходимого для закачки полного трэка музыка обрываети и начинает играть заново....
кнопка "стоп" действует!!! в обоих случаях...
мне необходимо разобраться почему происходит полная загрузка трэка ипроигрывание его сначала с обрыванием потокового звука....
ЗЫ: можно на "ты"...а то преподом себя чувствую;)