Просмотр полной версии : Блокировка кнопок
Например у меня есть 3 кнопки:bt1,bt2,bt3
Как сделать так чтобы при нажатии на одну с них,две останних уже не работали,не выполняли свои действия.
Но как например: пользователь вконтакте нажал на одну и остальные не работали только для него,как отследить пользователя?
ashIndie
25.02.2012, 23:52
bt1.addEventListener(MouseEvent.CLICK, bt1Handler);
function bt1Handler(e:MouseEvent):void {
bt1.enabled = false;
bt2.enabled = false;
bt3.enabled = false;
e.target.enabled = true; //если хочешь оставить кликабельной ту, которую нажал
}
это в рассчете что ты используешь стандартные кнопки.
а вообще это не дело...это самые азы...даже если ты чего-нибудь нахватаешься на форуме, то все равно напишешь то, о чем потом пожалеешь. Колина Мука почитай!
Да нужно прочитать.
Что то не так,две остальные перестают быть кнопками,но при нажатии на них они выполняют свои действия.
Вобще я хочу что бы при нажатии на любую с них,две остальные переставали работать.
McDanem, название темы должно раскрывать вопрос, будьте внимательны к правилам форума.
MikroAcse
26.02.2012, 00:21
ashIndie, немного поправлю:
stage.addEventListener(MouseEvent.CLICK, bt1Handler);
function bt1Handler(e:MouseEvent):void {
bt1.enabled = false;
bt2.enabled = false;
bt3.enabled = false;
e.target.enabled = true;
}
Ничего,кнопки и дальше выполняют свои действия.
MikroAcse
26.02.2012, 00:31
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 минут
Я точно не помню, но вроде можно еще так:
stage.addEventListener(MouseEvent.CLICK, bt1Handler);
function bt1Handler(e:MouseEvent):void {
bt1.mouseEnabled = false;
bt2.mouseEnabled = false;
bt3.mouseEnabled = false;
e.target.mouseEnabled = true;
}
ashIndie
26.02.2012, 00:42
ashIndie, немного поправлю:
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;
я имел ввиду что кнопка которую нажали будет все равно активна, а все остальные нет.
Но как например: пользователь вконтакте нажал на одну и остальные не работали только для него,как отследить пользователя?
MikroAcse
26.02.2012, 00:50
Но как например: пользователь вконтакте нажал на одну и остальные не работали только для него,как отследить пользователя?
Если Вконтакте:
Человек нажал на кнопку, ты отправил на сервер Вконтакте какую кнопку он нажал.
При запуске загружаешь данные с сервера и узнаешь, какую кнопку тот нажал.
И как мне это реализовать?
Залил вконтакт,все кнопки работают.Открываю просто swf,все окей.
Что делать?
MikroAcse
26.02.2012, 01:22
Значит не то загрузил вконтакт или кэш забыл почистить.
Все работает.
Но как сделать что бы эту функцыю, тоисть нажатие кнопки, пользователь делал 1 раз в скажем 7 дней.
MikroAcse
26.02.2012, 01:35
Да почитай же ты документацию (http://vk.com/developers.php?oid=-1&p=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_API)!
storage.get (http://vk.com/developers.php?oid=-1&p=storage.get)– возвращает значение хранимой переменной.
storage.set (http://vk.com/developers.php?oid=-1&p=storage.set)– сохраняет значение хранимой переменной.
да читал я немного но может роскажешь по человечески про ети переменные,и как мне их прописать в моем случае?
MikroAcse
26.02.2012, 01:40
Начни с малого, я тебе это уже говорил...
Уроки, книги, хелп в конце-концов!
Что так трудно написать код?
Мне не нужно учить все,у меня будет небольшое приложение,с несколькимы функцыями.
MikroAcse
26.02.2012, 01:46
Никто тебе не будет писать код пока ты не сможешь его понять.
А так, ты пока просто скопируешь его себе в проект и ничего из этого не вынесешь.
Добавлено через 31 секунду
Там на тех страницах есть примеры...
MikroAcse
26.02.2012, 01:58
Отправлять переменные на сервер:
VK.api('storage.set',{key:'peremen', value:'123' });
Получать данные с сервера:
VK.api('storage.get', { key:'peremen' }, onLoaded);
private function onLoaded(data: Object):void
{
trace(data[peremen]); //123
}
MikroAcse не поддавайтесь на провокации. Судя по темам, McDanem ничему учиться не хочет.
trace(data[peremen]); //123 - ошибка будет
MikroAcse
26.02.2012, 18:40
не поддавайтесь на провокации. Судя по темам, McDanem ничему учиться не хочет.
Вы правы.
ошибка будет
А как правильно?
Так?:
trace(data[0]); //123
А как правильно?
Судя по описанию:
data["response"]
MikroAcse
26.02.2012, 19:34
Спасибо.
Михаил Свинцов
26.02.2012, 20:26
в массив сохраняйте иды пользователей которые нажали уже а потом проверяйте присутстсвует ли в этом массив текущий пользователь
// массив пользователей которые уже нажали
var massiv:Array = new Array();
function bt1Handler(e:MouseEvent):void {
for(var i:uint, i<=massiv.length, i++) {
// id - это текущий пользователь
if((id == massiv[i]) && (bt1.enabled == false)) {
return;
}
bt1.enabled = false;
bt2.enabled = false;
bt3.enabled = false;
// Забыл метод (вроде push()) который добавляет число(id) последним элементом массива)
}
}
в моем понимании проблемы это ответ
MikroAcse
26.02.2012, 20:38
Михаил Свинцов, оформляйте код в теги...
А так:
В массив записывать не надо, потому что при каждом запуске игры массив будет пустым.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.