PDA

Просмотр полной версии : порядок нажатия кнопок


st0rk
16.02.2009, 11:48
Привет всем!
Не услышал ответ в теме которую создавал недавно, вот хочу еще раз спросить:
нужно отследить последовательность нажатий кнопок в сцене, AlexCooper подсказал такой вот вариант:

var massiv = new Array("1", "2", "3", "4", "2", "5", "5", "4", "3", "1", "6");
massiv.i = 0;
btn_1.onPress = function() {
Recover(this._name);
};
.....//для всех btn_1 - btn_6
Recover = function (s:String) {
if (massiv[massiv.i] == s.substring(4, s.length)) {
massiv.i++;
Brain(massiv.i);
} else {
trace('Бабах!!!! Вы нарушили последовательность');
}
};
Brain = function (step:Number) {
if (step == 1) {//тут обработка на 1 шаг
}
if (step == 2){
}
//и так далее до
if (step == 11){
}

все работает замечательно - проверяет до шага 10, шаг 11 - ложное срабатывание ошибки :(
не могу понять почему :(
помогите разобраться пожалуйста

весь код тут: http://kisumdu.konotop.org/temp/so_start.fla.as

Psycho Tiger
16.02.2009, 11:55
вы задаете вопрос так, что видно, вы и не разбирались.
Используйте trace чтобы вывести
massiv[massiv.i]
и
s.substring(4, s.length)
и станет всё ясно

st0rk
17.02.2009, 11:51
сделал trace (s.substring(4, s.length)); - все кнопки ловит, а btn_6 нет :( и trace ее не выводит :(
тоже самое с trace (massiv[massiv.i]); последнего элемента нет :(
1
2
3
4
2
5
5
4
3
1

Fox M. Lurde
17.02.2009, 11:57
а на 6 кнопке код висит?

st0rk
17.02.2009, 12:08
все, разобрался, причина была в том что на 11 шаге я шел опять на 1 кадр и цикл повторялся, что давало сбой