|
|
|||||
Регистрация: Apr 2010
Сообщений: 170
|
Разные swf и одно событие
Всем доброго дня!
Смотрите как у меня получается, есть два проект: loader и game. В обоих проектах имеется класс GameEvent, который наследуется от класса Event. Суть такова, что вначале запускается loader, он грузит game и когда он его загрузил, то он подписывается на событие: addEventListener(GameEvent.READY,OnGameEventReady); // ... // Клип game.swf готов к работе private function OnGameEventReady(_event:GameEvent):void { removeEventListener(GameEvent.READY,OnGameEventReady); objGame.pGameLoader.funInviteFriends=VKDShowInviteBox; objGame.startGame(); } В самом же game 1 в 1 тот же самый код класса GameEvent: 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); } } } Событие приходит в loader, но возникает ошибка преобразования (или как она там). Он не может отосланный класс преобразовать в принимаемый. Помогает тупая замена: // Клип game.swf готов к работе private function OnGameEventReady(_event:*):void { removeEventListener(GameEvent.READY,OnGameEventReady); objGame.pGameLoader.funInviteFriends=VKDShowInviteBox; objGame.startGame(); } Есть ли какой-то способ правильно получать событие? Добавлено через 9 минут Конечно можно так: Только на сколько это правильно. |
|
|||||
Регистрация: May 2010
Сообщений: 543
|
Цитата:
По поводу вопроса: не знаю как у вас там всё так интересно устроено, что получаете ошибку преобразования, но _event:* так не стоит делать. Раз ваш GameEvent наследуется от Event, то и приводите к этому типу _event:Event. А потом кастуйте к вашему типу GameEvent. ну как у вас в принципе и сделано
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с) |
|
|||||
Регистрация: Nov 2010
Сообщений: 150
|
Цитата:
Вынесите общие классы для обеих проектов в одну библиотеку и подключите ее в оба проекта. И если возникла ошибка преобразования типа то также не поможет, ошибки не будет, но event будет равен null И кстати, не критично, но с символа "_" принято начинать внутренние поля класса (private или protected) в не локальные переменные или аргументы функций. Последний раз редактировалось Stitch512; 27.01.2012 в 20:33. |
|
|||||
.
|
Да пофиг на файлы. Аппдомены разные. Вот и вся суть. Загружайте game в Application.currentDomain и будет вам щастие.
|
Часовой пояс GMT +4, время: 20:29. |
|
« Предыдущая тема | Следующая тема » |
|
|