我有一个完整的浏览器窗口 AS3 Flash CS4 父 swf,它加载第三方子 swf,高度/宽度更小并且定位适当(即居中)。无论我尝试使用哪种加载技术,我都会在子 swf 中遇到位置和方向问题,这会破坏子级。
在一个示例情况下,孩子将加载辅助显示对象(可能是影片剪辑),但尝试将其附加到舞台上。如果我允许它在加载过程中通过 SecurityDomain 访问舞台,它会将其定向到父 swf 的 0,0 而不是子 swf 的 0,0(已经适当地定位/居中)。
在另一种情况下,加载过程中的子定位是合适的,但放置在子内部似乎参考舞台的 X、Y 位置会被子 swf 居中的量所抵消(即,如果子 swf 的加载器居中这样它的 X 是 200,而子 swf 内的一个对象应该是 100,50,它实际上是 300,50)。
常见的线程似乎是子 swfs,无论是否允许访问舞台,都使用父级的舞台或播放器属性,而不是加载器中它们自己的属性。
如何隔离子 swf,使其仅使用自己的子环境进行定位和定向,而不使用父环境?
我尝试过内置的 Loader 和 UILoader、Greensock 的 SWFLoader、Flex 的 SWFLoader,甚至通过 TextField 中的文本加载它。
似乎 AIR 的 HTMLLoader 可以工作(因为 HTMLLoader 中的 SWF 对象显然使用它们自己的舞台对象),但是这个应用程序已经在浏览器中可用。
理想情况下,我仍然希望能够与孩子交流,但此时确保孩子成功运行更为重要。
这似乎是一种常见的方法,但遇到左右阻塞问题让我觉得我以错误的方式处理这个问题。
我最后的手段是用 JS 框架替换父 swf,但前提是绝对必要。
在此过程的任何部分提出解决方案的建议将不胜感激。