我的代码是从.as文件
开始的if (loaderInfo.loader)
loaderInfo.loader.dispatchEvent(new Event("pageFinish", true));
然后我把上面的代码放到.fla文件(另一个现有的Flash文件)中,但是(loaderInfo.loader)总是返回false,尽管它是从另一个swf加载的。因此,事件永远不会被发送。
编辑: 我会尝试解释一下。
这有效:
container.swf - (loads) - > page1.swf(page1.fla + page1.as)
page1.swf会将事件发送到container.swf
这不起作用:
container.swf - (loads) - > page2.swf(page2.fla)
page2.swf会发送事件,因为loaderInfo.loader在这里返回false
两种情况都没有对container.swf进行任何更改,只是将xml文件更改为指向page1.swf或page2.swf
答案 0 :(得分:1)
无法对此进行测试,只是从头脑中进行测试:
确保加载的swf有权访问加载程序(LoaderContext
,ApplicationDomain
等)。
您可以通过在加载的剪辑中写下此内容来测试:
trace(loaderInfo.childAllowsParent);
trace(loaderInfo.ParentAllowsChild);
trace(loaderInfo.sameDomain);
如果其中一条痕迹返回false,请告诉我们......
当您尝试访问其加载程序时,请确保您的文档已完全构建。
loaderInfo.addEventListener(Event.INIT, eventComplete);
loaderInfo.addEventListener(Event.COMPLETE, eventComplete);
function eventComplete(event:Event):void
{
trace(event.target.loader);
}
答案 1 :(得分:0)
loaderInfo。 如果编译的fla swf是通过Loader加载的,那么loaderInfo.loader将不会返回false