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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.11.2009, 19:26
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 21  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
1. Визуальные объекты. Как флеш определяет, по какой кнопке щелкнули? Например, составляет список визуальных объектов вроде Имя:Координаты, при щелчке сравнивает (вычисляет...) координаты курсора с координатами из списка, если подходят - берет соответствующее имя объекта и записывает в target объекта MouseEvent?
2. Событийная модель только для предопределенных событий? Или внутреннюю бизнес-логику так же можно построить на событиях?

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
1 примерно да
2 нет, да
__________________
я могу стать всем, если только захочу

Старый 09.11.2009, 00:00
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 23  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Вообще вуглядит глупо, вызвали функцию с аргументом, и вообще проигнорировали аргумент. Вообще, было бы конечно идеально, если бы разработчик мог сам решать какая сигнатура должна быть у слушателя, но, раз уж у нас арсенал средств ограничен, то уж что есть...
Мне в этом отношении очень понравилась Qt-шная модель сигнал-слот. Жаль, что на флэше такое по-нормальному реализовать не получится...

Старый 09.11.2009, 13:38
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 24  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
Цитата:
Сообщение от Felicast Посмотреть сообщение
1 примерно да
2 нет, да
Ясно, спасибо.

Не могу понять преимущества модели, что "перегружать" обработчик теперь не нужно. Зачем? Например, в билдере, в main создал нужные объекты, инициализировал\провел начальные операции. Затем в обработчике прописываю все действия над этими объектами... Либо это из-за специфики флеша..

з.ы.
На первый взгляд в AS3 можно сделать также - написать все в одном обработчике самого EventDispatcher-наследника. Только в билдере объекты были в main и их не нужно было передавать в обработчик аргументом, а тут вроде так нельзя - хочешь использовать соседний объект - напиши его в списке аргументов.

Старый 09.11.2009, 14:34
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 25  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
на самом деле все примерно также как и в делфи. я же пример вам писал. просто в as более гибко и универсально все. и чтобы не копировать весь функционал, он помещен в класс EventDispatcher.
можете организовать события и как в делфи. никто вас ругать не будет
Код AS3:
public class Simple extend Sprite
{
	private var _onClick:Function;
	private function clickHandler(event:MouseEvent):void
	{
		if (_onClick)
		{
			_onClick(event);
		}
	}
	public function Simple()
	{
		super.addEventListener(MouseEvent.CLICK, clickHandler);
	}
	public function set onClick(value:Function):void
	{
		_onClick = value;
	}
	public function get onClick():Function;
	{
		return _onClick;
	}
}
просто никакого преимущества вы не получите

Цитата:
Не могу понять преимущества модели, что "перегружать" обработчик теперь не нужно
о каких перегрузках идет речь?
__________________
я могу стать всем, если только захочу

Старый 09.11.2009, 20:04
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 26  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
Цитата:
Сообщение от Felicast Посмотреть сообщение
на самом деле все примерно также как и в делфи. я же пример вам писал.
:-) точно.

Цитата:
о каких перегрузках идет речь?
Неправильно сказал. Переопределение:
"С обычными обработчиками событий, такими как обработчик события onLoad для XML объекта, можно определить только одну функцию onLoad. Если вы определите ее снова, то прежняя функция onLoad будет переписана и вытеснена новым определением. Было очень трудно иметь более одного обработчика, привязанного к одному событию."

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
Неправильно сказал. Переопределение:
"С обычными обработчиками событий, такими как обработчик события onLoad для XML объекта, можно определить только одну функцию onLoad. Если вы определите ее снова, то прежняя функция onLoad будет переписана и вытеснена новым определением. Было очень трудно иметь более одного обработчика, привязанного к одному событию."
дак в делфи как раз данный подход и используется. он наиболее простой. но и не очень гибкий.
в ас можно использовать не один обработчик, а сколько угодно.
__________________
я могу стать всем, если только захочу

Старый 10.11.2009, 11:33
TommyLee вне форума Посмотреть профиль Отправить личное сообщение для TommyLee Найти все сообщения от TommyLee
  № 28  
Ответить с цитированием
TommyLee

Регистрация: Sep 2009
Сообщений: 130
Цитата:
Сообщение от TommyLee Посмотреть сообщение
...такими как обработчик события onLoad для XML объекта...
Цитата:
Сообщение от Felicast Посмотреть сообщение
в ас можно использовать не один обработчик, а сколько угодно.
Ааа, может имеется ввиду обработчик для стандартных классов? Тогда конечно, просто я привык к билдеру\делфи: добавил компонент и заполняешь его обработчик, который надо. А в as3 так невозможно.


Последний раз редактировалось TommyLee; 10.11.2009 в 11:35.
Старый 10.11.2009, 12:21
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 29  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
обработчик не для классов, а для событий. в дельфи ( и в ас2) на каждое событие предопределена одна-единственная ф-ция обработчик) в ас3 единственное что надо добавить 1 строчку:
Код AS3:
диспетчерCобытия.addEventListener ("имя_события", функцияОбработчик);
а дальше всё так-же.
Причём если делаешь свой компонент, ничто не мешает сделать предопределенные ф-ции обработчики
Код AS3:
package  
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	/**
	 * Кастомный компонент
	 * @author k0t0vich
	 */
	public class CustomComponent extends EventDispatcher
	{
		// ф-ция обоработчик для переопределения
		public var onSomethingChange:Function;
 
		public function CustomComponent() 
		{
			addEventListener(Event.CHANGE, onSomethingChange);
		}
 
		public function changeSmth()
		{
			dispatchEvent(new Event.CHANGE);
		}
	}
 
}
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 10.11.2009 в 12:27.
Старый 10.11.2009, 12:31
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 30  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
Цитата:
Сообщение от Котяра Посмотреть сообщение
обработчик не для классов, а для событий. в дельфи ( и в ас2) на каждое событие предопределена одна-единственная ф-ция обработчик) в ас3 единственное что надо добавить 1 строчку:
Код AS3:
диспетчерCобытия.addEventListener ("имя_события", функцияОбработчик);
а дальше всё так-же.
причем в отличие от того же делфи, типов событий может быть сколь угодно и можно манипулировать ими динамически.
например
Код AS3:
for (var i:int = 0; i < eventCounts; ++i)
{
	addEventListener("Событие" + i.toString(), someHandler);
}
пример конечно надуманный, но показывает, что можно динамически добавлять не только обработчики, но и типы (не спрашивайте для чего это может понадобиться - сам не знаю)
__________________
я могу стать всем, если только захочу

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

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

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


 


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


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