Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.10.2008, 16:09
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 1  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
По умолчанию Фильтровать действия при нажатии одной кнопки

Есть 3 кнопки RadioButton выполняющие определенные функции. И кнопка “готово”, анализирующая, при нажатии, какой выбран RadioButton.

Код для RadioButton
Код:
for (i=0; i<3; i++) {
	_root.main.stick["q"+i].onPress = function() {
		switch (Number(this._name.substr(-1))) {
			case 0 :
				…действие
				_root.btn = true;
				_root.btn2 = false;
				_root.btn3 = false;
				break;
			case 1 :
				…действие
				_root.btn2 = true;
				_root.btn = false;
				_root.btn3 = false;
				break;
			case 2 :
				…действие
				_root.btn3 = true;
				_root.btn2 = false;
				_root.btn = false;
				break;
		}
	};
}
Код кнопки ”готово”
Код:
on (release) {
if (_root.btn) {
…действие
}
if (_root.btn2) {
… действие
}
if (_root.btn3) {
… действие
}
}
То есть суть вопроса, надеюсь, ясна. При нажатии на кнопку “готово” не должно происходить не нужных действий. Для этого я тупо делаю так if (_root.btn) . При этом постоянно приходится писать _root.btn = true; либо _root.btn = false; дабы не вызывать не нужную мне функцию.

Может быть, всё это можно как-то упростить???
Потому как 3 действия таким макаром написать одно, а если 10!)


Последний раз редактировалось KiL33; 22.10.2008 в 16:26.
Старый 22.10.2008, 17:01
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 2  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Код:
myonPress = function(id:Number)
{
	switch (id)
	{
		case 0:
   			// job
		break;
		case 1:
 			// job
		break;
		case 2:
			// job
		break;
		case 3:
   			// job
		break;
		default: trace('Где ты нашёл эту кнопку???');
	}
}

var n:Number=3;

for (var i=0; i<=n; i++) 
{
	_root.main.stick["q"+i].onPress = function() 
	{
		for (i=0; i<=n; i++) _root['btn'+i] = false;
		_root['btn'+Number(this._name.substr(-1))] = true;
		myonPress(Number(this._name.substr(-1)));	
	};
}
так же можно сделать и с релейсом
__________________
return this...


Последний раз редактировалось AlexCooper; 22.10.2008 в 17:43.
Старый 22.10.2008, 18:43
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 3  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Спасибо, Вы спасли мою и без того шаткую психику!))

Старый 22.10.2008, 19:14
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 4  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Пожалуйста, только
Код:
n = Const
UPD: кстати, создавать на каждое действие флажки тоже както не по последним словам оптимизации. Горозда проще объявить 1 переменную которая и будет хранить ID действия, например:
Код:
myonPress = function(id:Number)
{
	switch (id)
	{
		case 0:
   			// job
		break;
		case 1:
 			// job
		break;
		case 2:
			// job
		break;
		case 3:
   			// job
		break;
		default: trace('Где ты нашёл эту кнопку???');
	}
}

var n:Number=3;
var ID:Number=-1; // Что б преждевременно ничего сработало

for (var i=0; i<=n; i++) 
{
	_root.main.stick["q"+i].onPress = function() 
	{
		ID=Number(this._name.substr(-1));
		myonPress(ID);	
	};
}
а тут еще проще
Код:
on (release)
{
	switch (ID)
	{
		case 0:
			// job
		break;
		................
		case 3:
			// job
		break;
	}
}
если же запись имеет смысл (тоесть выполняються различные действия при onPress / onRelease)
__________________
return this...


Последний раз редактировалось AlexCooper; 22.10.2008 в 22:30.
Создать новую тему Ответ Часовой пояс GMT +4, время: 11:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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