Copy link to clipboard
Copied
I am making a game where each screen is loaded in as a separate swf. I am loading the swf using Greensock's LoaderMax, but I don't think that is what is causing the issue. After I load in the swf I can set properties of the child swf like String and MovieClip. However, I have a third party library in the library path, the same exact swc for both projects. However, when I try to pass non-system variables it gives an error basically saying "Coercion failed: cannot convert ThisType to ThisType". If they are the same data type, why is the compiler trying to coerce them? I must be missing something here...
The Error:
Here is the (simplified) complete handler. It breaks when I try to pass the var a_thisTypeVar of type ThisType between swfs:
function CompleteHandler(e:LoaderEvent) {
childSwf = LoaderMax.getContent("LoginStateSwf").rawContent;
stage.addChild(childSwf);
childSwf.start(_thisTypeVar)
}
Please help! How to I pass vars from third party libraries between swfs. I should be able to do this, right?
Copy link to clipboard
Copied
anyone?
Copy link to clipboard
Copied
Usually this means that you don't have the Class referenced in the top level Application domain, so the first child domain to load gets the "real" definition, and the other one gets all the numbers appended at the end (and they are not the same).
If it truly is a third-party Type, you're kind of stuck with making sure you have a variable defined of that type at the top level. If you have more control than that, then you should look at defining an Interface that the type will then implement and only refer to it by Interface. This avoids having to have a baked-in implementation compiled into swfs that don't need to know that.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now