Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addEventListener. Зачем в параметрах функции писать event:MouseEvent? (http://www.flasher.ru/forum/showthread.php?t=199643)

GuitarFan 21.05.2013 18:42

addEventListener. Зачем в параметрах функции писать event:MouseEvent?
 
Код AS3:

equals_btn.addEventListener(MouseEvent.CLICK, equClick);
 
function plusClick(event:MouseEvent):void

Зачем в параметрах функции plusClick писать event:MouseEvent?
В функцию разве что-то должно передаваться? Без этого никак?

ProcXel.A 21.05.2013 18:43

В функцию передается событие MouseEvent.CLICK. Ты, видимо, хочешь свою функцию еще и сам вызывать, да? Тогда пиши
Код AS3:

function plusClick(event:MouseEvent = null):void

И сможешь вызывать просто как plusClick(). Но смотри, чтобы само событие внутри функции в таком случае не использовалось.

caseyryan 21.05.2013 19:12

Цитата:

В функцию разве что-то должно передаваться? Без этого никак?
Возможно это будет для вас как снег на голову, но это называется параметр функции. А то, что в нее по факту передалось, называется аргументами.
Цитата:

И сможешь вызывать просто как plusClick().
Не обязательно делать параметр опциональным. Можно и вот так вызвать
plusClick(null);

п.с. Навзвание темы не отражает сути вопроса. Советую исправить, или ее закроют.

GuitarFan 22.05.2013 12:25

Цитата:

Возможно это будет для вас как снег на голову, но это называется параметр функции. А то, что в нее по факту передалось, называется аргументами.
Не будет. Мне не понятно, почему нельзя написать без аргумента? Получается, когда используется addEventListener обязательно в функцию передается как параметр MouseEvent? И нужно в аргументах функции его обязательно принимать? MouseEvent - разве в себе что-то хранит? Я думал это чисто для отлова кликов и т.д., не думал, что есть смысл это передавать.

ProcXel.A 22.05.2013 12:28

GuitarFan, в справке посмотри, что события в себе хранят.

КорДум 22.05.2013 12:30

Прочтите про события. И еще раз вот это.

caseyryan 22.05.2013 13:16

Цитата:

когда используется addEventListener обязательно в функцию передается как параметр MouseEvent?
Нет. Туда передается тот типа события, на который была подписка. В случае с кликом - да, MouseEvent передается обязательно.

FieryWall 22.05.2013 13:33

Цитата:

Сообщение от caseyryan (Сообщение 1134321)
Нет. Туда передается тот типа события, на который была подписка. В случае с кликом - да, MouseEvent передается обязательно.

MouseEvent - расширяет Event, следовательно MouseEvent не обязателен, т.е. место него можно поставить Event параметр - вот он точно обязателен :)

caseyryan 22.05.2013 15:08

Цитата:

MouseEvent - расширяет Event, следовательно MouseEvent не обязателен, т.е. место него можно поставить Event параметр - вот он точно обязателен
Ну, следуя такой логике можно вообще Object поставить и не париться.
MouseEvent хранит определенные данные именно о событии мыши, которых от объекта с типом Event получить невозможно. Так что MouseEvent обязателен, если нужно узнать, например, по чему именно был щелчок или в каком месте.

Babylon 22.05.2013 17:44

Так часто и делают, чтобы компилятор не ругался на as Class


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

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