![]() |
Унаследовать интерфейс от DisplayObject'a
Добрый день! У меня возник следующий вопрос:
есть 3 класса: Step1, Step2,Step3, которые наследуются от Sprite и при этом имплементят интерфейс, допусти IStep. Создаю переменную step, тип данных у которой IStep. Когда я пытаюсь добавить такой объект на экран - мне пишут ошибку Код AS3:
|
Никак:)
Во флеше нету интерфейса дисплейобжектов. Придумаешь грамотный велосипед - поделись. А так костыльных вариантов кучу видел, да и сам писал. Один из них использовать не интерфейс IStep, а какой-то BaseStep extends DisplayObject. А потом от него наследоваться. |
Да уж...интересно, почему так получилось? Это провтык разработчиков или они специально так сделали?
|
SlavaRa много тебе расскажет про это, если захочет. Холиворили уже с ним на эту тему.
Я считаю недоработкой разрабов. Он с пеной у рта доказывал что всё ок и так надо. В чем-то он конечно прав, но думаю можно было что-то придумать. |
Объясните мне пожалуйста, в чем такая принципиальная разница, между интерфейсом и "абстрактным наследником" ?
|
Akopalipsis
А если подумать и еще раз почитать вопрос в топике? :) |
Цитата:
Ну и что толку, если бы был интерфейс IDisplayObject? Все равно метод addChild принимает DisplayObject Если это дисплей объект, то вполне нормальный подход писать as DisplayObject |
Цитата:
|
Цитата:
Код AS3:
|
maxkar, неплохой вариант. Одна поправка к коду
Код AS3:
|
Тогда уж:
Код AS3:
|
на мой взгляд не очень удобный вариант т.к. придётся имплементить в каждый класс который будет расширяться от данного интерфейса по сути избыточный метод
Код AS3:
|
single responsibility
|
Цитата:
|
Сильно зависит от реализации. В общем случае ради такого трюка создавать ещё одну сущность, которая будет просто возвращать другую – это костыль. Бритва Оккама для бритья щетины.
По теме – видимо, я больше солидарен с Славой. То есть, IDisplayObject никому не помешал бы, но от лишнего кастинга никто не умрёт. А вот если какой-нибудь чудик реализаует IDisplayObject в своём классе, например, наследуемый от NetStream – его в дисплай-лист уже не добавить, но вот компайл-тайм соглашения будут соблюдены. Тут вопрос между RTE vs Compile Time и решение адоуба, в принципе, очевидно. |
Вот тут обсуждали
|
| Часовой пояс GMT +4, время: 14:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.