Форум 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=81555)

kokni 22.06.2006 14:24

Повторное нажатие на кнопку
 
Не нашел полного ответа на форуме, поэтому создаю тему.

Дело такое:

При нажатию на кнопку она должна менять цвет (с этим разобрался)

Код:

on (release) {
name = new Color(name);
name.setRGB("0xFF0000");
}

НО! Мне нужно чтобы при повторном нажатии на эту же кнопку, цвет менялся на исходный. Кто подскажет?

BigDan 22.06.2006 14:37

Цитата:

Сообщение от kokni
НО! Мне нужно чтобы при повторном нажатии на эту же кнопку, цвет менялся на исходный. Кто подскажет?

Обьявим переменную counter, которая бедет определять какой цвет на данный момент у кнопки.
Код:

var counter:Number=0;
btn_name.onRelease=function(){
        if(counter==0){
            ...меняем цвет...
            counter=1;
        }
        if(counter==1){
            ...меняем цвет обратно...
            counter=0;
        }
}


iNils 22.06.2006 14:39

http://flasher.ru/forum/showthread.php?t=80861

kokni 22.06.2006 14:59

Ругается на эту строку: var counter:Number=0;

BigDan 22.06.2006 15:03

Цитата:

Сообщение от kokni
Ругается на эту строку: var counter:Number=0;

Ты в каком флеше работаешь?

etc 22.06.2006 15:07

BigDan, ты проверял тот код, что написал?

kokni 22.06.2006 15:09

Цитата:

Сообщение от BigDan
Ты в каком флеше работаешь?

mx 2004

iNils 22.06.2006 16:15

Цитата:

Сообщение от BigDan
Код:

var counter:Number=0;
btn_name.onRelease=function(){
        if(counter==0){
            ...меняем цвет...
            counter=1;        }
        if(counter==1){
            ...меняем цвет обратно...
            counter=0;
        }
}


Сильно :)

BigDan 22.06.2006 16:28

действительно, сорри
Код:

var counter:Number=0;
btn_name.onRelease=function(){
    if(counter==0){
        ....меняем цвет....
    }else{
        ...меняем цвет обратно...
    }
    if(counter==0){
        counter=1;
    }else{
        counter=0;
    }
}


BigDan 22.06.2006 16:31

Цитата:

Сообщение от kokni
Ругается на эту строку: var counter:Number=0;

Попробуй var counter=0;

kokni 22.06.2006 16:54

неа, не фурычит

iNils 22.06.2006 16:56

BigDan, а кто вам мешает в одном ифе все сделать?

Уникальный Нуп 22.06.2006 18:59

Код:

on(press) {
        if (state<>0) {
                state = 0;
                ....задаем цвет 1....;
        }
        else {
                state = 1;
                ....задаем цвет 2....;
        }
}

в одном "ифе"

iNils 22.06.2006 19:08

Типа конкурс? :)
Код:

var counter:Boolean = false;
btn_name.onRelease = function () {
        if (!counter) {
                trace ("...меняем цвет...");
        } else {
                trace ("...меняем цвет обратно...");
        }
        counter = !counter;
};


kokni 23.06.2006 13:26

Цитата:

Сообщение от Уникальный Нуп
Код:

on(press) {
        if (state<>0) {
                state = 0;
                ....задаем цвет 1....;
        }
        else {
                state = 1;
                ....задаем цвет 2....;
        }
}

в одном "ифе"

спасибо. это работает, но как теперь все это дело зациклить т.е. чтобы при каждом нажатии цвет менялся. а в данном случае это происходит один раз.

kokni 29.06.2006 13:15

все в отпуска подались чтоли? ответьте кто-нибудь.

DissDoc 29.06.2006 13:25

Используй код инилса - у него в цикле работает. А у тя переменная в товем коде просто локальная.

kokni 10.07.2006 14:05

Не работает он. Ругается

Код:

**Error** Scene=Scene 1, layer=map, frame=1:Line 1: Statement must appear within on handler
    var counter:Boolean = false;

**Error** Scene=Scene 1, layer=map, frame=1:Line 2: Statement must appear within on handler
    all_map.onRelease = function () {


etc 10.07.2006 14:20

Код:

var counter:Boolean = false;
btn_name.onRelease = function() {
        !counter ? trace("...меняем цвет...") : trace("...меняем цвет обратно...");
        counter = !counter;
};

Ваще без if =)

iNils 10.07.2006 14:40

Цитата:

Сообщение от kokni
Не работает он. Ругается

Код:

**Error** Scene=Scene 1, layer=map, frame=1:Line 1: Statement must appear within on handler
    var counter:Boolean = false;

**Error** Scene=Scene 1, layer=map, frame=1:Line 2: Statement must appear within on handler
    all_map.onRelease = function () {


Уберите код с кнопки и поставите его на таймлайн.

Nidl 10.07.2006 22:41

Код:

_root.zzz = 1;
_root.button.onPress = function() {
        _root.zzz = -_root.zzz;
};
_root.onEnterFrame = function() {
        if (_root.zzz == -1) {
                trace("меняй что хочешь");
        }
        if (_root.zzz == 1) {
                trace("возвращай обратно");
        }
};

=)

Gaen 11.07.2006 01:00

Код:

_root.flag = true;
_root.button.onPress = function() {
    _root.flag = !_root.flag;
};
_root.onEnterFrame = function() {
    if (!_root.flag) {
        trace("меняй что хочешь");
    }else{
        trace("возвращай обратно");
    }
};

Кто круче? :)

Gaen 11.07.2006 01:02

Блин, это ж то же самое что и у __etc! :) [/b]__etc[/b], у тя тоже с if'oм, тока в сокращённой форме...

D12 11.07.2006 01:38

Эх ... главное это стопроцентная работаспособность в любой ситуации , остальное все ерунда , вариантов множество .

P.S. Подобная темка уже была =) и варианты были : )
победил Нирч ) он одной строчкой на AC3 написал )

P.S.2. 2GAIKER кстати =) вот эта вещичка "!" или "not" второе ее имя, в большенстве случаев сьедает загрузку центрального процессора процентов эдак на десять )

kokni 17.07.2006 15:46

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

Nidl 17.07.2006 20:56

Вложений: 1
Держи : )


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

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