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

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

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

Регистрация: Aug 2007
Сообщений: 168
По умолчанию Неизвестная ошибка при попытке отправить событие "дальше"

Здравствуйте. Есть класс MainEvent.as:
Код AS3:
package base.events {
	import flash.events.Event;
 
	public class MainEvent extends Event {
 
		protected var $data:*;
 
		public function MainEvent(type:String, data:* = null, bubbles:Boolean = false, cancelable:Boolean = false) { 
			$data = data;
			super(type, bubbles, cancelable);
 
		} 
 
		public override function clone():Event { 
			return new MainEvent(type, data, bubbles, cancelable);
		} 
 
		public override function toString():String { 
			return formatToString("MainEvent", "type", "bubbles", "cancelable", "eventPhase"); 
		}
 
		public function get data():* { return $data; }
 
	}
 
}
И есть слушатель этого события, смысл существования которого в том, чтобы передать его дальше (глубже в иерархию экранных объектов), до которых оно (нужное событие) по непонятной причине не доходит:
Код AS3:
this.addEventListener(CHANGE_STATE, onChangeStateNeeded);
private function onChangeStateNeeded(e:MainEvent){
	cont.dispatchEvent(e);//cont - спрайт в котором вложена серия объектов, в которых находятся объекты  жаждущие получить событие
}
Но вот как раз при выполнении этого слушателя происходит ошибка (текст из FlashDevelop):
Код:
[Fault] exception, information=undefined
Почему так? Ведь если отправлять вместо MainEvent, Event то ошибки нет

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Но ведь у вас в MainEvent нет константы CHANGE_STATE,
Код AS3:
public class MainEvent extends Event {
protected var $data:*;
private static const CHANGE_STATE:String="change_state" //<------
public function MainEvent(type:String, data:* = null, bubbles:Boolean = false, cancelable:Boolean = false) { 
	$data = data;
	super(type, bubbles, cancelable);
 }
и правильно вроде будет
Код AS3:
this.addEventListener(MainEvent.CHANGE_STATE, onChangeStateNeeded);

Старый 13.11.2010, 19:36
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 3  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
samana, у вас тоже ее нет для других классов, она у вас приватная..и вообще константа может быть и не в классе события..это, скажем так - классический подход.

то автор - не понятно как дети должны получить событие, подписав на него родитель-контейнер.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от cleptoman Посмотреть сообщение
samana, у вас тоже ее нет для других классов, она у вас приватная..
Точно, ошибся.

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

Регистрация: Aug 2007
Сообщений: 168
А как-же поток событий? В коде я указал, но пробовал все возможные варианты: слушать фазу захвата, отправлять в плавание, и то и другое вместе - бесполезно, в результате пришлось пихать в классы ссылки друг на друга, зато если отправлять событие из целевого контейнера, оно прекрасно и доплывает и перехватывается где угодно, я уже совсем запутался

Старый 13.11.2010, 20:59
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 6  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
события глубже испускателя не опускаются..
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Aug 2007
Сообщений: 168
то-есть получается если у спрайта есть детишки, то его крик вроде "идите кушать", никто кроме бедного родителя не услышит? Как же тогда их покормить?

Старый 13.11.2010, 21:33
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Дети сами должны говорить, что хотят есть. Родители - реализаторы.
__________________
тут я

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
родитель детям через их методы отдает то, что им нужно..кому нужно и когда нужно
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Aug 2007
Сообщений: 168
Ясно, будем учить

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

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

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


 


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


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