![]() |
|
||||||||||
|
|||||
|
Добрый день.
Я уже задавал в одной из тем этот вопрос но тогда мне толком не рассказали как решить, а очень нужно, подскажите пожалуйста в таком вопросе... у меня 5 кнопок и они должны нажиматься строго в последовательности (например 1,3,5,4,2,3,5,1,4 -это правильно иначе неправильно!) как такое реализовать? с массивами не работал, в AS нуб, но хочу разобраться. на Вас только одна надежда. Добавлено через 1 час 17 минут может вот так: var massiv = new Array("1", "2", "3", "4","2", "5","5", "4","3", "1","6"); oborot_btn.onPress = function () { var ok = "1"; if (ok <> massiv[1]) { trace("error") } } и так для каждой кнопки в той последовательности что нам нужно??? Последний раз редактировалось st0rk; 08.01.2009 в 15:04. |
|
|||||
|
Вам нужно знать какую кнопку Вы нажали
Для этого все здесь далее нужно сравнить номер (id) кнопки с элементом массива то есть для каждой кнопки вот такой код: Пусть есть переменная (ОДНА для всех кнопок!) При нажатии на любую кнопку происходит увеличение значения переменной на 1 После этого проверяется значение элемента массива под номером numberOfElem
__________________
...вселенская грусть |
|
|||||
|
тоесть что-то наподобие этого?
var massiv = new Array("1", "2", "3", "4","2", "5","5", "4","3", "1","6"); for (var z:Number = 1; z<=5; z++) { button.id = z; var numberOfElem:Number=0; ++numberOfElem; if(massiv[numberOfElement] <> button.id){ trace("error") } } или же может в отдельный слой AS? |
|
|||||
var massiv = new Array("1", "2", "3", "4", "2", "5", "5", "4", "3", "1", "6"); // подсказка var hint = this.createTextField('hint', 1, 50, 10, 200, 20); hint.text = massiv; hint.border = true; // // создаём копки // кол-во кнопок = максимальное значение в массиве var max = massiv[ massiv.sortOn(null, 8|16).pop() ]; for(var i = 0; i < max; i++){ var btn = this.createTextField('hint', i+5, 50 + i * 40, 50, 20, 20); btn.border = true; btn.html = true; btn.htmlText = '<a href="asfunction:push_the_button, '+(i+1)+ '">' +(i+1)+ '</a>'; // для обычных кнопок //btn.i = i+1; //btn.onPress = push_the_button; } // // // функция проверки var counting = 0; function push_the_button(){ var index = Number(arguments[0]); // для обычной кнопки //var index = this.i if( massiv[counting] == index){ trace('правильно! продолжайте...') counting++; }else{ trace('***' + newline + 'неправльно! Давай сначала.' + newline + '***'); counting = 0; } } |
|
|||||
|
Mnilionic, у меня кнопки уже есть и они мувиклипы, как мне их нужно назвать или что сделать,чтобы Ваш пример сработал? просто они не должны находиться в одну линию как у Вас, а разбросаны по всей сцене - под элементами графическими...
|
|
|||||
|
st0rk
|
|
|||||
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_2.onPress=function() { Recover(this._name); } Recover=function(s:String) { if (massiv[massiv.i]==s.substring(4,s.length)) massiv.i++; // else massiv.i=0; } UPD: Либо же так var massiv = new Array("1", "2", "3", "4", "2", "5", "5", "4", "3", "1", "6"); massiv.i=0; btn_1.onPress=function() { if (Recover(this._name)==true) Brain(this._name); } btn_2.onPress=function() { if (Recover(this._name)==true) Brain(this._name); } Recover=function(s:String) { if (massiv[massiv.i]==s.substring(4,s.length)) { massiv.i++; return true; } else { //massiv.i=0; return false; } } Brain=function(s:String) { if ( s== 'btn_1') trace('Действие первой кнопки'); if ( s== 'btn_2') trace('Действие второй кнопки'); } 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_2.onPress=function() { Recover(this._name); } 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) trace('Запуск левого двигателя'); if ( step==2) trace('Запуск правого двигателя'); if ( step==3) trace('Включение взлёточных прожекторов'); if ( step==4) trace('Тяга 60%'); if ( step==5) trace('Тяга 80%'); if ( step==6) trace('Высунуть закрылки'); if ( step==7) trace('Отпустить ручной тормоз'); if ( step==8) trace('Штурвал на себя'); if ( step==9) trace('Тяга 100%'); if ( step==10)trace('Спрятать шасси'); } UPD III: Первый "UPD" для того случая когда действия кнопки не меняеться Второй "UPD" когда каждое действие уникальное по функционалу.
__________________
return this... Последний раз редактировалось AlexCooper; 10.01.2009 в 03:47. |
|
|||||
|
Mnilionic, все нравится встрочку, пусть так и будет, только вот чтобы кнопки-ссылки эти назывались не 1,2,3,4,5,6, а например ВВ, ОТК, УД и т.д. как такое сделать?
|
|
|||||
|
А чем вам мой пример не понравился?
Если нужно под Ваши не стандартизированные имена кнопок. Меняем в массиве и в функции Recover уберем отработку строки, то-есть
__________________
return this... |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|