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

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

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

Регистрация: Mar 2010
Сообщений: 30
По умолчанию проблема: музыка начинает играть в каждом кадре

привет!

Столкнулся с проблемой, к анимации добавил кнопку, и в при нажатии на кнопку сделал, так что бы через onEnterFrame и if у меня отслеживалось, что сначала, прозрачность кнопки и фона падает до нуля, а потом начинает проигрываться анимация. и когда потребовалось туда вставить звук, то вышло что функция, которая через Sound берет из библиотеки музыкальный трек и воспроизводит, вызывается в каждом кадре, и выходит такая какофония.

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

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

Добавлено через 58 минут
я только что, придумал хитрость, к анимации добавил слой, где первый кадр - пустой, и звук не воспроизводиться сразу(мувик на сцене, с _visible = 0 и .stop()), и теперь нажав на кнопку все вроде бы хорошо(убрал функцию воспроизводящий и импортирующий звук, и музыка не множиться). но интересно на будущие узнать как более правильно решать такие задачи, кодом?
как?

Старый 21.12.2010, 16:11
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 2  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Кодом - да. Читайте класс Sound. - attachSound()< Start и Stop.
Дождаться пока звук доиграет и не запускать в это время новый - onSoundComplete
Класс простенький. Только имейте ввиду что громкость всех звуков, лежащих в ОДНОМ клипе, к примеру на _root - будет одинаковая.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 21.12.2010, 19:41
Blackjack1616 вне форума Посмотреть профиль Отправить личное сообщение для Blackjack1616 Найти все сообщения от Blackjack1616
  № 3  
Ответить с цитированием
Blackjack1616

Регистрация: Mar 2010
Сообщений: 30
тоесть если в энтерфрейме я вызову что то подобное, звук не будет множиться?

mySound.onSoundComplete = function() {
this.start();
};

Старый 21.12.2010, 19:47
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 4  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
нет. это СОБЫТИЕ. Оно НАСТУПАЕТ само по себе, когда музыка проигралась.
Соотв. функцию переключения или запуска не надо запускать самому.
Никаких доп. телодвижений делать не надо.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 21.12.2010, 20:09
Blackjack1616 вне форума Посмотреть профиль Отправить личное сообщение для Blackjack1616 Найти все сообщения от Blackjack1616
  № 5  
Ответить с цитированием
Blackjack1616

Регистрация: Mar 2010
Сообщений: 30
ээ... мне в моем случае - зацикливать ее не надо. мне ее надо спустя какие то эффекты, запустить анимацию, и музыку(а это файл, с нарезкой треков, которые подобранны под анимацию и синхронизированны с ней).

с классом sound - проблемм не возникает, управление им хорошо гуглица и находиться многое на этом форуме.

Код AS1/AS2:
button.onPress = function(){
		button.gotoAndStop(3);
		this.onEnterFrame = function(){
			bgbg._alpha -= 3;
			if(bgbg._alpha<=0){
				bgbg._alpha=0;
				removeMovieClip(bgbg);
			}
			button._alpha-=3;
			if(button._alpha<=0){
				bgbg._alpha=0;
				//removeMovieClip(bgbg);
				button._x=-100;
 
			}
			if(button._alpha<=30){
				movie._visible = true;
				movie.play();
                                myMus.start(0,0);\\и вот тут вот чудеса происходить начинают
 
			}
			if(movie._currentframe >= 722){
				movie.gotoAndStop(722);
			}
		}
	}
в приведенном коде, можно увидеть, что в каждом кадре, идет запуск звука(ранее созданного в другой функции). возможно я не знаю, просто, как динамически отслеживать ифами изменения например переменных, не используя onEnterFrame(пробовал с updateAfterEvent - не получаеться).

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

Старый 22.12.2010, 13:06
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 6  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Вам надо определить - проигрывается ли в наастоящий момент данный звук.
1. Заведите переменную, которая выставляется в TRUE при первом запуске звука и в FALSE по onSoundComplete и при инициализации. Соотв
Код AS1/AS2:
if ( !звук_звучит ) myMus.start(0,0);
2. Почитайет про .position
Код AS1/AS2:
if ( myMus.position == 0 ) start(0,0);
НИкаких велосипедов и хитростей. Просто методжы класа и здравый смысл. А так, пока альфа у вас менье 30, а она меньше, звук у ас запускается каждый раз.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 25.12.2010, 20:39
Blackjack1616 вне форума Посмотреть профиль Отправить личное сообщение для Blackjack1616 Найти все сообщения от Blackjack1616
  № 7  
Ответить с цитированием
Blackjack1616

Регистрация: Mar 2010
Сообщений: 30
ухты! спасибо, большое, буду разбираться.

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

Теги
sound , музыка
Опции темы
Опции просмотра

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

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


 


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


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