![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Цитата:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Цитата:
public class ClosedContainer extends Sprite { public function ClosedContainer() { super(); } override public function addChild(child:DisplayObject):DisplayObject { return; } override public function addChildAt(child:DisplayObject, index:int):DisplayObject { return; } override public function removeChild(child:DisplayObject):DisplayObject { return; } override public function removeChildAt(index:int):DisplayObject { return; } } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
MikroAcse, терпения не хватило переписать ВСЕ методы ДОКа? Там еще много-много вкусняшек, getChildAt(), getChildByName(), numChildren, tabChildren, mouseChildren, contains(), getChildIndex(), getObjectsUnderPoint(), setChildIndex(), swapChildren(), swapChildrenAt().
А теперь представь ту же ситуацию: некто видит что это Спрайт, пихает туда своё чадо и начинает с ним работать как ни в чем ни бывало. Компилятор молчит: вызов методов и свойств абсолютно законный. А в рантайме ошибка едет на ошибке и ошибкой погоняет. Флэш уже пять лет живет с AS3, и все ништяк. Никто не говорит, что это ужасный баг, который похоронит технологию. Никто не говорит, что надо все бросать и вешать на каждый спрайт по менеджеру. Речь о красоте, как бы пафосно это ни звучало. О том, что Спрайт просто мегаизбыточен. У него полтора десятка публичных методов, убивающих накорню всякую инкапсуляцию. Методов, в 95% случаев не нужных вообще извне. Все они должны быть закрыты так, чтобы при необходимости вы могли создать общий доступ в наследнике. Но не открытый доступ по-умолчанию же! Вы когда класс пишете, старательно закрываете доступ ко всем его внутренностям. Приватные свойства, приватные функции. И только один-два метода сознательно(!) делаете публичными. А в это время Я хочу, чтобы этих публичных свойств и методов НЕ БЫЛО вообще, в принципе. Хочу ДО, который "снаружи" не является контейнером вообще, но внутри дает полное API для работы с собственным списком отображения. Все публичные доступы я смогу написать сам. Мне это понадобится раз в полгода и займет четыре строчки, не родив ни одной ошибки.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 07.06.2013 в 21:30. |
|
|||||
|
... А зачем?
![]() Что это за перестраховка от атомных взрывов? Когда я писал только на as3 я тоже болел чем-то таким. Ошибка в рантайме при дебаге – вполне обычная ситуация. В 9 из 10 случаев эта ошибка не произойдёт если проэксклудить "лишние" с автокомплита. Сразу будет видно, что дёргать. В 1 из 10 случаев словить РТЕ – ну вот совсем не страшно. В Ruby или Python'е можно вообще приватные методы дёргать через :send. И дёргают, и живут, и код настолько красив и отDRYен, что такого в AS3 и встретить нельзя. Красота – это прекрасно и чудесно. Только это всё таки просто код.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Banned
[+5 04.06.13]
[+1 08.06.13] Регистрация: May 2013
Сообщений: 52
|
Wolsh, да всё-всё! Тише-тише! Уже все поняли, чего вы хотите.
Вот: http://www.adobe.com/ru/support/contact/ Дело за малым.
Который через сто лет даже в школе читать не будут.) |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Wolsh, я представляю, что мог бы написать про избыточность UI
![]() |
|
|||||
|
Banned
[+5 04.06.13]
[+1 08.06.13] Регистрация: May 2013
Сообщений: 52
|
Да весь AS избыточен. В топку его. Машинный код - за ним будущее!
|
|
|||||
|
Согласен с Wolsh, что избыточность методов чисто морально напрягает. Там ещё эвент диспетчер не всегда нужен. Но на практике это не приносит проблем, а иногда даже полезно. Вот недавно возился с minimalComps компонентами, пришлось в одном случае сверху насильно выдрать маску из компонента.
__________________
Дети не должны знать о своих родителях |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Цитата:
Давай серьезно и без деградарующих примеров других языков? А то получается так: был AS1 и все торчало наружу. Появился AS2 и народ обрадовался, что есть классы, типизация, модификаторы доступа (хотя до private можно было легко достучаться через ['имя']). Появился AS3, народ от счастья с ума сходит от возможностей. Но проходит время и Psycho Tiger по сути говорит, что мы мучаемся и надо писать в стили AS1. Собственно, Wolsh излагает то, о чем я ему душу изливал недели две назад. Я был страшно недоволен отсутствием примитивного контейнера для компонентов. Это не болезнь, это желание иметь законченный и целостный компонент. И не перестраховка от атомных взрывов, а защита от дурака. Я хочу быть уверенным, что мой компонент случайно не сломают добавив туда что нить через addChild. Или что загрузив в компонент свой спрайт, не сломают компонент через parent. И если поломки через addChild и тп, можно защитится через переопределение. То из-за parent придется переопределять все. А можно забить. Или же все реализовать в FP примитивный контейнер, где почти все методы и свойства protected и по необходимости делать реализацию для public. Плохо от этого точно не было бы. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|