Получить значение имени цели события - AS3 - PullRequest
2 голосов
/ 16 апреля 2011

Я реализую область отображения текста внутри приложения, которое отображает выделенный текст, когда пользователь наводит мышью на один из четырех элементов.Вместо того, чтобы создавать функцию-обработчик для каждого элемента, я хотел бы получить имя экземпляра, который вызывает обработчик, для реализации оператора switch.Я пробовал два способа, но оба не работают:

//install event handlers
initialText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
timeText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
withdrawalText.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);


//also tried without toString, same result
var name:String= evt.target.name.toString();
var name=String= evt.currentTarget.name.toString();

Оба они возвращают неопределенное имя переменной.Однако в отладчике я могу отслеживать значения событий через currentTarget.name, и это показывает, что экземпляр запускает функцию-обработчик, будь то withdrawalText, initialText or timeText.Итак, как я могу применить значение имени к переменной, чтобы определить, какой текстовый блок отображать?

1 Ответ

5 голосов
/ 16 апреля 2011
for each (var field:TextField in [initialText, timeText, withdrawlText])
         field.addEventListener(MouseEvent.MOUSE_OVER, mouseOverEventHandler);

function mouseOverEventHandler(evt:MouseEvent):void
{
switch (evt.currentTarget)
       {
       case initialText:      /*initialText specific code*/       break;
       case timeText:         /*timeText specific code*/          break;
       case withdrawalText:   /*withdrawalText specific code*/
       }
}

это не проверено, но оно должно работать, пока область видимости ваших переменных экземпляра текстового поля достигает mouseOverHandler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...