2014-10-01 14 views
0

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

ошибка:

TypeError: Error #1034: Type Coercion failed: cannot convert package::[email protected] to package.ThisType. 

at mJackStateMachine/onAskForClient() 

at flash.events::EventDispatcher/dispatchEventFunction() 

at flash.events::EventDispatcher/dispatchEvent() 

Здесь (упрощенно) полный обработчик. Он ломает, когда я пытаюсь передать УАК a_thisTypeVar типа ThisType между СФБ:

function CompleteHandler(e:LoaderEvent) { 

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

stage.addChild(childSwf); 

childSwf.start(_thisTypeVar) 

} 

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

+0

Я думаю, что может происходить в том, что загруженная (вторичная) SWF не знает, что ThisType типа объекта. Это означает, что у вас есть тип, который известен основному SWF, но загруженный (вторичный) SWF не знает тип. Что расширяет этот тип? Было бы полезно посмотреть, для чего установлен _thisTypeVar, и вообще, что такое ThisType. –

+0

ThisType is playerio.Client, оба swf импортируют этот класс и имеют тот же playerio.swc в пути сборки –

+0

Как вы строите SWF? Если playerio.swc включен в оба SWF, у вас будет два конкурирующих определения ThisType. Включение SWC в качестве общей библиотеки времени выполнения в дочернем SWF может решить проблему. – Brian

ответ

0

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

LoaderMax.defaultContext = new LoaderContext(true, new ApplicationDomain(ApplicationDomain.currentDomain), SecurityDomain.currentDomain); 
+0

Я пробовал это. Это дает ту же ошибку. –