Цитата:
|
Сообщение от sulsaram
Ролик выдаёт ошибку при нажатии любой из кнопок.
Когда нажать одну кнопку(например 2)- то оштибка выглядет: "_level0.b2"
|
Да это не ошибка, это trace() срабатывает..
поставьте два слеша в начале этой строки , то есть закомментируйте ее.
А, сорри, this для звука - это сам звук, а не кнопка.. Он не видит переменной. Счас подумаю..

Код:
stop();
var my_sound:Sound = new Sound(_root);
function btnOnPress(){
//trace (this ); теперь это комментарий и не вызовется
my_sound.attachSound(this.snd);
my_sound.start(0);
//создаем локальную переменную
var frameToGo:Number = this.frameToGo;
//это будет изнутри кнопки и все видно
my_sound.onSoundComplete = function() {
_root.gotoAndStop( frameToGo );
// теперь все работает, потому что мы создаем функцию динамически
// и frameToGo у нас локальный что и покажет следующая строка
trace( "frameToGo: " + frameToGo );//потом закомментируйте
}
}
b1.snd = "s1"; b2.snd="s2"; b3.snd="s3";
b1.frameToGo = 3;
b2.frameToGo = 2;
b3.frameToGo = 2;// хоть 20, лишь бы кадров хватило
b1.onPress = b2.onPress = b3.onPress = btnOnPress;