Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   пытаюсь получить имя объекта в прослушивателе событий (http://www.flasher.ru/forum/showthread.php?t=153417)

Atarion 02.04.2011 17:47

пытаюсь получить имя объекта в прослушивателе событий
 
Код AS3:

ui_loader.addEventListener(MouseEvent.CLICK, function(e:Event){
      onImageClick(e);})
function onImageClick(name:*)
{
trace(name);
}

однако в самом объекте клика -нет информации о том - на каком именно объекте кликали. поэтому я получаю
[MouseEvent type="click" bubbles=true cancelable=false eventPhase=3 localX=61 localY=62.7 stageX=290 stageY=333.95 relatedObject=null ctrlKey=false altKey=false shiftKey=false buttonDown=false delta=0]

как тут можно схитрить чтобы получить имя объекта на котором кликнули?

Psycho Tiger 02.04.2011 17:50

Избавиться от замыканий, оно Вам ненадо.
А вообще
Код AS3:

(e.target as DisplayObject).name

или если надо получить имя ui_loader то
Код AS3:

(e.currentTarget as DisplayObject).name


spooner 02.04.2011 17:55

Код AS3:

ui_loader.addEventListener(MouseEvent.CLICK, function(e:Event){onImageClick(e);});

Интересная конструкция.
Вам самому не кажется странной необходимость создания функции только ради вызова другой функции?
Код AS3:

ui_loader.addEventListener(MouseEvent.CLICK, onImageClick);

Так обычно пишут.

Atarion 02.04.2011 18:02

ну а если надо передать заданный параметр - к примеру стороннее число? тогда уж придется - по моему? делать?

spooner 02.04.2011 18:06

При необходимости передачи доп. параметров создаются кастомные события (экземпляры классов, расширяющих Event) и параметры эти передаются в их теле.

Atarion 02.04.2011 18:10

ты имеешь ввиду внешние классый хранящиеся в *as? что я псих - ради 1 параметра свой клас писать(

Котяра 02.04.2011 18:40

Тут все психи, особенно тигры.

i.o. 02.04.2011 18:45

и психи, и тигры :)

bav 02.04.2011 18:54

Цитата:

тогда уж придется - по моему? делать?
Не делать.
Цитата:

что я псих - ради 1 параметра свой клас писать(
Создать класс пользовательского события не сложно, это нормальная практика, послушайте spooner'а. Послушайте Psycho Tiger'а по поводу анонимных функций. Если вы прослушиваете события типа MouseEvent, то такого же типа должен быть и параметр прослушивающей функции. Также, обычно, у функции указывается тип возвращаемого значения.
Код AS3:

ui_loader.addEventListener(MouseEvent.CLICK, onImageClick);
function onImageClick(event:MouseEvent):void
{
    trace((event.target as DisplayObject).name);
}


Atarion 02.04.2011 18:59

вроде понял. спасибо!


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

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