PDA

Просмотр полной версии : Дело жизни и смерти - Проблема со звуком


TheStriker
16.09.2005, 17:15
Привет Всем!!!

Есть проблема - и я еще никогда с таким не встречался.

Есть файлик - !!!Вот здесь!!!(300Кб+-) (http://mmstudio.madpage.com/2ndED.swf)

Проблема такова - когда мы в первый раз включаем инструменты: звуки не синхронизируются. Но если каждый инструмент ВЫКЛ затем ВКЛ заново: всё синхронно :confused: :confused: :confused:

Уже и не знаю что с этим делать???

Может Вы подскажете что делать??

Заранее Всем СПАСИБО за уделенное внимание!

Штрек
16.09.2005, 22:23
Посмотри в Хэлпе -
Sound.duration
и
Sound.position
Sound.duration для всех твоих лупов должно быть
одинаковым /подравнять можно напр. в Cool Edit Pro/.
А стартовать на кнопке надо с параметром
Sound.position первого запущенного звука -
Sound2.start(Sound1.position/1000, 10000)
Что то в таком духе.......

TheStriker
17.09.2005, 02:41
Спасибо за помощь - но проблема не в том. Duration - одинаковый, тут какой-то баг в коде.

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

Пример.
1. Клавиши - Вкл.
Ударные - вкл. не синхронно играет
2. клавиши - вкл.
Ударные - вкл\выкл\вкл - играет уже синхронно

Прикрепленный файлик надо разкомпилить и смотреть баг где-то в коде.

Штрек
17.09.2005, 03:23
Прикрепленный файлик надо разкомпилить и смотреть баг где-то в коде.
А не проще ли выложить для правки код /который на кнопках/ сюда???????

TheStriker
17.09.2005, 03:26
Да без вопросов!

// Action script...

// [onClipEvent of sprite 2 in frame 41]
on (rollOver)
{
gotoAndPlay(2);
}

on (rollOut)
{
gotoAndPlay(6);
}

onClipEvent (load)
{
instru = "k";
s_play = _root.splay;
keyplay = false;
vol = 15;
}

onClipEvent (enterFrame)
{
instrugen = instru + _root.k;
if (con == 2)
{
if (_root.drum.drumplay == true)
{
trackpos = _root.drum.i_sound.position / 1000;
} // end if
if (_root.guitar.guiplay == true)
{
trackpos = _root.guitar.i_sound.position / 1000;
} // end if
} // end if
if (con == 3)
{
if (_root.guitar.guitar == "first")
{
trackpos = _root.guitar.i_sound.position / 1000;
trace("gui:" + trackpos);
} // end if
if (drum == "first")
{
trackpos = _root.drum.i_sound.position / 1000;
trace("drum:" + trackpos);
} // end if
} // end if
if (s_play == 1)
{
i_sound.onSoundComplete = function ()
{
i_sound.start();
i_sound.setVolume(vol);
};
} // end if
}

on (release)
{
_root.warning._visible = false;
trace(_root.drum.drum);
i_sound = new Sound(this);
i_sound.attachSound(instrugen);
if (s_play == 0)
{
keyplay = true;
if (_root.drum.drumplay == false && _root.guitar.guiplay == false)
{
keys = "first";
con = 1;
} // end if
if (_root.drum.drumplay == true && _root.guitar.guiplay == true)
{
con = 3;
} // end if
if (_root.drum.drumplay == true || _root.guitar.guiplay == true)
{
con = 2;
} // end if
switch (con)
{
case 1:
{
i_sound.start();
i_sound.setVolume(vol);
break;
}
case 2:
{
i_sound.start(trackpos, 0);
i_sound.setVolume(vol);
break;
}
case 3:
{
i_sound.start(trackpos, 0);
i_sound.setVolume(vol);
break;
}
} // End of switch
s_play++;
}
else if (s_play == 1)
{
keyplay = false;
i_sound.stop();
s_play--;
keys = "second";
} // end if
}

// [onClipEvent of sprite 3 in frame 41]
on (rollOver)
{
gotoAndPlay(2);
}

on (rollOut)
{
gotoAndPlay(6);
}

onClipEvent (load)
{
instru = "d";
s_play = _root.splay;
drumplay = false;
drum = "na";
trace(drum);
if (s_play == 0)
{
instrugen = instru + _root.j;
i_sound = new Sound(this);
i_sound.attachSound(instrugen);
i_sound.start(0, 99);
i_sound.stop();
drumplay = false;
} // end if
}

onClipEvent (enterFrame)
{
instrugen = instru + _root.j;
if (con == 2)
{
if (_root.keys.keyplay == true)
{
trackpos = _root.keys.i_sound.position / 1000;
trace(trackpos);
} // end if
if (_root.guitar.guiplay == true)
{
trackpos = _root.guitar.i_sound.position / 1000;
trace(trackpos);
} // end if
} // end if
if (con == 3)
{
if (_root.guitar.guitar == "first")
{
trackpos = _root.guitar.i_sound.position / 1000;
} // end if
if (_root.keys.key == "first")
{
trackpos = _root.keys.i_sound.position / 1000;
} // end if
trace(trackpos);
} // end if
if (s_play == 1)
{
i_sound.onSoundComplete = function ()
{
i_sound.start();
};
} // end if
}

on (release)
{
_root.warning._visible = false;
i_sound = new Sound(this);
i_sound.attachSound(instrugen);
if (s_play == 0)
{
drumplay = true;
if (_root.keys.keyplay == false && _root.guitar.guiplay == false)
{
drum = "first";
trace(drum);
con = 1;
} // end if
if (_root.keys.keyplay == true && _root.guitar.guiplay == true)
{
con = 3;
} // end if
if (_root.keys.keyplay == true || _root.guitar.guiplay == true)
{
con = 2;
} // end if
switch (con)
{
case 1:
{
i_sound.start();
break;
}
case 2:
{
i_sound.start(trackpos, 0);
break;
}
case 3:
{
i_sound.start(trackpos, 0);
break;
}
} // End of switch
s_play++;
}
else if (s_play == 1)
{
i_sound.stop();
s_play--;
drumplay = false;
drumms = "second";
} // end if
}

// [onClipEvent of sprite 5 in frame 41]
on (rollOver)
{
gotoAndPlay(2);
}

on (rollOut)
{
gotoAndPlay(6);
}

onClipEvent (load)
{
instru = "g";
s_play = _root.splay;
guiplay = false;
guitar = "na";
vol = 40;
}

onClipEvent (enterFrame)
{
instrugen = instru + _root.i;
if (con == 2)
{
if (_root.drum.drumplay == true)
{
trackpos = _root.drum.i_sound.position / 1000;
trace(trackpos);
} // end if
if (_root.keys.keyplay == true)
{
trackpos = _root.keys.i_sound.position / 1000;
trace(trackpos);
} // end if
} // end if
if (con == 3)
{
trackpos = Math.max(_root.drum.i_sound.position / 1000, _root.keys.i_sound.position / 1000);
trace(trackpos);
} // end if
if (s_play == 1)
{
i_sound.onSoundComplete = function ()
{
i_sound.start();
i_sound.setVolume(vol);
};
} // end if
}

on (release)
{
_root.warning._visible = false;
i_sound = new Sound(this);
i_sound.attachSound(instrugen);
if (s_play == 0)
{
guiplay = true;
if (_root.drum.drumplay == false && _root.keys.keyplay == false)
{
guitar = "first";
con = 1;
} // end if
if (_root.drum.drumplay == true && _root.keys.keyplay == true)
{
con = 3;
} // end if
if (_root.drum.drumplay == true || _root.keys.keyplay == true)
{
con = 2;
} // end if
switch (con)
{
case 1:
{
i_sound.start();
i_sound.setVolume(vol);
break;
}
case 2:
{
i_sound.start(trackpos, 0);
i_sound.setVolume(vol);
break;
}
case 3:
{
i_sound.start(trackpos, 0);
i_sound.setVolume(vol);
break;
}
} // End of switch
s_play++;
}
else if (s_play == 1)
{
guiplay = false;
i_sound.stop();
s_play--;
guitar = "second";
} // end if
}

// [Action in Frame 40]
gotoAndPlay(1);

// [Action in Frame 41]
stop();
text1 = _root.drum.trackpos;
genere = new Array();
genere[0] = "Select";
genere[1] = "Rock";
genere[2] = "Pop";
genere[3] = "Dance";
genere[4] = "Asian";
maxl = genere.length;
splay = 0;
i = 0;
genendg = 0;
genstartg = 1;
j = 0;
genendd = 0;
genstartd = 1;
k = 0;
genendk = 0;
genstartk = 1;
onEnterFrame = function ()
{
gtxt = genere[i];
dtxt = genere[j];
ktxt = genere[k];
};