Флэш-память As3 — ошибки приведения к ошибкам при передаче сторонних типов данных Swf в Swf

Я делаю игру, в которой каждый экран загружается как отдельный swf. Я загружаю swf с помощью LoaderMax от Greensock, но я не думаю, что это является причиной проблемы. После загрузки swf я могу установить свойства дочернего swf, такие как String и MovieClip. Однако у меня есть сторонняя библиотека в пути к библиотеке, один и тот же swc для обоих проектов. Однако, когда я пытаюсь передать несистемные переменные, выдается ошибка, в основном говорящая: «Ошибка приведения: невозможно преобразовать ThisType в ThisType». Если это один и тот же тип данных, почему компилятор пытается их принудить? Я должен что-то упустить здесь ...

Ошибка:

TypeError: Error #1034: Type Coercion failed: cannot convert package::ThisType@7ffecfe4ba1 to package.ThisType.

at mJackStateMachine/onAskForClient()

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

Вот (упрощенный) полный обработчик. Он ломается, когда я пытаюсь передать var a_thisTypeVar типа ThisType между swfs:

function CompleteHandler(e:LoaderEvent) {

childSwf = LoaderMax.getContent("LoginStateSwf").rawContent;

stage.addChild(childSwf);

childSwf.start(_thisTypeVar)

}

Пожалуйста помоги! Как передать vars из сторонних библиотек между swf. Я должен быть в состоянии сделать это, верно?


person Mc' Flips    schedule 01.10.2014    source источник
comment
Я думаю, что может происходить то, что загруженный (вторичный) SWF не знает, что такое тип объекта ThisType. Это означает, что у вас есть тип, который известен основному SWF, но загруженный (дополнительный) SWF не знает этого типа. Что расширяет ThisType? Было бы полезно посмотреть, какое значение имеет _thisTypeVar и вообще что такое ThisType.   -  person C. Parcell    schedule 01.10.2014
comment
ThisType — playerio.Client, оба swf импортируют этот класс и имеют один и тот же playerio.swc в пути сборки.   -  person Mc' Flips    schedule 02.10.2014
comment
Как вы создаете SWF? Если playerio.swc включен в оба SWF, у вас будет два конкурирующих определения ThisType. Включение SWC в качестве общей библиотеки времени выполнения в дочерний SWF-файл может решить проблему.   -  person Brian    schedule 02.10.2014
comment
Привет Брайан. Я компилирую swf из flash professional, но весь код пишется в flash builder. RSL для меня не вариант, так как я использую flash player, а не flex.   -  person Mc' Flips    schedule 02.10.2014
comment
Вы включаете swc с одними и теми же классами два раза. Кажется, это проблема. Возможно, вам придется спланировать поток, чтобы swc не вызывался 2 или более раз.   -  person Vishwas    schedule 03.10.2014
comment
@VishwasG как ты это делаешь? Можете ли вы привести пример в ответ?   -  person Mc' Flips    schedule 04.10.2014
comment
Мне нужно изучить структуру. Не могли бы вы прислать мне минимальную версию проекта? (удаление всего лишнего кода)   -  person Vishwas    schedule 05.10.2014


Ответы (1)


Попробуй это:

LoaderMax.defaultContext = new LoaderContext(true, new ApplicationDomain(ApplicationDomain.currentDomain), SecurityDomain.currentDomain);
person FlashDaily.net    schedule 03.10.2014