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

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

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от orcpochta Посмотреть сообщение
как же не относится? дети есть, слушатели есть
Структура вложенности не имеет значения для сравнения скорости способа "подписывать родителя" и способа "подписывать каждого ребёнка". В ЛЮБОМ случае событие будет всплывать от того объекта где произошло, до самого верха иерархии отображения. В ЛЮБОМ случае на каждом "этаже" оно будет смотреть, есть ли листнер. В ЛЮБОМ случае листнер выполнится один раз.
Затраты на всплытие, проверки наличие листнера будут одинаковы, надеюсь это понятно. отличатся будут только затраты подписки/отписки. при 50 объектах вы 50 раз подпишите каждого ребёнка или один раз - родителя. вне зависимости от того является ли отец "дедом", "прадедом" и т.п. =)
__________________
Могу ошибаться... =)

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

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

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
BlooDHounD, возможно =) в педагогике вроде считается что повторять надо 3 раза... =)
__________________
Могу ошибаться... =)

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

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
повторение - мать утечения...))
семь раз прочти один раз напиши))

спасибо, вобщем ответили на вопрос и примерно логика ясна
__________________
Коллекционирую чужие ActionScript Блоги

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Только ещё момент есть: например, по клику если подписан лишь родитель, а нужно получить дитё, которое лежит под мышкой нужно провести какие-то операции, например getObjectsUnderPoint, и в итоге мы получаем доп. нагрузку (пусть и мизерную, в другом случае это может быть чуть более существенно) в момент исполнения программы. Затрачивая больше памяти и подписывая все N объектов на клик мы загружаем ЦП единожды, во время подписки, а по клику сразу имеем нужный объект.

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

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

Регистрация: Sep 2002
Сообщений: 30,787
stopPropagation наше всё.

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Только ещё момент есть: например, по клику если подписан лишь родитель, а нужно получить дитё, которое лежит под мышкой нужно провести какие-то операции, например getObjectsUnderPoint, и в итоге мы получаем доп. нагрузку (пусть и мизерную, в другом случае это может быть чуть более существенно)
Э... Можно по подробнее? "дитё" по которому кликнули хранится в currentTarget. Координаты клика - в event.stageX/Y. Какие вычисления?
__________________
Могу ошибаться... =)

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

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
в target, в currentTarget хранится тот, кого подписали на событие.
Код AS3:
package  
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
 
 
	public class JustMain extends Sprite
	{
 
		public function JustMain() 
		{
			super();
			var spr:Sprite = new Sprite();
			var spr2:Sprite = new Sprite();
			var spr1:Sprite = new Sprite();
			spr2.graphics.beginFill(23412343);
			spr2.graphics.drawRect(0, 0, 100, 100);
			spr2.graphics.endFill();
 
			spr1.graphics.beginFill(23412343);
			spr1.graphics.drawRect(0, 0, 100, 100);
			spr1.graphics.endFill();
 
			spr.addChild(spr2);
			spr.addChild(spr1);
 
			spr1.y = 200;
			super.addChild(spr);
 
			spr.addEventListener(MouseEvent.CLICK, onClick);
 
		}
 
		private function onClick(e:MouseEvent):void 
		{
			(e.currentTarget as Sprite).x += 10;
			(e.target as Sprite).y += 10;
		}
 
	}
 
}
А по тому что ты сказал - да, ты прав. Туплю последнее время много...

Старый 27.04.2010, 18:13
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 30  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
в target, в currentTarget хранится тот, кого подписали на событие.
да, я "оговорился" =)
__________________
Могу ошибаться... =)

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

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

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


 


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


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