![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: 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);
|
|
|||||
|
listener
|
Ну, радиобаттонам так события не назначаются. Там назначаются события на всю группу этих кнопок.
var listenerObject:Object = new Object();
listenerObject.click = function(eventObj:Object) {
// ...
};
radioButtonGroup.addEventListener("click", listenerObject);
Не ясно, а что должно происходить при click? Тоже самое что ли? Последний раз редактировалось alexcon314; 05.12.2008 в 12:06. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Во-первых, забудьте про определение функции внутри функции. Каждый раз, нажимая на радиобаттон, вы переопределяете taListener.change. Используйте флаг состояния.
Во-вторых, забудьте про создание бесполезных new Object();, у вас уже есть текущий объект, его достаточно. В третьих, у вас избыточное число else. 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); |
|
|||||
|
Регистрация: 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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|