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

Inet_PC 06.12.2011 13:23

Цитата:

не совсем понял зачем еще устанавливать это свойство с dispatchEvent разве недостаточно объявит только
addEventListener и фукнцию обработчик?
А событие само сработать должно? DispatchEvent как раз и рассылает событие, после него и будут вызваны все обработчики переденные в addEventListener. А set prop здесь для примера.

viktorami 06.12.2011 13:34

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

Inet_PC 06.12.2011 13:51

Не понимаю что не ясно:
Вы подписались на ежемесячный журнал:
Код AS3:

magazine.addEventListener(MagazineEvent.NEW, onGetNewMagazine);

Каждый месяц происходит событие - типография печатает новый журнал:
Код AS3:

var magazine: CoolMagazine = new CoolMagazine(new Date().month);

Говорит рабочим что вышел новый журнал:
Код AS3:

var e: MagazineEvent = new MagazineEvent(magazine);

Рабочие отвезли (разослали) всем подписчикам журналы:
Код AS3:

magazine.dispatchEvent(e);

И Вы получаете журнал:
Код AS3:

function onGetNewMagazine(e: MagazineEvent):void
{
    readMagazine(e.currentMagazine);
}

Если бы типография не рассылала бы журналы, то Вы бы его не смогли прочесть.

viktorami 06.12.2011 14:04

так вроде бы объявления события через addeventlistener - уже достаточно чтобы оно выполняло функцию при действиях пользователя?

Inet_PC 06.12.2011 14:14

При каких действиях пользователя? MouseEvent.CLICK? Ну да, достаточно, просто new MouseEvent() и dispatchEvent за Вас делает наследник InteractiveObject. Я же описал как это на самом деле происходит, а не как Вы думаете, что все само собой происходит магическим образом.
Цитата:

так вроде бы объявления события через addeventlistener
Это не объявление события, это подписка на событие.

viktorami 06.12.2011 15:05

вроде бы в целом понял. спасибо.


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

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