Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как создать событие onLoad? (http://www.flasher.ru/forum/showthread.php?t=87156)

etc 31.10.2006 13:22

Я не пойму, а зачем, собственно, юзать интерфейс, когда твой класс может просто подписаться на необходимые события класса, без реализации всех методов интерфейса? Это бессмысленное использование интерфейсов, которые вообще созданы для того, чтобы общаться с классом, а не для того, чтобы просто прописать необходимые методы.

Интерфейс необходим, если класс, который его реализует, недоступен в конкретном проекте или пишется другим человеком, но тебе нужно работать с подобным классом.

Впрочем, я догадываюсь, почему ты так используешь интерфейс — твой XMLLoader получает ссылку на интерфейс IXMLLoaderListener? А почему нельзя использовать событийную модель и вообще не делать связи внутри класса с внешними?

Sneg 31.10.2006 19:41

Да безусловно может подписаться на событие, если в качестве ссылки на объект слушатель предеавать тип Object и заменить :
Код:

addListener(listener:XMLLoadListener):Boolean;
на
Код:

addEventListener(listener:Object,event:EventObject):Boolean;
Я использую его в больших проектах, где куча всяких слушателей и мне казалось принудительная реализация интерфейсов объектами слушателями, позволит быстрее найти ошибку или недопустить её при проверки компилятором. В последнее время, в относительно небольших проектах становится неудобно тащить за собой такую событийную модель: много классов и интерфейсов. И думаю, что нужно переписать все это с наименьшей привязаностью к другим классам - т.е. так как ты предлагаешь.

enepx 08.11.2006 22:44

Господа, я просто сделал так (влоб, причем давно): каждые 0,1sec проверяю чему равно isLoaded и все! Я думаю, что принцип работы всяких слушателей такой же - они слушают с какой-то частотой и все. Может я и не прав, но у меня все сейчас в норме. Спасибо...


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

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