![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2009
Сообщений: 38
|
Прошу помощи в проблемке,
есть прелоадер подгружиющий основную swf ку , но суть не в этом, пока производится загрузка идет проигрывание нескольких звуковых эффектов, так вот по событию загрузки содержимого отключаются звуки используемые в прелоадере: один из которых проигрывается через setTimeout, именно он продолжает играть дальше, и никак программно не могу его отключить в чем загвоздка? так выглядит интервал: 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); } Последний раз редактировалось Archi_xxx; 15.10.2009 в 01:53. |
|
|||||
|
Модрон-ветеринар
|
Дело не в setTimeout - это всего лишь отсрочка выполнения. Дело в другом.
У вас экземпляр класса Sound объявляется исключительно в области видимости функции (var дает такой эффект), нужно же его объявить вне функции: 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); } Последний раз редактировалось mooncar; 15.10.2009 в 01:57. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 38
|
уже выносил за пределы функции, не помогает (
что еще может быть? перекопал все что знал, именно с применением setTimeout такие грабли, просто не останавливаеться звук попробую накидать тестовую упрощенную сцену, можен действительно дело в чем то другом, просто уже устал искать.. Последний раз редактировалось Archi_xxx; 15.10.2009 в 02:09. |
|
|||||
|
Модрон-ветеринар
|
Копайте в других местах.
У меня с вашим кодом все нормально включается и отключается. В моем примере дождитесь начала звучания и нажмите кнопку. Последний раз редактировалось mooncar; 15.10.2009 в 02:16. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 38
|
действительно все рабочее уже сам проверил с кнопкой, звук у меня пропадает по событию onLoadInit , все звуки выключаються кроме тех что играют с применением setTimeout и setInterval , буду дальше копать... спасибо!
Добавлено через 13 часов 59 минут mooncar Вы не могли бы подсказать как запретить выполнение функции? или запрет выполнения кода (в идеале)? вот пример: 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); }; мне могло бы это помочь... Последний раз редактировалось Archi_xxx; 15.10.2009 в 19:19. |
|
|||||
|
Модрон-ветеринар
|
1. Что это за запись?
Так нельзя. Функцию нельзя объявлять в функции. Ссылку на функцию сделать можно, но такая запись исключена. Вытащите наружу muz2. 2. Зачем вы используете постоянный вызов через интервал вместо таймаута каждые 7 секунд? Мне непонятно. 3. Что означает "запретить"? Уберите код в комментарии, и он не будет выполняться. Или он должен выполняться только при каких-то условиях? |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 38
|
Я сам не знаю как я такое написал)
тем не менее это работает так как мне нужно. есть несколько таймаутов в сцене которые стартуют в разное время относительно друг друга (3000 - 6000 - 9000 мс. ) после того как они стартанули в них проигрывается звук с интервалом... собсна это оно и есть, возможно конечно криво.. "таймаута каждые 7 секунд" - так это же и будет интервал? таймаут с этим звуком каким то образом конфликтует с событием onLoadInit(оно на него не действует), когда событие onLoadInit произошло я думал отключить выполнение функции а не останавливать звук, про это и спрашивал.. а на счет кода, имел ввиду есть ли возможность инициализировать часть кода, и по событию его удалить? (не физически а морально=)) так как это для прелоадера и дальше он не используеться.. Последний раз редактировалось Archi_xxx; 15.10.2009 в 19:50. |
|
|||||
|
Модрон-ветеринар
|
да, я опечатался, имел ввиду, зачем вам стартовать звук каждые семь секунд.
По поводу "инициализации" - нужно просто правильно использовать функции. Выложите исходник, все очень запутано. Тут у вас и onLoadInit и звуковые объекты и задержки. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 38
|
я понимаю что напортачил с функциями, но как не странно они работают как нужно в прелоадере там уже черт ногу сломит и не хочеться переделывать.. проблема одна - не могу отключить звук после onLoadInit.
Исходник сильно навороченный, звук привязан к событиям в прелоадере, накидал с нуля только суть проблемы. откройте loader.fla и имитируйте загрузку на низкой скорости, там будет понятно. может у вас получиться , спасибо. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|