Форум 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=208844)

ivaniyses 08.09.2014 12:22

Как узнать какой кнопкой была вызвана функция?
 
Вот пример кода:
Код AS3:

button1.addEventListener(MouseEvent.CLICK, click);
button2.addEventListener(MouseEvent.CLICK, click);
 
function click(event:MouseEvent):void
{
        //действия
}

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

alexandrratush 08.09.2014 12:25

Код AS3:

var btn:SimpleButton = event.currentTarget as SimpleButton;


ivaniyses 08.09.2014 12:38

Спасибо)

Psijic 12.09.2014 18:59

@alexandrratush
хм, а почему не target?

GBee 12.09.2014 20:22

Цитата:

хм, а почему не target?
target - непосредственный создатель события, currentTarget - на кого подписались. В данном случае без разницы.

gloomyBrain 12.09.2014 20:35

Ну вообще-то в данном случае тоже есть разница. Есл внутри кнопки есть вложенные спрайты или текстовые поля или еще что-то, то именно они могут быть target, а вот currentTarget всегда будет сама кнопка.

GBee 12.09.2014 21:25

mouseChildren = false и снова нет :о)

alexandrratush 12.09.2014 21:39

Цитата:

mouseChildren = false и снова нет :о)
Это понятно. Как по мне, то лучше использовать currentTarget. Подцепил слушатель, проверил в обработчике, и все.:)

GBee 12.09.2014 22:29

Цитата:

Как по мне, то лучше использовать currentTarget. Подцепил слушатель, проверил в обработчике, и все.
От ситуации зависит. Если у вас 500 кнопок на панели, то лучше слушать панель. И по таргету вычленять.

Gerbert 12.09.2014 22:31

Цитата:

Если у вас 500 кнопок на панели, то лучше слушать панель. И по таргету вычленять.
А если восемьсот миллионов...


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

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