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

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

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

Регистрация: Oct 2008
Сообщений: 12
По умолчанию по плавному вкл/выкл звука (код с flashist.ru)

Хочу попросить помощи с кодом, который я взял с сайта flashist.ru - это плавное включение/выключение звука в ролике (пробовал писать автору, но ответа нет). Этот код работает замечательно, но в моем случае он немного не подходит ввиду того, что он выключает/включает звук во всем мувиклипе; собственно в чем вопрос - можно ли его адаптировать(если возможно то как?), чтобы он выключал/включал плавно только определенный звук/музыку?

Вот сам код:

Код AS1/AS2:
btn_mc.gotoAndPlay(2);
var s_sound:Sound = new Sound(this);
s_sound.attachSound("Music");
s_sound.start(0, 99999);
s_sound.onSoundComplete = function() {
	this.start(0, 99999);
};
btn_mc.onRelease = function() {
	clearInterval(_root.sound_int);
	if (_root.s_sound.getVolume()<100) {
		_root.sound_int = setInterval(_root.soundOn_func, 50, 10);
		this.gotoAndPlay(7);
	} else {
		_root.sound_int = setInterval(_root.soundOff_func, 50, 10);
		this.gotoAndPlay(2);
	}
};
 
function soundOff_func(varDelta:Number) {
	_root.s_sound.setVolume(_root.s_sound.getVolume()-5);
	if (_root.s_sound.getVolume()<=varDelta) {
		clearInterval(_root.sound_int);
		_root.s_sound.setVolume(0);
	}
}
function soundOn_func(varDelta:Number) {
	_root.s_sound.setVolume(_root.s_sound.getVolume()+varDelta);
	if (_root.s_sound.getVolume()>=100) {
		clearInterval(_root.sound_int);
		_root.s_sound.setVolume(100);
	}
}

Старый 12.07.2009, 06:19
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 2  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Для каждого объекта объявляете свой звук.
Т.е. s_sound...s_sound2...s_sound3...

Старый 13.07.2009, 11:17
invictus вне форума Посмотреть профиль Отправить личное сообщение для invictus Найти все сообщения от invictus
  № 3  
Ответить с цитированием
invictus

Регистрация: Oct 2008
Сообщений: 12
не помогает это... дело в том, что код, как я понимаю завязан на _root'e, и скорее всего в этом проблема, но я спрашиваю, потому что не знаю как сделать так, чтобы он не влиял на все звуки в мувиклипе


Последний раз редактировалось invictus; 13.07.2009 в 12:02.
Старый 13.07.2009, 12:45
lii вне форума Посмотреть профиль Отправить личное сообщение для lii Найти все сообщения от lii
  № 4  
Ответить с цитированием
lii

Регистрация: Apr 2009
Сообщений: 1
там же есть урок Учимся работать со звуком
если объединить эти два урока то получится то что вам нужно

Старый 14.07.2009, 14:46
invictus вне форума Посмотреть профиль Отправить личное сообщение для invictus Найти все сообщения от invictus
  № 5  
Ответить с цитированием
invictus

Регистрация: Oct 2008
Сообщений: 12
я смотрел оба урока, и ничего нового для решения моей проблемы я не нашел, а спрашиваю здесь, на этом форуме, потому что не понимаю что надо сделать, поэтому и прошу помощи....
понимаю, возможно меня не совсем правильно поняли, но я прошу указать мне, из-за каких эл-тов кода звук регулируется во всем мувиклипе, и по возможности/желанию указать, что надо изменить, чтобы было так как мне хотелось бы...

Старый 14.07.2009, 15:49
zveryuka вне форума Посмотреть профиль Отправить личное сообщение для zveryuka Найти все сообщения от zveryuka
  № 6  
Ответить с цитированием
zveryuka
 
Аватар для zveryuka

Регистрация: Nov 2007
Сообщений: 165
вот... нормально все описано)

http://www.flasher.ru/forum/showthre...t=%E7%E2%F3%EA
__________________
Да здравствует то, благодаря чему мы не смотря ни на что!

Старый 17.07.2009, 10:42
invictus вне форума Посмотреть профиль Отправить личное сообщение для invictus Найти все сообщения от invictus
  № 7  
Ответить с цитированием
invictus

Регистрация: Oct 2008
Сообщений: 12
как смог, поробовал, без результатов я полагаю, что причина в том, что в коде регулирование звука завязано с _root'ом - это можно как-либо изменить, чтобы отношение было только к одному звуку? на что его заменить? я пробовал на this, имя символа со звуком (это конечно оказалось неправльно)...

Добавлено через 8 часов 7 минут
пробовал также назначать через lib_sound.... также не помогло

Добавлено через 19 часов 4 минуты
попробовал учесть все идеи, которые здесь дали, получилась такая конструкция
в начале мувиклипа:
Код AS1/AS2:
this.createEmptyMovieClip("kkt_mc", this.getNextHighestDepth()); 
this.createEmptyMovieClip("bg_s", this.getNextHighestDepth());
var kkt:Sound = new Sound(_root.kkt_mc);
kkt.attachSound("kkt");
var muzika:Sound = new Sound(_root.bg_s);
muzika.attachSound("muzika");
где собственно первый - kkt_mc - это назначение для звука, а bg_s - фоновая музыка;
==далее==
в нужном месте, для звука стоит kkt.start(0, 1), а для кнопки с музыкой такое:
Код AS1/AS2:
btn_mc.gotoAndPlay(2);
muzika.start(0, 99999);
muzika.onSoundComplete = function() {
	 this.start(0, 99999);
};
btn_mc.onRelease = function() {
	clearInterval(_root.bg_s.sound_int);
	if (_root.bg_s.muzika.getVolume()<100) {
		_root.bg_s.sound_int = setInterval(_root.bg_s.soundOn_func, 50, 10);
		this.gotoAndPlay(7);
	} else {
		_root.bg_s.sound_int = setInterval(_root.bg_s.soundOff_func, 50, 10);
		this.gotoAndPlay(2);
	}
};
function soundOff_func(varDelta:Number) {
	_root.bg_s.muzika.setVolume(_root.bg_s.muzika.getVolume()-5);
	if (_root.bg_s.muzika.getVolume()<=varDelta) {
		clearInterval(_root.bg_s.sound_int);
		_root.bg_s.muzika.setVolume(0);
	}
}
function soundOn_func(varDelta:Number) {
	_root.bg_s.muzika.setVolume(_root.bg_s.muzika.getVolume()+varDelta);
	if (_root.bg_s.muzika.getVolume()>=100) {
		clearInterval(_root.bg_s.sound_int);
		_root.bg_s.muzika.setVolume(100);
	}
}
в итоге что получается - если включать ролик - все проходит в штатном режиме - музыка играет, звуки есть в нужных местах - все супер, до того, как я хочу плавно выключить эту музыку вообщем происходит следующее - кнопка отвечающая за плавное вкл/выкл музыкы переходит в нужное состояние для положение "выкл" так как изначально, когда ролик начинает воспроизводится, она в состоянии вкл(это то как и надо, тут все ок), но не смотря на кнопку музыка не останавливается, а при попытке еще раз нажать на кнопку с музыкой - ничего не происходит, можно сказать, кнопка зависает и не меняет положения....
также по предложению свыше пробовал там где начало кода и аттач звуков с музыкой накинуть
Код AS1/AS2:
_root.bg_s.muzika=muzika;
- но сим не дало эффекта...
короч, у меня окончательный тупняк - все рабочее, но не так как надо, флэш на код не ругается ни там ни сям...


Последний раз редактировалось invictus; 17.07.2009 в 19:22.
Старый 18.07.2009, 12:51
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Код AS1/AS2:
this.createEmptyMovieClip ("frontSound", this.getNextHighestDepth ());
var snd:Sound = new Sound (this.frontSound);
snd.attachSound ("snd");
///
this.createEmptyMovieClip ("bgSound", this.getNextHighestDepth ());
var music:Sound = new Sound (this.bgSound);
music.attachSound ("music");
///
btn_mc.gotoAndPlay (2);
music.start (0, 99999);
music.onSoundComplete = function () {
	this.start (0, 99999);
};
///
var flagMute:Boolean = false;
var interval:Number
///
btn_mc.onRelease = function () {
	clearInterval (interval);
	if (flagMute) {
		interval = setInterval (soundOff, 50, 10);
		this.gotoAndPlay (2);
	} else {
		interval = setInterval (soundOn, 50, 10);
		this.gotoAndPlay (7);
	}
	flagMute = !flagMute;
};
function soundOff (varDelta:Number) {
	music.setVolume (music.getVolume () - 5);
	if (music.getVolume () <= varDelta) {
		clearInterval (interval);
		music.setVolume (0);
	}
}
function soundOn (varDelta:Number) {
	music.setVolume (music.getVolume () + varDelta);
	if (music.getVolume () >= 100) {
		clearInterval (interval);
		music.setVolume (100);
	}
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Oct 2008
Сообщений: 12
я очень благодарен комраду iNils за решения проблемы )) но вот чудесным образом этот код как-то повлиял на прелоадер ролика, раньше он работал с самого начала - т.е. с 1%, а теперь я долго любуюсь пустым экраном в течении n-ого времени, а потом вдруг появляется прелоадер сразу на процентах ~75-80% - в чем может быть загвостка? да и как мог код на кнопку повлиять на прелоадер.... X)

Добавлено через 19 часов 1 минуту
-----
ага, выяснил, повлияло то, что на файле музыки был проставлен линкедж с экспортом в первый кадр... как теперь быть?

Старый 19.08.2009, 17:22
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
ага, выяснил, повлияло то, что на файле музыки был проставлен линкедж с экспортом в первый кадр...
1. Убирает галку.
2. Создаете пустой клип, переносите его во второй кадр основного таймлайна.
3. В первом кадре клипа пишите stop ();
4. Во втором кадре клипа в таймлайн вставляете ваш звук.

Таким образом мы импортируем звук в swf, но не в первый кадр, что дает прелоадеру из первого кадра нормально работать.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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