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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.09.2013, 15:50
Dessl вне форума Посмотреть профиль Отправить личное сообщение для Dessl Найти все сообщения от Dessl
  № 1  
Ответить с цитированием
Dessl
 
Аватар для Dessl

Регистрация: Feb 2008
Сообщений: 36
Question Как услышать событие родителем?

Добрый день,

Есть основной класс:
Код AS3:
public class Main extends MovieClip
	{
 
		private var xReader:XMLReader;
 
		public function Main()
		{
			xReader = new XMLReader("items.xml");
			xReader.addEventListener("xmlLoaded", xmlLoaded, true);
		}
 
		private function xmlLoaded(e:Event) 
		{
			trace("456");
		}
	}
и есть класс XMLReader(сокращенно):
Код AS3:
public class XMLReader extends EventDispatcher
	{
		private var _xmlSrc:String;
		private var xml:XML;
 
		public function get xmlSrc():String
		{
			return _xmlSrc;
		}
		public function set xmlSrc(value:String):void
		{
			_xmlSrc = value;
		}
 
		public function XMLReader(src:String = "")
		{
			this.xmlSrc = src;
			if(this.xmlSrc != "") this.loadXML();
		}
 
		public function loadXML(src:String = "")
		{
			if(src != "") this.xmlSrc = src;
 
			var loader:URLLoader = new URLLoader(new URLRequest(this.xmlSrc));
			loader.addEventListener(Event.COMPLETE, xmlCompleteLoadHandler);
		}
 
		private function xmlCompleteLoadHandler(e:Event):void
		{
			this.xml = XML(e.target.data);
			this.dispatchEvent(new Event("xmlLoaded", true));
		}
	}
Если XMLReader наследовать от Sprite и в основном классе добавлять на сцену, то callback у основного класса отрабатывает.
Как при текущей схеме поймать выполнение события в основном классе? так не работает.

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

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Main
Код AS3:
xReader.addEventListener("xmlLoaded", xmlLoaded);
XMLReader
Код AS3:
this.dispatchEvent(new Event("xmlLoaded"));
__________________
Нормально делай — нормально будет!

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

Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
В методе
Код AS3:
addEventListener("xmlLoaded", xmlLoaded, true);
третий параметр означает слушать событие в фазе захвата, а это имеет смысл только для визуальных объектов, т.е. наследованных от DisplayObject. Подробнее про фазу захвата читайте здесь .
__________________
FlashPress.ru | Blog

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

Регистрация: Feb 2008
Сообщений: 36
Спасибо большое! Работает. Буду читать про фазы захвата.

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

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Раз пошла такая пьянка - посоветую сигналы в очередной раз

Код AS3:
//XMLReader
public var xmlLoadedSignal:Signal;
...
//В методе
xmlLoadedSignal.dispatch();
Код AS3:
//Main
...
xReader.xmlLoadedSignal.add(xmlLoaded);
Это не призыв к действию, просто рассмотрение проблемы с разных сторон)

сигнал паблик для простоты

Старый 18.09.2013, 01:59
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
В топку сигналы, в языке AS3 - события! - отсальное все ванильная ересь. Не ищите гемороя на задницу, 90% разработчиков и контор пользуются событиями, а не псевдо-событиями-сигналами
__________________
Марк Tween

Старый 18.09.2013, 03:29
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
okouser не несите ерунды, тут и так все понятно, чего разжевыввать. Где есть сигналы ? например в си, и активно ипользуются. В каждом языке есть свои отведенные для него правила и способы. Делать миграцию с си во флеш собираетесь?
При этом на личности тут не переходили. Понятно, что каждый товарищь по своему пишет код, выбирает свою линию и идет по ней. Например импонирует, что Babylon - все переводит в xml - смешно конечно, но это его стилистика, Kumokairo - все в сигналы лезет, каждый в свое. В данном же случае - чистые добрые события AS3 - лушчее решение, да и как сказал выше в 90% случаях их достаточно и городить велосипед не надо. Пойду умолкать и тешить свой ЧСВ
__________________
Марк Tween

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
А отличие в том, что я ничего не кидаю в топку, понимая, что в небольших автономных проектах прекрасно подойдут и сигналы, особенно учитывая минусы реализации событий в AS.
Плюсую. Они подойдут и для больших проектов, если все грамотно сделать.
Цитата:
В топку сигналы, в языке AS3 - события! - отсальное все ванильная ересь.
Я бы не был так категоричен. А как на счет тех же колбэков? Есть случаи, когда колбэки реально удобнее событий. Например если нужен класс, который делает загрузку картинок, каким-нибудь простым вызовом new ImageLoader(onLoadedHandler, imageUrl);
картинка загрузится и передастся параметром в onLoadedHandler. При этом в самом коде не будет добавляться никаких слушателей. Все слушатели загрузки, прогресса и ошибок безопасности уже на совести ImageLoader. Он полностью автономен. Эта система хуже событий? Я так не думаю

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

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Несмотря на то что in4core пьян – едва попадает по кнопкам – и что он in4core – я поддержу его мысли.

Я против солянки, а нативные DO диспатчат именно события. Такие дела.

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

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Цитата:
Сообщение от okouser Посмотреть сообщение
Обратите внимание на мой комментарий от 20:33.
понимая, что в небольших автономных проектах прекрасно подойдут и сигналы, особенно учитывая минусы реализации событий в AS.
Я понимаю по другому сигналы как раз больше для шаредных проектов

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

Теги
bubbles , dispatchEvent
Опции темы
Опции просмотра

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

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


 


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


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