PDA

Просмотр полной версии : Помогите сократить код ))


vuser
16.10.2009, 00:58
Всем привет. Помогите разобраться со следующим вопросом...
У меня на форме имеются куча кнопок (id = Button1...ButtonN). Ко всем ним делаю общий обработчик событий onClick в котором я через event.target.name узнаю id кликнутой кнопки. Узнав его я пытаюсь у этой кнопки сменить Label. Делаю это так:
if (event.target.name == "Button1") Button1.Label = "Кнопка нажималась";
if (event.target.name == "Button2") Button1.Label = "Кнопка нажималась";
if (event.target.name == "Button3") Button1.Label = "Кнопка нажималась";
****
if (event.target.name == "ButtonN") Button1.Label = "Кнопка нажималась";
Все Ок работает.. но это очень долго, нудно и не рационально.. Как это все можно уложить в пару действий?! Например что-то типо такова:
var Button_name:??????;
Button_name.id = event.target.name;
Button_name.Label = "Кнопка нажималась";

ЗЫ: AstionScript ток недавно начал изучать... :rolleyes:

incoob
16.10.2009, 01:41
Все кнопки у вас ведь одного класса? И метод вызывается только этими кнопками. То есть вы можете смело кастовать event.target к кнопке и делать с ней что хотите.
(event.target as Button).Label = "Кнопка нажималась";

vuser
16.10.2009, 10:58
огромное спасибо.. Это то что нужно было!

Добавлено через 3 часа 33 минуты
Если можно..то я задам в этой же теме..еще один вопросик.. Как в данно случае можно упарстить эту писанину:
a1.addEventListener( DragEvent.DRAG_ENTER, acceptDrop);
a2.addEventListener( DragEvent.DRAG_ENTER, acceptDrop);
a3.addEventListener( DragEvent.DRAG_ENTER, acceptDrop);
a4.addEventListener( DragEvent.DRAG_ENTER, acceptDrop);
*****
aN.addEventListener( DragEvent.DRAG_ENTER, acceptDrop);
где a1...aN это есть id класса GridItem компонента GRID

incoob
16.10.2009, 14:41
Как вариант - писать своего наследника GridItem - а и в нем добавлять(удалять) ваше событие.
Ну и добавлять в грид такие GridItem - ы.