![]() |
Корректная очистка Sound
Ребята! Подскажите, пожалуйста, по звуку - утекает память из-за звука. Звук останавливаю, ссылку на канал удаляю, но память похоже не чистится. Есть ли какие-то трики? На всякий случай кидаю кусок по остановке звука у меня в коде:
Код AS3:
Код AS3:
|
Звук потоковый?
|
Грузятся mp3-шки, и ещё часть звука упакована в swf-ки
|
нет, не потоковый
|
Почему вы решили, что память утекает? Сборщик мусора не чистит память сразу же, как только вы присвоите null. Выложите весь код целиком, или попробуйте собрать минимальный пример, демонстрирующий утечку.
|
Во флеше со звуком все плохо, да. Память там утекает изза того, что для каждого вызова sound.play() создается новый звуковой канал. Невозможно сохранить ссылку на старый. Мне этот механизм тоже дико не нравится и доставляет много проблем, но увы, с этим ничего не поделать.
Потом она конечно отчищается сборщиком мусора, но если каналов успевает накопиться много, то приложение в этот момент "фризит" |
caseyryan, вот меня и смущает пересоздание потоков каждый раз после паузы туда-сюда. Утечка там, где снимается с паузы, в моей игре это место, когда персонаж ходит, и открываешь какое-либо окно поверх персонажа, то звуки ставятся на паузу (птицы, шаги, строительство идёт, много звука). Эту логику я менять не могу, так задумано. Просто выключать не могу громкость тоже, потому что анимации, к которым привязаны все звуки, тоже ставятся на паузу. Ну и вот если открывать закрывать окошки, то естественно пауза в звуках (вернее последующее снятие с паузы) вызывает создание нового потока. Может можно как-то всё же пооптимизировать работу звуков? Как считаете?
Добавлено через 11 минут Tails, самый обыкновенный запуск, запуск звука Код AS3:
Постановка на паузу такая - Код AS3:
Код AS3:
|
Цитата:
|
undefined, я имела ввиду то, что звук привязан к анимациям логически, то есть мне нужно всё равно запускать с того места, где поставили анимацию на паузу, иначе звук оторван по логике будет от своей анимации
Добавлено через 2 минуты И так как нативного метода паузы нет, то я при паузе запоминаю место - Код AS3:
Код AS3:
|
апи звука действительно не удобное, без своих велосипедов или сторонних библиотек, пользоваться им практически невозможно.
Так в чём конкретно проявляется утечка, у вас не очищается память? Вы пробовали смотреть дебаггером состояние массивов, может быть, они не очищаются где-то у вас. |
| Часовой пояс GMT +4, время: 21:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.