PDA

Просмотр полной версии : Управление звуком


DJ_Baton
04.11.2005, 01:50
В общем сейчас делаю двум заводам презентацию в восьмом флэше (кстати спасибо Макромедии, постарались на славу), так вот, столкнулся с проблемой, вот у меня есть мувик, от рута он находится на третьем уровне, что-то по типу: _root.mov1.mov2, в нём и идёт презентация, ну и соответственно голос диктора потоково стримом идёт, а так же в отдельный мувик в руте ( назовём его movX ) вынесена музыка, идёт она ивентом или закольцованным стримом это не принципиально (как хотите). Проблема в следующем, как мне создать 2 ползунка (скроллинга) что бы управлять громкостью голоса диктора и музыкой в презентации ?
Заранее очень благодарен ! :)

Gaen
04.11.2005, 03:04
сделай два объекта Sound и рули ими как хочешь...

DJ_Baton
04.11.2005, 04:31
а подробно можно описать, процедуру создания, какие скрипты куда сувать, помоги плиз.

Gaen
04.11.2005, 06:05
допустим у тя в библиотеке есть некий звук sound1
Тогда:

mySound=new Sound(); //создание объекта
mySound.attachSound("sound1"); //привязка к нему звука
mySound.start(); //начало воспроизведения
mySound.setVolume(50); //ставим громкость 50%

соответственно с помощью ползунка меняешь громкость

DJ_Baton
04.11.2005, 06:41
блин, ну специально же написал что звук потоковый, что есть Stream и он идёт в верхнем слое мувика, то есть привязан к анимации, аттач тут не прокатит... :(
или я ошибаюсь ?
система такая, есть 2 мувика допустим:
1) _root.music
2) _root.main.presentstion
там потоковый звук в слоях, нужно 2 ползунка для регулировки этого потокового звука, что бы было управление громкостью музыки и отдельно голосом диктора в презентации

DJ_Baton
04.11.2005, 14:01
Блин ну чё так помочь трудно, я думал тут сидят шарящие люди, как-никак тоже презентациями занимаетесь, и вопрос вроде у меня не сложный...

antonyrec
04.11.2005, 14:32
блин, ну специально же написал что звук потоковый, что есть Stream и он идёт в верхнем слое мувика, то есть привязан к анимации, аттач тут не прокатит... :(
или я ошибаюсь ?

Ошибаешься. Пока программно не подключишь звук, управлять его громкостью с помощью ползунка не получится.

DJ_Baton
04.11.2005, 15:45
но если он идёт потоково на слое в мувике _root.main.presentstion как его приаттачить тогда ?

DJ_Baton
06.11.2005, 19:28
Как я понял никто тут ничего вразумительного ответить не может :(
вопрос вроде звучал не сложно, есть конкретный мувиклип _root.main.presentstion в нём идёт звук потоково, стримом, нужен регулятор громкости для него, что так трудно ответить :(

iNils
06.11.2005, 19:49
http://www.flasher.ru/forum/showthread.php?t=69581

DJ_Baton
06.11.2005, 20:14
можешь тогда описать создание ползунка который будет управлять звуком у меня в _root.main.presentation, то есть подробно процесс от создания ползунка до параметров которые нужно указывать и где нужно указывать.
а то скрипты есть а я не пойму что куда указывать.
Просто расскажи как создать ползунок и какие скрипты куда вбивать

iNils
06.11.2005, 20:32
пихаешь код в _root.main.presentation
_global.snd = new Sound (this);
//snd.load("name")
//snd.attachSound("lib")
snd.setVolume (100);
snd.start ();
////////////////
_global.x = 100;
_global.y = 100;
_global.w = 100;
this.createEmptyMovieClip ("mcLine", 0);
this.mcLine._x = _global.x;
this.mcLine._y = _global.y;
this.mcLine.lineStyle (0, 0);
this.mcLine.lineTo (_global.w, 0);
this.createEmptyMovieClip ("mcVol", 1);
this.mcVol._x = _global.x + _global.w;
this.mcVol._y = _global.y;
this.mcVol.lineStyle (0, 0xFF0000);
this.mcVol.beginFill (0xFFFFFF);
this.mcVol.moveTo (-5, -10);
this.mcVol.lineTo (5, -10);
this.mcVol.lineTo (5, 10);
this.mcVol.lineTo (-5, 10);
this.mcVol.lineTo (-5, -10);
this.mcVol.endFill ();
//////////////////
this.mcVol.onPress = function () {
this.startDrag (false, _global.x, _global.y, _global.x + _global.w, _global.y);
this.onMouseMove = this.move;
};
this.mcVol.onRelease = function () {
this.stopDrag ();
delete this.onMouseMove;
};
this.mcVol.move = function () {
snd.setVolume (this._x - _global.x);
};

DJ_Baton
06.11.2005, 21:58
всё работает, спасибо, но оно генерит скроллинг, а как мне в руте создать мувиклип в котором будет мой скроллинг который будет управлять звуком в _root.main.presentation ?
опиши пожалуйста подробно процесс создания скроллинга и куда какой скрипт вбивать, а то я не очень хорошо в AS шарю...

DJ_Baton
06.11.2005, 22:29
в принципе я разобрался немного что к чему, просто создал мувиклип в руте и туда вбил:
_global.x = 100;
_global.y = 100;
_global.w = 100;
this.createEmptyMovieClip ("mcLine", 0);
this.mcLine._x = _global.x;
this.mcLine._y = _global.y;
this.mcLine.lineStyle (0, 0);
this.mcLine.lineTo (_global.w, 0);
this.createEmptyMovieClip ("mcVol", 1);
this.mcVol._x = _global.x + _global.w;
this.mcVol._y = _global.y;
this.mcVol.lineStyle (0, 0xFF0000);
this.mcVol.beginFill (0xFFFFFF);
this.mcVol.moveTo (-5, -10);
this.mcVol.lineTo (5, -10);
this.mcVol.lineTo (5, 10);
this.mcVol.lineTo (-5, 10);
this.mcVol.lineTo (-5, -10);
this.mcVol.endFill ();
//////////////////
this.mcVol.onPress = function () {
this.startDrag (false, _global.x, _global.y, _global.x + _global.w, _global.y);
this.onMouseMove = this.move;
};
this.mcVol.onRelease = function () {
this.stopDrag ();
delete this.onMouseMove;
};
this.mcVol.move = function () {
snd.setVolume (this._x - _global.x);
};

А ВОТ ЭТО:
_global.snd = new Sound (this);
//snd.load("name")
//snd.attachSound("lib")
snd.setVolume (100);
snd.start ();

вбил в мувик в котором нужно регулировать мой звук,
но всё-таки хотелось бы создать свой скроллинг, а не построенный скриптами на линейках.

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

iNils
06.11.2005, 22:59
Вот тебе компонент.
Выдели его и в панели Properties нажми вкладку Parametrs.
Name MovieClip - полный путь с именем мувиклипа где лежит музыка
Volume - начальная громкость

Если нужно два регулятора, то просто сдублируй компонент и укажи второй клип с другой музыкой.

DJ_Baton
06.11.2005, 23:29
огромное спасибо, сколько помню себя на флэшер.ру только ты нормально и помогаешь с траблами ;)

iNils
06.11.2005, 23:41
Тут таких полно.

DJ_Baton
07.11.2005, 03:14
Я проапгрейдил твой исходник, теперь он действительно самый классный регулятор звука :)

я вбил дополнительный кусочек скрипта
this.mcVol.onMouseUp = function () {
this.stopDrag ();
delete this.onMouseMove;
};
и теперь ползунок если резко рвануть в право или влево не привязывается к мышке ;)

DJ_Baton
07.11.2005, 03:47
можешь ещё раз пересмотреть свой исходник, а то когда я его дублирую, первому пишу в параметры _root.main.presentation, второму _root.music
так вот, музыка работает нормально, а ползунок диктора работает на оба сразу почему-то :(

Штрек
07.11.2005, 04:33
можешь ещё раз пересмотреть свой исходник, а то когда я его дублирую, первому пишу в параметры _root.main.presentation, второму _root.music
так вот, музыка работает нормально, а ползунок диктора работает на оба сразу почему-то :(
Потому что почти всё что здесь писали - мимо кассы....
Пока в newSound не забьёшь параметр привязки к клипу -
управляться будет весь звук в фильме......
Почитай Хэлп....

DJ_Baton
07.11.2005, 04:48
погоди, что-то ты путаешь, регулятор для музыки у меня управляет только музыкой, а вот регулятор для диктора почему-то управляет всем потоком, но так как регулятор для музыки работает так как надо, то что ты сказал уже гон получается...

iNils
07.11.2005, 11:48
Я проапгрейдил твой исходник, теперь он действительно самый классный регулятор звука :)

я вбил дополнительный кусочек скрипта
this.mcVol.onMouseUp = function () {
this.stopDrag ();
delete this.onMouseMove;
};
и теперь ползунок если резко рвануть в право или влево не привязывается к мышке ;)
Лучше замени в моем коде
this.mcVol.onRelease = function () {
на
this.mcVol.onRelease = this.mcVol.onReleaseOutside = function () {
так правильнее будет

По поводу регулятора громкости диктора. Если один звуковой поток привязан скажем к клипу mc1, а второй к клипу mc1.mc, то первый регулятор будет влиять на оба потока. То есть если поставить первый на значение 50, и второй тоже на 50, то реальная громкость второго будет 25 (половина от половины). Хотя по тому что ты написал, у тебя не должно быть таких проблем.

2Штрек, там все учитывается.

DJ_Baton
07.11.2005, 21:21
может я делал что-то не то, я регулятор копи-пастом второй рядом вставил, а в пропертисах прописал просто другой путь.
_root.music - это моя музыка, громкость указана в 50 указана
_root.main.presentation - это тут диктор говорит, громкость 100 указана
_root.main.vol тут лежат регуляторы

iNils
07.11.2005, 22:42
Скинь исходник, только без звука

DJ_Baton
08.11.2005, 01:59
весит без картинок и музыки 1,7 мег, при том без картинок там такая каша что фиг разберёшься :(

DJ_Baton
08.11.2005, 02:09
в принципе я могу попробовать восстановить только необходимое в том структурном виде в котором оно у меня в презентации...

iNils
08.11.2005, 02:18
Давай...

DJ_Baton
08.11.2005, 02:20
Скинь исходник, только без звука
вот восстановил структуру и поподписывал метками места где был звук

DJ_Baton
08.11.2005, 02:24
музыка в руте там вверху текст MUSIC
а диктор это 2 раза на белом фоне клацай
только что протестил голый исходник, глючит так же как и старый

iNils
08.11.2005, 11:38
Ты чудо в перьях :)
1. Название мувиклипа у тебя MAIN, а в регкляторе громкости написано main. 7-ка и 8-ка чувствительны к регистру
2. Ты зачем в библиотеке создал копию компонента VolumeBar copy и идентификатором libVolumeBarClass2 и и зарегистрировал оба к одному классу? Надо на СЦЕНЕ ПРОСТО СДЕЛАТЬ КОПИЮ, А НЕ В БИБЛИОТЕКЕ! Сначала сделай swap для мувиклипа, а потом убей а библиотеке VolumeBar copy.