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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.03.2012, 12:34
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 41  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от hvostoblud Посмотреть сообщение
...но суть та же вроде?
...зачем плодить сущности и изобретать вилосипеды.
Суть та же, все уже сделано, велосипеды от лукавого.
Сам спросил — сам ответил.
__________________
Поймай яблоко 2!

Старый 13.03.2012, 13:09
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 42  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Цитата:
Сообщение от gloomyBrain Посмотреть сообщение
Факт передачи функции куда-либо по ссылке вызывает у меня тремор и желание напиться. Потому что эта передача может происходить тут, а может здесь, а может еще вооон-там. И привет - ищем по проекту что же мы можем куда-то передать и где. Я понимаю, что нормальные пацаны юзают дебагер, так что у них таких проблем нет. У меня их тоже нет, потому что у меня кнопка (и не-кнопка тоже) отсылает события.
Ну вместо "передачи функции куда-либо по ссылке" напишите "подписка обработчика". Плюс т.к. как минимум обработчик может быть не один и просмотреть все обработчики нет возможности, то отследить. что происходит может быть сложнее.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


Последний раз редактировалось -De-; 13.03.2012 в 13:31.
Старый 13.03.2012, 13:29
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 43  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
ваши доводы в пользу использования тысячи слушателей событий противоречат рекомендациям коллина мука.
Это написано после моего сообщения, и видимо относится ко мне? Не надо искать новых оппонентов, у Вас их достаточно. Я всего лишь пытаюсь развеять некоторые заблуждения, поделившись опытом. Вы конечно вправе цепляться за них, искать цитаты в мировой литературе, громыхать именами – я и сам так делаю, когда нужно. Вы для себя решите, что для Вас лучше: отстоять свою "правоту" или разобраться в вопросе и повысить скиллы? Потому что я как модератор не вижу диалога, вижу Вас в боевой стойке с выдранной из Мука страницей. Из Мука, которого большинство Ваших оппонентов прочитали и изучили не по одному разу, и не по десятку раз использовали на практике. Я советую Вам перестать огрызаться и начать разговаривать. Польза от этого будет Вам в первую очередь. А заодно и нам, когда мы услышим Ваши доводы и мысли.
Пока что было приведено три довода.
1) Удобство отключения слушателя для множества объектов.
Ну я показал, как это делается без костылей, стандартными методами ActionScript, созданными как раз для этого.
2) "то как реализовано у меня больше похоже на полиморфизм".
Полиморфизм имеет очень четкое определение, на него не может быть "похоже". Полиморфизм это когда объект одного типа может быть безопасно заменен объектом другого типа. Например в addChild() вы можете передать как Sprite, так и TextField. То, что Вы одну Function заменяете на другую Function, к полиморфизму никакого отношения не имеет. Поскольку в ActionScript отсутствуют шаблоны типов, функции не могут быть "типизированы", то есть их сигнатура не может быть гарантирована непосредственно, а только через интерфейс объекта-хозяина. Если в вашу кнопку передать метод, требующий параметры, произойдет исключение. И механизма контроля нет. Именно поэтому в ActionScript коллбэки нарушают ООП. В языках с шаблонами типов этой проблемы нет, и там использование коллбэков никого не напрягает.
Если хотите поддержку из мира ООП, ссылайтесь не на полиморфизм, а на паттерн Command (Action). Вот от него тут есть что-то))
3) Страничка из Мука.
Централизация не значит "коллбэки". Более того, централизация не значит "централизация всего и вся".
Есть (должна быть) иерархия, в этом суть ООП, в разделении на объекты с ответственностью. Вы пытаетесь всю ответственность отдать одному классу. Это сломает иерархию и все ее плюсы. В приложении должны быть выделены несколько модулей. Каждый отвечает за какой-то функционал. Допустим есть Меню, есть Статья, есть Галерея фоток. Каждый из этих модулей должен иметь свою специфическую логику, работая со своими частями. Главный класс вовсе не обязан знать все о картинках галереи и разбираться с их поведением. Он "общается" с Галереей, а Галерея управляет картинками. Вот в отношениях Галерея > картинки безусловно хороша централизация. Нет смысла вешать слушатели на каждую картинку, потому что действия идентичны. А если действия разные, централизация превращается в батарею свитчей и такие прелести ООП как повторное использование, расширяемость, абстрактность и полиморфизм исчезают навсегда. Пока у вас только кнопки, то есть все фигуранты одного типа, все нормально выглядит. Когда Мейн будет ловить и обрабатывать клики и от кнопочек Меню, и от картинок Галереи, вам никакая страница Мука не поможет, ибо это по ту сторону логики, и Мук туда не хаживал. Не цепляйтесь за буквы, выдранные из контекста.

Добавлено через 2 минуты
Пока писал, целую страницу накатали))
Рад что стало походить на диалог.
__________________
Reality.getBounds(this);

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Прошу прощения - не скажу ничего нового, но все же замечу: как много тем на форуме (да и мною поднятых в том числе) напоминают анекдот про Шварцнегера и бензопилу (я уже по моему писал где-то). Странные люди упорно не желают использовать даваемые им инструменты как положено, а пытаются делать все через южное полушарие. В данном случае я про событийную модель.

Старый 14.03.2012, 00:13
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 45  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
И это хорошо.
Сигналы - это тоже альтернативный велосипед. Правда списанный с сишарп и QT.
Но ведь хороший велосипед.
__________________
Отряд Котовскага

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Странные люди упорно не желают использовать даваемые им инструменты как положено
Странные люди ищут более простые решения для конкретных задач, только и всего. ООП хороша для сложных систем, но как все универсальное и при этом безотказное – слишком сложна и избыточна. Событийная модель в том числе: гибкая, но оттого же и тяжелая. Чаще всего мы не используем и десятой доли заложенного в ней функционала (как и во многом другом). Люди ищут варианты без лишних фич, это нормально. Кто-то использует мегабайтные сторонние библиотеки чтобы загрузить и вывести картинку на экран, и это тоже нормально)) Главное понимать, что и зачем, а не упираться рогами в концепции.
__________________
Reality.getBounds(this);

Старый 14.03.2012, 00:53
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 47  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
Событийная модель в том числе: гибкая, но оттого же и тяжелая
Но дело в том, что события зашиты в плеер и если мы будем использовать кастомные решения мы никак не выиграем ни в весе ни в скорости (хотя в скорости иногда можно выиграть всё-же: в блоге wvxwv есть его велосипедные сигналы, и они, вроде как, быстрее даже)
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 14.03.2012 в 14:43.
Старый 14.03.2012, 11:12
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 48  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Цитата:
Люди ищут варианты без лишних фич
Цитата:
блоге wvxwv есть его велосипедные сигналы и они, вроде как, быстрее даже
Ну да, но это поиск, и результат не малого опыта и временных затрат. Я говорю о том, когда мы явно пытаемся обойти очевидное решение, исходя из чисто теоретических соображений. Я сам неоднократно так делал, но редко когда оправдывал свои подходы, если они при этом, будучи примененными мною на практике, они не давали явной выгоды. Нафантазировать-то можно все что угодно.

Старый 14.03.2012, 21:00
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 49  
Ответить с цитированием
anmelegov
[+4 07.04.12]
[+1 20.01.12]

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
у меня кнопки нажимаются мышкой, одновременно можно мышкой нажать только 1 кнопку (потому что только один курсор). Различия скорости выполнения в наносекундах в данном случае не критичны

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Мне вот больше интересно другое.
Мы в кнопке подписываемся на клик, чтобы вызвать метод, который передали в кнопку по ссылке.
А почему нельзя сразу подписаться на клик с нужным методом?

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

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

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


 


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


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