Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Блокировка кнопок (http://www.flasher.ru/forum/showthread.php?t=175863)

McDanem 25.02.2012 23:45

Блокировка кнопок
 
Например у меня есть 3 кнопки:bt1,bt2,bt3
Как сделать так чтобы при нажатии на одну с них,две останних уже не работали,не выполняли свои действия.
Но как например: пользователь вконтакте нажал на одну и остальные не работали только для него,как отследить пользователя?

ashIndie 25.02.2012 23:52

Код AS3:

bt1.addEventListener(MouseEvent.CLICK, bt1Handler);
 
function bt1Handler(e:MouseEvent):void {
    bt1.enabled = false;
    bt2.enabled = false;
    bt3.enabled = false;
    e.target.enabled = true; //если хочешь оставить кликабельной ту, которую нажал
}

это в рассчете что ты используешь стандартные кнопки.
а вообще это не дело...это самые азы...даже если ты чего-нибудь нахватаешься на форуме, то все равно напишешь то, о чем потом пожалеешь. Колина Мука почитай!

McDanem 26.02.2012 00:02

Да нужно прочитать.
Что то не так,две остальные перестают быть кнопками,но при нажатии на них они выполняют свои действия.
Вобще я хочу что бы при нажатии на любую с них,две остальные переставали работать.

mooncar 26.02.2012 00:12

McDanem, название темы должно раскрывать вопрос, будьте внимательны к правилам форума.

MikroAcse 26.02.2012 00:21

ashIndie, немного поправлю:
Код AS3:

stage.addEventListener(MouseEvent.CLICK, bt1Handler);
 
function bt1Handler(e:MouseEvent):void {
    bt1.enabled = false;
    bt2.enabled = false;
    bt3.enabled = false;
    e.target.enabled = true;
}


McDanem 26.02.2012 00:28

Ничего,кнопки и дальше выполняют свои действия.

MikroAcse 26.02.2012 00:31

Код AS3:

var buttons:Array=[bt1,bt2,bt3];
var i:uint=0;
 
for(i=0; i< buttons.length; i++){
    buttons[i].addEventListener(MouseEvent.CLICK, btHandler);
}
 
function btHandler(e:MouseEvent):void {
    for(i=0; i< buttons.length; i++){
          buttons[i].removeEventListener(MouseEvent.CLICK, btHandler);
    }
 
    e.target.addEventListener(MouseEvent.CLICK, btHandler);
}

Добавлено через 1 минуту
Записуй нужные кнопки в массив.

Добавлено через 5 минут
Я точно не помню, но вроде можно еще так:
Код AS3:

stage.addEventListener(MouseEvent.CLICK, bt1Handler);
 
function bt1Handler(e:MouseEvent):void {
    bt1.mouseEnabled = false;
    bt2.mouseEnabled = false;
    bt3.mouseEnabled = false;
    e.target.mouseEnabled = true;
}


McDanem 26.02.2012 00:38

Все работает.Спасибо!

ashIndie 26.02.2012 00:42

Цитата:

Сообщение от MikroAcse (Сообщение 1065495)
ashIndie, немного поправлю:
Код AS3:

stage.addEventListener(MouseEvent.CLICK, bt1Handler);
 
function bt1Handler(e:MouseEvent):void {
    bt1.enabled = false;
    bt2.enabled = false;
    bt3.enabled = false;
    e.target.enabled = true;
}


тогда отправителем событий будет сцена, когда я писал
e.target.enabled = true;
я имел ввиду что кнопка которую нажали будет все равно активна, а все остальные нет.

McDanem 26.02.2012 00:48

Но как например: пользователь вконтакте нажал на одну и остальные не работали только для него,как отследить пользователя?


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

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