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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 27.04.2008, 22:24
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 11  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
почему не использовался стандартный евентдиспатчер?

и зачем вообще писать его в таком виде? чем вас не устроили обычные методы?

Старый 28.04.2008, 00:28
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 12  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
а в каком виде его надо было написать? )))
стандартный евентдиспатчер никуда не делся, для внутриклассовых собшений он остается. этот класс позволяет гонять события наружу - не задумываясь о том что и кто будет с ними делать.
раньше что бы что-то вызвать в JS надо было знать названия функций - теперь это вообще не обязательно JS сам подписывается, сам отписывается, сам генерит события. Это мегаудобно, и мне и яваскриптеру.

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

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
так чем вас не устроил интерфейс IEventDispatcher ? зачем изобретать велосипед, с квадратными колёсами?


Последний раз редактировалось BlooDHounD; 28.04.2008 в 00:48.
Старый 28.04.2008, 01:58
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 14  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
а при чем тут IEventDispatcher, ведь если его использовать, у меня код многократно усложнится!?
Мне хотелось бы увидеть пример...
Я не говорю что мой класс идеален, но, повторюсь, альтернатив еще не видел ни с квадратными колесами ни с круглыми )

Старый 28.04.2008, 07:21
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 15  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
ALiEN_, по-моему штучка полезная.
А можете выложить исходники простенького примерчика, чтобы нагляднее было?

Старый 28.04.2008, 11:21
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 16  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
да полно альтернатив просто найти надо

использование вашего класса несёт под собой несколько проблем:
1. я НЕ использую его как встроенный EventDispatcher, хотя он выполняет туже функцию.
2. нету типизации, используются динамические объекты.
3. отсутствуют слабые ссылки.

прозрачность работы достигается не тем, что у вас мало кода написано, а тем что сторонний разработчик не должен изучать подозрительные махинации с вашими методами.

Старый 28.04.2008, 13:35
ALiEN_ вне форума Посмотреть профиль Отправить личное сообщение для ALiEN_ Посетить домашнюю страницу ALiEN_ Найти все сообщения от ALiEN_
  № 17  
Ответить с цитированием
ALiEN_
UFO
 
Аватар для ALiEN_

Регистрация: Jul 2007
Сообщений: 173
BlooDHounD

ну где же? я не нашел. честно отписался вначале темы, что сначала искал, но может плохо. вобщем если поделишься альтернативой, буду благодарен. ))

1. он совсем не EventDispatcher в этом и разница. Он много шире - мостик между JS и AS событиями. EventDispatcher остается только для внутриклассовых событий, хотя можно, безусловно и использовать только мой класс и он справится на ура.
2. тут никуда не деться, ведь в JS все является объектами. И как раз только благодаря этому получилось этот класс написать.
3. Слабые ссылки? a зачем здесь слабые ссылки? в какое место их прикрутить ))

где тут подозрительные маханации? )) Что под этими махинациями имеется ввиду?

teebooter, сегодня выложу полноценный пример, надеюсь будет время.

Старый 28.04.2008, 13:38
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 18  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
ALiEN_, прозрачно — это когда я могу написать dispatchEvent(new MyCustomEvent(MyCustomEvent.CUSTOM_EVENT)) и оно будет получено в JS.
А то что вы написали ни в какие ворота. Есть стандартная схема событий, вы зачем-то придумали свою, не вписывающуюся ни в какие стандарты.

Старый 28.04.2008, 14:09
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 19  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Сообщение от ALiEN_ Посмотреть сообщение
1. он совсем не EventDispatcher в этом и разница. Он много шире - мостик между JS и AS событиями. EventDispatcher остается только для внутриклассовых событий, хотя можно, безусловно и использовать только мой класс и он справится на ура.
"совсем нет", но при этом я могу его так использовать? тогда где слабые ссылки, приоритеты, и т.д.?
Цитата:
Сообщение от ALiEN_ Посмотреть сообщение
2. тут никуда не деться, ведь в JS все является объектами. И как раз только благодаря этому получилось этот класс написать.
мне казалось что это класс для АС3 ... почему-то, когда серверники пишут сервер на Джаве под флэш, они не исходят из того, что у нас массивы имеют динамическую типизацию.
Цитата:
Сообщение от ALiEN_ Посмотреть сообщение
3. Слабые ссылки? a зачем здесь слабые ссылки? в какое место их прикрутить ))
а в какое место использовать ваш класс "на ура", если он не соответсвует простейшим принципам АС3 ?
Цитата:
Сообщение от ALiEN_ Посмотреть сообщение
где тут подозрительные маханации? )) Что под этими махинациями имеется ввиду?
всё выше перечисленное является такими махинациями.

и по существу ... прозрачность, это когда человек не должен адаптироваться к новым инструментам. если я делаю заявку на прозрачность, то я инкапсулирую весь код внутри класса, а не пытаюсь вынести на ружу свои кривые реализация внутренней механики.

Старый 28.04.2008, 14:19
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 20  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
вот вам пример моей упращённой реализации прозрачной работы с ExternalInterface,
Код:
package by.blooddy.platform.external {

	import flash.external.ExternalInterface;
	import flash.utils.describeType;
	import flash.utils.getQualifiedClassName;
	import flash.utils.flash_proxy;

	use namespace flash_proxy;

	public dynamic class ExternalConnection {

		public function ExternalConnection() {
			super();
			if ( ExternalInterface.available ) {
				var methods:XMLList = describeType( this ).method.@name;
				var name:String;
				for each ( var method:XML in methods ) {
					name = method.toXMLString();
					ExternalInterface.addCallback( name, this[name] );
				}
			} else {
				// throw
			}
		}

		public function call(name:String, ...arguments):* {
			if ( ExternalInterface.available ) {
				arguments.unshift(name);
				ExternalInterface.call.apply( ExternalInterface, arguments );
			} else {
				// throw
			}
		}

	}

}
любой наследник этого класса будет являться слушателем ExternalInterface. любой метод автоматически добавляется в callback. получаем некое подобие NetConnection и LocalConnection. дальше его можно расширить до уровня работы со свойством client, прикрутить диспатч евент, и динамический callback при добавлении нового метода.

самое главная демонстрация этого кода, это то, что разработчик не парится про проверки на avaible и добавления колбэков. это называется прозрачная работа. лежит яваскрипт, или C# приложение, разработчику наплевать: он уверен, что класс родитель справился со своей задачей на ура.

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

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

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


 


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


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