Actionscript 3 AS3:从外部加载的SWF获取信息

Actionscript 3 AS3:从外部加载的SWF获取信息,actionscript-3,actionscript,flash,Actionscript 3,Actionscript,Flash,所以我有一个SWF,我已经做了,我需要一些指示,以项目的开始。我认为最简单的方法是在单独的SWF中制作动画,然后将其导入到第一个SWF的开头。我的问题是我找不到可靠的方法来判断第一个SWF何时结束。我已经在谷歌上搜索过了,但似乎找不到任何有效的方法。出于某种奇怪的原因,无论我做什么,程序似乎都认为外部SWF只有两个帧,如果我放置一个ENTER_FRAME侦听器并跟踪externalSWF.currentFrame,我会得到“1,1,2,2,2,2,2…”我的代码如下所示 var ldr = ne

所以我有一个SWF,我已经做了,我需要一些指示,以项目的开始。我认为最简单的方法是在单独的SWF中制作动画,然后将其导入到第一个SWF的开头。我的问题是我找不到可靠的方法来判断第一个SWF何时结束。我已经在谷歌上搜索过了,但似乎找不到任何有效的方法。出于某种奇怪的原因,无论我做什么,程序似乎都认为外部SWF只有两个帧,如果我放置一个ENTER_FRAME侦听器并跟踪externalSWF.currentFrame,我会得到“1,1,2,2,2,2,2…”我的代码如下所示

var ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
ldr.load(new URLRequest("Instructions.swf"));

function loaded(e:Event){
    trace("Loaded");
    var extSwf = ldr.content as MovieClip;
    addChild(extSwf);
    trace(extSwf.totalFrames);//Returns 2
}
还有其他人在外部主权财富基金方面有类似的问题吗

另外,为了记录,当我将外部SWF作为子级添加时,它可以正常播放。问题是当它演奏完后,把它从舞台上移开。它是交互式的,所以我不能只进行帧计数


编辑:所以我尝试在extSwf上调用getQualifiedClassName(),得到了“Instructions\u fla::Main Timeline\u Preload\ux”,这可以解释帧差异。如何访问实际时间线?

主权财富基金可以通过SharedObject相互通信


所以我找到了问题的解决办法。正如我在编辑中所说,我得到了“Instructions\u fla::MainTimeline\u Preloader\u”作为合格的类名,所以我在谷歌上搜索了一下,发现有人说Flash CS5默认使用预加载程序导出SWF,所以这是附加到extSwf的内容,而不是MovieClip本身。修复它的方法是进入文件>动作脚本设置>库路径,并将默认链接更改为“合并到代码中”。这似乎只发生在CS5中。我在这里找到了解决方案:

应该有一种直接与之交互的方法,不是吗?这就是其他讨论给我的印象。LoaderInfo上的sharedEvents是主权财富基金之间沟通的官方方式。如果这对您很重要,它也可以在不同的安全环境中工作: