Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.06.2013, 02:28
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 41  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Собственно, Wolsh излагает то, о чем я ему душу изливал недели две назад. Я был страшно недоволен отсутствием примитивного контейнера для компонентов. Это не болезнь, это желание иметь законченный и целостный компонент. И не перестраховка от атомных взрывов, а защита от дурака. Я хочу быть уверенным, что мой компонент случайно не сломают добавив туда что нить через addChild. Или что загрузив в компонент свой спрайт, не сломают компонент через parent. И если поломки через addChild и тп, можно защитится через переопределение. То из-за parent придется переопределять все. А можно забить. Или же все реализовать в FP примитивный контейнер, где почти все методы и свойства protected и по необходимости делать реализацию для public. Плохо от этого точно не было бы.
Да не, контейнер с одними приватами был бы кстати. Я не о том говорю или меня не так понимают

Я тут писал-писал, а потом стёр. Увидел, что ты назвал Python и Ruby "деградирующими языками". Видимо, у нас настолько сильно расходятся понятия красивого, что к общему мы никогда не придём.

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

Старый 09.06.2013, 16:19
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 42  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Гибкость подразумевает что тебе не придется заниматься сомнительным хакингом и кастрировать полтора-два десятка пабликов у класса, играющего основную роль в любом приложении, и делать это всегда, в каждом проекте, потому что "нормальный" нативный класс тебе не предоставили. Речь ведь идет не о замене Спрайта на ЗакрытыйКонтейнер! Спрайт это удобная оболочка чтобы что-то сгруппировать по-быстрому. Он в любом случае должен остаться, даже не говоря о совместимости версий. Речь о том, что нужен ЕЩЕ ОДИН тип-наследник InteractiveObject (а Tails хочет и еще один DisplayObject, то есть без EventDispatcher) c собственным списком отображения. Видимо, это противоречит современному состоянию концепции и реализации СпискаОтображения. Вот только эта концепция напрочь противоречит самим основам ООП. И с точки зрения ООП, красоты и гибкости, AS3 с его единственным дырявым контейнером как раз и является "одной здоровенной затычкой", затыкая любые поползновения сделать грамотно и красиво.
pS. Важен не только результат в виде бабла, когда "работает и ладно". Хочется так же получать удовольствие от качественно сделанной вещи и от процесса ее создания.

Я впервые споткнулся на этой теме, когда захотел наконец написать себе более-менее универсальный Лейаут, систему для автоматического управления расположением и масштабированием любого визуального контента. До этого меня тоже особо не коробило — когда лепишь какие-то конкретные штучки "на раз", всегда сохраняется иллюзия контроля, ты просто знаешь, что "сюда лезть не надо" и вроде бы все в порядке. А здесь вся разработка как раз и была контейнером, принимающим и опекающим детей. Контроль над каждым ребенком являлся самой сутью Лейаута. И проблема бесконтрольного доступа к беззащитным детишкам нарисовалась во всей красе. Точно так же с компонентами, контролами, фреймворками. Как только появляются амбиции сделать какой-то реюзабельный инструмент, облегчающий работу в будущем, ООП перестает быть эфемерным параноидальным призраком. Хочется сделать все качественно и надежно. И оказывается, что реализация языка не позволяет этого сделать из-за генетической болезни: есть либо неперевоспитываемый гулящий контейнер, либо не контейнер.
__________________
Reality.getBounds(this);

Старый 09.06.2013, 16:37
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 43  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Увидел, что ты назвал Python и Ruby "деградирующими языками".
Я такого не говорил, я сказал "деградирующие примеры". Это как слова "глупая у вас мысль" воспринять как "он меня глупым назвал"
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 09.06.2013, 16:50
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 44  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Мое частное мнение: каркас системы должен быть типизирован и заинтерфейсен,т.е. фактически это должен быть движок для контента, а любой контент лейатируемый в контейнеры должен определяться по XML.

Старый 09.06.2013, 17:26
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 45  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вот только Списку Отображения нет дела до ваших типов и интерфейсов. Он просто напросто параллелен всем вашим ООП-стараниям. Через getChildAt() можно добраться до любого ДО и тупо удалить его через parent.removeChild(). Для него есть только один тип — ДО, и только один модификатор доступа — паблик.
Только пожалуйста, не начинайте новую волну размышлений об оверрайдах. Я итак до глубины души поражен, с каким рвением народ стал отстаивать свое право страдать и извращаться.
__________________
Reality.getBounds(this);

Старый 09.06.2013, 17:44
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 46  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
любой контент лейатируемый в контейнеры должен определяться по XML.
Везде вы со своим XML, что же он настолько идеален и для всего подходит?
Просто уже надоело его навязывание.

Старый 09.06.2013, 18:22
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 47  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Что такое ООП? Это механизм работы с объектом. В данном случае с DOC.
А теперь представьте, что у Вас один механизм работы с ДОС, а у кого то другой и что Вы будете делать без интерфейсов если всё закрыто?
На XML можно более менее понятно описать алгоритм работы и
+ это объект который хранится в памяти как иерархическая структура и + может быть сохранена во внешнем файле.
override часто как раз и преодолевает отсутствие интерфейсов. Что неправильно в корне. Поэтому компоненты в AS3 это нечто неописуемое. Последнее слово является ключевым.

Добавлено через 10 минут
Cписок отображения это часть Вида в паттерне MVC. Где всё остальное?

Старый 09.06.2013, 20:20
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 48  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Я такого не говорил, я сказал "деградирующие примеры".
Тут видишь, дело-то в другом.
Когда программист дёргает приват извне – это значит что у него есть на это везкие причины. Настолько везкие, чтобы дёрнуть приват. Я говорю о людях, которые достаточно квалицифированны чтобы понимать последствия, конечно Я никогда не встречал ситуации, в котором можно было бы дёрнуть приват в AS3. Но встречаю, когда пишу на Ruby/Rails.

Цитата:
Я итак до глубины души поражен, с каким рвением народ стал отстаивать свое право страдать и извращаться.
Не, ты меня не так понял. Я за "закрытый" DOC, идея здравая. Я про то что его отсутствие – не такая трагедия, как мне кажется ты считаешь.
То есть, когда статические языки имеют 2 публичных метода, а не 20, из которых 18 – неправильные – это здорово.
Но вот, ты как девелопер знаешь, что унаследованный addChild в твоих компонентах работает неправильно. Ты можешь его вызвать, но это приведёт к логической ошибке. Поэтому, всё сводится к тому чтобы помнить, дёргать addChild или addCustomChild. Я не уверен, но [Exclude] у оверрайденных методов же убирает его с автокомплита? ...

Да, это костыль. Да, это проблема. Но если бы было голосование, что добавить в язык/API – приватный DOC был бы для меня на последних местах.
Цитата:
На XML можно более менее понятно описать алгоритм работы
Вот так?
Код:
<root>
<actions>И тут в общем марио бегает по платформам а работает всё на движке папервижн и на мобилках можно</actions>
</root>
Извините за сарказм, конечно – но алгоритмы на XML описывать уже явно перебор. Вы программировать на нём уже тоже пытались?

Старый 09.06.2013, 20:27
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 49  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Мы говорим про рантайм, то есть сборку вида по XML и выполнение предписанных сценарием действий.

Старый 09.06.2013, 20:44
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 50  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Сообщение от Babylon Посмотреть сообщение
Мы говорим про рантайм, то есть сборку вида по XML и выполнение предписанных сценарием действий.
Да какая разница, рантайм или компайл-тайм.
Вы действительно считаете что XML удобен для описания алгоритмов? Опишите какой-нибудь, мне интересна эта "красота" )

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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