Actionscript 3 As3闪存-将第三方数据类型Swf传递到Swf时强制失败的错误

Actionscript 3 As3闪存-将第三方数据类型Swf传递到Swf时强制失败的错误,actionscript-3,flash,swfloader,coercion,type-coercion,Actionscript 3,Flash,Swfloader,Coercion,Type Coercion,我正在制作一个游戏,其中每个屏幕作为一个单独的swf加载。我使用Greensock的LoaderMax加载swf,但我不认为这是导致问题的原因。加载swf后,我可以设置子swf的属性,如字符串和MovieClip。但是,我在库路径中有一个第三方库,这两个项目的swc完全相同。然而,当我试图传递非系统变量时,它给出了一个错误,基本上是“强制失败:无法将ThisType转换为ThisType”。如果它们是相同的数据类型,为什么编译器试图强制它们?我一定是错过了什么 错误: TypeError: Er

我正在制作一个游戏,其中每个屏幕作为一个单独的swf加载。我使用Greensock的LoaderMax加载swf,但我不认为这是导致问题的原因。加载swf后,我可以设置子swf的属性,如字符串和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()
下面是(简化的)完整处理程序。当我尝试在主权财富基金之间传递类型ThisType的var a_ThisType时,它会中断:

function CompleteHandler(e:LoaderEvent) {

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

stage.addChild(childSwf);

childSwf.start(_thisTypeVar)

}
请帮忙!如何在SWF之间传递来自第三方库的VAR。我应该能做到,对吗?

试试这个:

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

我认为可能发生的情况是,加载的(次要)SWF不知道ThisType对象类型是什么。这意味着您拥有一个主SWF已知的类型,但加载的(辅助)SWF不知道该类型。这种类型的扩展是什么?查看thisTypeVar设置为什么以及ThisType通常是什么会很有帮助。ThisType是Playero.Client,两个swf都导入此类,并且在构建路径中具有相同的Playero.swc您如何构建swf?如果playerio.swc包含在这两个swf中,那么您将有两个这种类型的相互竞争的定义。将SWC作为运行时共享库包含在子SWF中可能会解决此问题。我从FlashProfessional下载了swf,但所有代码都是用FlashBuilder编写的。RSL对我来说不是一个选项,因为我使用的是flash播放器,而不是flex。这似乎就是问题所在。您可能需要规划流程,以便不会调用swc 2次或更多次。