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

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

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

Регистрация: Sep 2005
Сообщений: 3
По умолчанию Одновременное выполнение двух событий.

Есть несколько компонентов radioButton и один textArea, который активируется при выборе определенной радиокнопки. В массив записывается значение выбранной кнопки, либо текст из textArea.

Использую событие click для проверки статуса радиокнопок и событие change для textArea. Выполняется только change.

Код:
var bb:Array = Array();

var checkboxListener:Object = new Object();
var taListener:Object = new Object();

checkboxListener.click = function(evt_obj:Object) {
taListener.change = function(evt_obj:Object) {
	if (rb5.selected) {bb[0] = rb5.label + newline;}
	else {bb[0] = "";}
 	if (rb6.selected) {bb[1] = rb6.label + newline;}
	else {bb[1] = "";}
 	if (rb7.selected) {bb[2] = rb7.label + newline;}
	else {bb[2] = "";}
 	if (rb8.selected) {bb[3] = rb8.label + newline;}
	else {bb[3] = "";}
	if (rb9.selected) {bb[4] = rb9.label + newline;}
	else {bb[4] = "";}
	if (rb10.selected) {bb[5] = evt_obj.target.text + newline;}
	else {bb[5] = "";}
	};
};
textArea0.addEventListener("change", taListener);
rb5.addEventListener("click", checkboxListener);
rb6.addEventListener("click", checkboxListener);
rb7.addEventListener("click", checkboxListener);
rb8.addEventListener("click", checkboxListener);
rb9.addEventListener("click", checkboxListener);
rb10.addEventListener("click", checkboxListener);
Что нужно сделать чтобы выполнялись оба события?

Старый 05.12.2008, 12:00
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 2  
Ответить с цитированием
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Ну, радиобаттонам так события не назначаются. Там назначаются события на всю группу этих кнопок.
Код:
var listenerObject:Object = new Object();
listenerObject.click = function(eventObj:Object) {
    // ...
};
radioButtonGroup.addEventListener("click", listenerObject);
Ваш код скорее для чекбокса. Или вы и имели его в виду изначально?
Не ясно, а что должно происходить при click? Тоже самое что ли?
Код:
function myevent(evt_obj:Object) {
	trace(evt_obj.target._name);
	trace(chkb1.selected);
	trace(chkb2.selected);
}
ta.addEventListener("change", this.myevent);
chkb1.addEventListener("click", this.myevent);
chkb2.addEventListener("click", this.myevent);


Последний раз редактировалось alexcon314; 05.12.2008 в 12:06.
Старый 05.12.2008, 12:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Во-первых, забудьте про определение функции внутри функции. Каждый раз, нажимая на радиобаттон, вы переопределяете taListener.change. Используйте флаг состояния.
Во-вторых, забудьте про создание бесполезных new Object();, у вас уже есть текущий объект, его достаточно.
В третьих, у вас избыточное число else.
Код AS1/AS2:
var bb:Array = Array ();
var flag:Boolean = false;
var id:Number = 0;
function click (evt_obj:Object) {
	flag = true;
}
function change (evt_obj:Object) {
	if (flag) {
		bb[id] = "";
		if (rb5.selected) {
			bb[0] = rb5.label + newline;
			id = 0;
		} else if (rb6.selected) {
			bb[1] = rb6.label + newline;
			id = 1;
		} else if (rb7.selected) {
			bb[2] = rb7.label + newline;
			id = 2;
		} else if (rb8.selected) {
			bb[3] = rb8.label + newline;
			id = 3;
		} else if (rb9.selected) {
			bb[4] = rb9.label + newline;
			id = 4;
		} else if (rb10.selected) {
			bb[5] = evt_obj.target.text + newline;
			id = 5;
		}
		trace (bb);
	}
}
textArea0.addEventListener ("change", this);
rb5.addEventListener ("click", this);
rb6.addEventListener ("click", this);
rb7.addEventListener ("click", this);
rb8.addEventListener ("click", this);
rb9.addEventListener ("click", this);
rb10.addEventListener ("click", this);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 05.12.2008, 13:49
AZOTe вне форума Посмотреть профиль Отправить личное сообщение для AZOTe Найти все сообщения от AZOTe
  № 4  
Ответить с цитированием
AZOTe

Регистрация: Sep 2005
Сообщений: 3
Alexcon314, iNils, спасибо за помощь! Все заработало!

Код:
var bb:Array = Array();

function myevent(evt_obj:Object) {
	if (rb5.selected) {bb[0] = rb5.label + newline;}
	else {bb[0] = "";}
 	if (rb6.selected) {bb[1] = rb6.label + newline;}
	else {bb[1] = "";}
 	if (rb7.selected) {bb[2] = rb7.label + newline;}
	else {bb[2] = "";}
 	if (rb8.selected) {bb[3] = rb8.label + newline;}
	else {bb[3] = "";}
	if (rb9.selected) {bb[4] = rb9.label + newline;}
	else {bb[4] = "";}
	if (rb10.selected) {bb[5] = evt_obj.target.text + newline;}
	else {bb[5] = "";}
	};
change = myevent;
click = myevent;
textArea0.addEventListener("change", this);
radioGroup.addEventListener("click", this);


Последний раз редактировалось AZOTe; 05.12.2008 в 14:00.
Создать новую тему Ответ Часовой пояс GMT +4, время: 16:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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