PDA

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


pixelxxx
25.01.2012, 06:23
Здравствуйте, у меня такой вопрос: как с помощью actionscript 2.0 контролировать, сколько раз кнопка нажималась.

На всякий случай(мало ли я не правильно в принципе делаю) я поясню свою задачу:
у меня есть выбор из нескольких вариантов, при нажатии любого из них один раз - варианту присуждается 1 или 0...при нажатии еще раз - возвращается в исходное состояние(то есть присуждается 0, фактически).
в итоге, надо понять, нажатием кнопки submit, правильные ли варианты выбрали.

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

но столкнулся с проблемой того, что не знаю, как обнулить при повторном нажатии на вариант.

В общем, если кто-нибудь понял, что я имею ввиду, буду очень рад...
да и вообще, если кто-то может мне всю эту задачу решить, был бы признателен))

Hauts
25.01.2012, 09:42
Для переключения 0 - 1:


var currentState = 0;
function toggleState() {
currentState = currentState == 0 ? 1 : 0;
trace("Current state = " + currentState)
}
someButton.onPress = toggleState;
var keyListener = {onKeyUp:function () {
if (Key.getCode() == Key.SPACE) {
toggleState();
}
}};
Key.addListener(keyListener);


Для последовательного переключения 0 - 1 - 2 - 3:

var currentState = 0;
var totalStates = 4;
function toggleState() {
currentState++;
if (currentState == totalStates) {
currentState = 0;
}
trace("Current state = " + currentState);
}
someButton.onPress = toggleState;
var keyListener = {onKeyUp:function () {
if (Key.getCode() == Key.SPACE) {
toggleState();
}
}};
Key.addListener(keyListener);

pixelxxx
25.01.2012, 14:03
Спасибо большое) только единственное, неужели во флеше не существует специальных функций для нажатой/отжатой кнопки.... Просто я подумал, что легче было бы контролироовать нажата или отжата, а потом писать if(отжата){присуждать ей 0}...ну, например... Не существует такого? Я просто, если честно, не совсем понял код, который мне прислали...но в любом случае огромное спасибо

Hauts
25.01.2012, 14:42
Именно в таком аспекте, это, скорее, не кнопка в привычном понимании, а чекбокс.

Во флэше достаточно функций, чтобы управлять поведением по "нажатию / отжатию", и это довольно просто контролируется в коде.


function toggleButtonState(){
if(this.pressState == 0){
this.pressState = 1;
} else {
this.pressState = 0;
}
trace("Button " + this + " press state = " + this.pressState)
}
someButton_1.pressState = 0;
someButton_2.pressState = 0;
someButton_1.onPress = toggleButtonState;
someButton_2.onPress = toggleButtonState;


В таком примере someButton_1 и someButton_2 — это два мувиклипа или две кнопки (элемент Button), которые лежат на сцене и имеют соответствующие имена (instance name). А код написан в кадре.

И, кстати, вот эту конструкцию:

if(this.pressState == 0){
this.pressState = 1;
} else {
this.pressState = 0;
}


Можно заменить на более короткую:

this.pressState = this.pressState == 0 ? 1 : 0;

pixelxxx
25.01.2012, 15:14
Я со всем разобрался, спасибо огромное еще раз!!

Hauts
25.01.2012, 15:35
Да не за что :)