Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проверка состояний кнопок и управление ими. (http://www.flasher.ru/forum/showthread.php?t=106232)

Punk T-34 07.01.2008 07:13

Проверка состояний кнопок и управление ими.
 
Ещё один вопросик за сегодня...
Есть у меня 4 кнопки (rout25, rout28, rout29, rout30) и одна галочка (check).
Задача 1: Проверять, если нажаты все кнопки (они анимированные и с флагами), то нужно повесить галочку (check.gotoAndStop(2);). Если хотя-бы одна кнопка выключается - снимать галочку (check.gotoAndStop(1);).
Задача 2: Если поставить галочку, то включатся все кнопки и наоборот.
Вроде просто, вроде, даже код написал, но не работает :(

Вот, как я делал:
Код:

// Тут я задаю начальные состояния флагов.
Rout25On = false;
Rout28On = false;
Rout29On = false;
Rout30On = false;
// Здесь проверка: если, хотя-бы одна кнопка не нажата - снимаем галочку.
if ((Rout25On == false) || (Rout28On == false) || (Rout29On == false) || (Rout30On == false)) {
        check.gotoAndStop(1);
};
// Здесь проверяем, все ли кнопки нажаты, если да, то ставим галочку.
if ((Rout25On == true) && (Rout28On == true) && (Rout29On == true) && (Rout30On == true)) {
        check.gotoAndStop(2);
};
// Управление кнопками
rout25.onRelease = function() {
        if (Rout25On == false) {
                rout25.gotoAndPlay(2);
                Rout25On = true;
        } else {
                rout25.gotoAndPlay(16);
                Rout25On = false;
        }
};
rout28.onRelease = function() {
        if (Rout28On == false) {
                rout28.gotoAndPlay(2);
                Rout28On = true;
        } else {
                rout28.gotoAndPlay(16);
                Rout28On = false;
        }
};
rout29.onRelease = function() {
        if (Rout29On == false) {
                rout29.gotoAndPlay(2);
                Rout29On = true;
        } else {
                rout29.gotoAndPlay(16);
                Rout29On = false;
        }
};
rout30.onRelease = function() {
        if (Rout30On == false) {
                rout30.gotoAndPlay(2);
                Rout30On = true;
        } else {
                rout30.gotoAndPlay(16);
                Rout30On = false;
        }
};
/*А здесь, если ставим галочку, включаются все не нажатые кнопки, а нажатые остаются нетронутыми.*/
check.onPress = function() {
        if ((Rout25On == false) || (Rout28On == false) || (Rout29On == false) || (Rout30On == false)) {
                check.gotoAndStop(2);
                rout25.gotoAndPlay(2);
                rout28.gotoAndPlay(2);
                rout29.gotoAndPlay(2);
                rout30.gotoAndPlay(2);
                Rout25On = true;
                Rout28On = true;
                Rout29On = true;
                Rout30On = true;
        } else {
                check.gotoAndStop(1);
                rout25.gotoAndPlay(16);
                rout28.gotoAndPlay(16);
                rout29.gotoAndPlay(16);
                rout30.gotoAndPlay(16);
                Rout25On = false;
                Rout28On = false;
                Rout29On = false;
                Rout30On = false;
        }
};


MrPoma 07.01.2008 07:48

код верный. что конкретно не получется? попробуйте воспользоваться trace(). если не получится выложите исходник

Punk T-34 07.01.2008 17:33

Вложений: 1
Если конкретно, то галочка не реагирует на включение и выключение кнопок. Если включить все кнопки, то гаочка не ставится. И, соответственно, если выключить хотя-бы одну кнопку - галочка не снимается.
Вобщем, я приложил исходник:
Вложение 18633

Punk T-34 08.01.2008 15:50

Может это как-то через глобальные переменные можно сделать?

udaaff 08.01.2008 18:54

Вам нужно проверять состояние кнопок, каждый раз, при нажатии. А у вас проверки выполняются всего один раз.

Punk T-34 08.01.2008 23:05

Но тут же я это и указываю, то есть, проверяю: для каждого onRelease свой if () { } else {};
Или что-то другое подразумевается?

udaaff 09.01.2008 10:15

Подразумеваются первые два if в вашем коде.


Часовой пояс GMT +4, время: 02:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.