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

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

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

Регистрация: Apr 2010
Сообщений: 170
По умолчанию Разные swf и одно событие

Всем доброго дня!

Смотрите как у меня получается, есть два проект: loader и game. В обоих проектах имеется класс GameEvent, который наследуется от класса Event. Суть такова, что вначале запускается loader, он грузит game и когда он его загрузил, то он подписывается на событие:

Код AS3:
addEventListener(GameEvent.READY,OnGameEventReady);
 
// ...
 
// Клип game.swf готов к работе
private function OnGameEventReady(_event:GameEvent):void
{
	removeEventListener(GameEvent.READY,OnGameEventReady);
 
	objGame.pGameLoader.funInviteFriends=VKDShowInviteBox;			
	objGame.startGame();
}
То есть я как бы ловлю от подгруженного клипа событие что тот выполнил определённый сценарий и после уже присваиваю его переменным нужные значения. То есть из loader я хочу обратиться к переменной в game, которая указывает на экземпляр класса в котором я хочу установить свои значения для переменных. И если я обращусь туда раньше чем этот экземпляр был создан, то произойдёт ошибка. Именно для этого я и хочу получать от game создал ли он экземпляр.

В самом же game 1 в 1 тот же самый код класса GameEvent:

Код AS3:
package D 
{
	import flash.events.Event;
 
	// Событие игры
	public class GameEvent extends Event
	{
		public static const READY			:String		= "D_GameEvent";
 
		public var dataType:String=null;					// Тип события
 
		public function GameEvent(_dataType:String)
		{
			dataType=_dataType;
 
			super(dataType,true,false);
		}
 
	}
 
}
И когда game готов, делаю:

Код AS3:
dispatchEvent(new GameEvent(GameEvent.READY));
Событие приходит в loader, но возникает ошибка преобразования (или как она там). Он не может отосланный класс преобразовать в принимаемый. Помогает тупая замена:

Код AS3:
// Клип game.swf готов к работе
private function OnGameEventReady(_event:*):void
{
	removeEventListener(GameEvent.READY,OnGameEventReady);
 
	objGame.pGameLoader.funInviteFriends=VKDShowInviteBox;
 
	objGame.startGame();
}
Если для данной ситуации это терпимо (хоть и не правильно), то что будет когда мне надо будет у события извлекать параметры?!

Есть ли какой-то способ правильно получать событие?

Добавлено через 9 минут
Конечно можно так:

Код AS3:
// Клип game.swf готов к работе
private function OnGameEventReady(_event:*):void
{
	removeEventListener(GameEvent.READY,OnGameEventReady);
 
	var event:GameEvent=_event as GameEvent;
 
	objGame.pGameLoader.funInviteFriends=VKDShowInviteBox;
	objGame.startGame();
}
Только на сколько это правильно.

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

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

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


 


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


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