Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.10.2009, 01:35
Archi_xxx вне форума Посмотреть профиль Отправить личное сообщение для Archi_xxx Найти все сообщения от Archi_xxx
  № 1  
Ответить с цитированием
Archi_xxx

Регистрация: Apr 2009
Сообщений: 38
По умолчанию setTimeout и выключение звука

Прошу помощи в проблемке,
есть прелоадер подгружиющий основную swf ку , но суть не в этом, пока производится загрузка идет проигрывание нескольких звуковых эффектов, так вот по событию загрузки содержимого отключаются звуки используемые в прелоадере:
Код AS1/AS2:
my_sound**.stop();
один из которых проигрывается через setTimeout, именно он продолжает играть дальше, и никак программно не могу его отключить
в чем загвоздка?
так выглядит интервал:
Код AS1/AS2:
var my_timedProcess:Number = setTimeout(my_delayedFunction, 2800);
function my_delayedFunction () {
var tween_x11:Tween = new Tween(_root.W, "_x", Back.easeInOut, 582,1100, 0.5, true);
var my_sound3:Sound = new Sound();
my_sound3.attachSound("Flame woosh_2.mp3");
my_sound3.start (0,1);
}
почему в этом случии не работает
Код AS1/AS2:
my_sound3.stop();


Последний раз редактировалось Archi_xxx; 15.10.2009 в 01:53.
Старый 15.10.2009, 01:52
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Дело не в setTimeout - это всего лишь отсрочка выполнения. Дело в другом.
У вас экземпляр класса Sound объявляется исключительно в области видимости функции (var дает такой эффект), нужно же его объявить вне функции:
Код AS1/AS2:
var my_timedProcess:Number = setTimeout(my_delayedFunction, 2800);
var my_sound3:Sound = new Sound();
function my_delayedFunction () {
   var tween_x11:Tween = new Tween(_root.W, "_x", Back.easeInOut, 582,1100, 0.5, true);
   my_sound3.attachSound("Flame woosh_2.mp3");
   my_sound3.start (0,1);
}
Теперь звук my_sound3 должен нормально отключаться:
Код AS1/AS2:
my_sound3.stop();


Последний раз редактировалось mooncar; 15.10.2009 в 01:57.
Старый 15.10.2009, 02:00
Archi_xxx вне форума Посмотреть профиль Отправить личное сообщение для Archi_xxx Найти все сообщения от Archi_xxx
  № 3  
Ответить с цитированием
Archi_xxx

Регистрация: Apr 2009
Сообщений: 38
уже выносил за пределы функции, не помогает (
что еще может быть?
перекопал все что знал, именно с применением setTimeout такие грабли, просто не останавливаеться звук
Код AS1/AS2:
my_sound3.stop();
попробую накидать тестовую упрощенную сцену, можен действительно дело в чем то другом, просто уже устал искать..


Последний раз редактировалось Archi_xxx; 15.10.2009 в 02:09.
Старый 15.10.2009, 02:14
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Копайте в других местах.
У меня с вашим кодом все нормально включается и отключается. В моем примере дождитесь начала звучания и нажмите кнопку.
Вложения
Тип файла: rar sound.rar (117.2 Кб, 52 просмотров)


Последний раз редактировалось mooncar; 15.10.2009 в 02:16.
Старый 15.10.2009, 02:33
Archi_xxx вне форума Посмотреть профиль Отправить личное сообщение для Archi_xxx Найти все сообщения от Archi_xxx
  № 5  
Ответить с цитированием
Archi_xxx

Регистрация: Apr 2009
Сообщений: 38
действительно все рабочее уже сам проверил с кнопкой, звук у меня пропадает по событию onLoadInit , все звуки выключаються кроме тех что играют с применением setTimeout и setInterval , буду дальше копать... спасибо!

ps а как еще можно проиграть звук из библиотеки кроме attachSound ?

Добавлено через 13 часов 59 минут
mooncar Вы не могли бы подсказать как запретить выполнение функции? или запрет выполнения кода (в идеале)?

вот пример:
Код AS1/AS2:
var my_sound3:Sound = new Sound();
var my_timedProcess1:Number = setTimeout(my_delayed1, 9000);
function my_delayed1 () {
function muz2()
{
my_sound3.attachSound("Flame woosh_2.mp3");
my_sound3.start (0,1);
}
setInterval(muz2, 7*1000);
};
в моем случии запрет ф-и muz2 (либо my_delayed1)
мне могло бы это помочь...


Последний раз редактировалось Archi_xxx; 15.10.2009 в 19:19.
Старый 15.10.2009, 19:30
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1. Что это за запись?
Код AS1/AS2:
function my_delayed1 () {
function muz2()
{
Так нельзя. Функцию нельзя объявлять в функции. Ссылку на функцию сделать можно, но такая запись исключена. Вытащите наружу muz2.
2. Зачем вы используете постоянный вызов через интервал вместо таймаута каждые 7 секунд? Мне непонятно.
3. Что означает "запретить"? Уберите код в комментарии, и он не будет выполняться. Или он должен выполняться только при каких-то условиях?

Старый 15.10.2009, 19:46
Archi_xxx вне форума Посмотреть профиль Отправить личное сообщение для Archi_xxx Найти все сообщения от Archi_xxx
  № 7  
Ответить с цитированием
Archi_xxx

Регистрация: Apr 2009
Сообщений: 38
Я сам не знаю как я такое написал)
тем не менее это работает так как мне нужно.
есть несколько таймаутов в сцене которые стартуют в разное время относительно друг друга (3000 - 6000 - 9000 мс. ) после того как они стартанули в них проигрывается звук с интервалом... собсна это оно и есть, возможно конечно криво..
"таймаута каждые 7 секунд" - так это же и будет интервал?

таймаут с этим звуком каким то образом конфликтует с событием onLoadInit(оно на него не действует), когда событие onLoadInit произошло я думал отключить выполнение функции а не останавливать звук, про это и спрашивал..

а на счет кода, имел ввиду есть ли возможность инициализировать часть кода, и по событию его удалить? (не физически а морально=)) так как это для прелоадера и дальше он не используеться..


Последний раз редактировалось Archi_xxx; 15.10.2009 в 19:50.
Старый 15.10.2009, 20:11
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от Archi_xxx Посмотреть сообщение
.
"таймаута каждые 7 секунд" - так это же и будет интервал?
да, я опечатался, имел ввиду, зачем вам стартовать звук каждые семь секунд.
По поводу "инициализации" - нужно просто правильно использовать функции.
Выложите исходник, все очень запутано. Тут у вас и onLoadInit и звуковые объекты и задержки.

Старый 15.10.2009, 21:21
Archi_xxx вне форума Посмотреть профиль Отправить личное сообщение для Archi_xxx Найти все сообщения от Archi_xxx
  № 9  
Ответить с цитированием
Archi_xxx

Регистрация: Apr 2009
Сообщений: 38
я понимаю что напортачил с функциями, но как не странно они работают как нужно в прелоадере там уже черт ногу сломит и не хочеться переделывать.. проблема одна - не могу отключить звук после onLoadInit.

Исходник сильно навороченный, звук привязан к событиям в прелоадере, накидал с нуля только суть проблемы.
откройте loader.fla и имитируйте загрузку на низкой скорости, там будет понятно.
может у вас получиться , спасибо.
Вложения
Тип файла: rar setTimeout.rar (245.9 Кб, 43 просмотров)

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.