Actionscript 3 MovieClip';当移动到第二帧时,s子帧变为空

Actionscript 3 MovieClip';当移动到第二帧时,s子帧变为空,actionscript-3,flash-cs5,preloader,Actionscript 3,Flash Cs5,Preloader,我在单帧上制作了一个游戏,现在我将其移动到第2帧,以便在第1帧上添加预加载 然而,我遇到了一个奇怪的问题:所有顶级MovieClips仍然得到初始化,但它们的子级似乎没有得到初始化 例如,我有一个对象winDialog,其中有一个子对象NextLevel ButtonInt。所以我有一句话: winDialog.nextLevelButtonInst.addEventListener(MouseEvent.CLICK, GotoNextLevel); 当游戏只有一个画面时,这可以很好地工作,但

我在单帧上制作了一个游戏,现在我将其移动到第2帧,以便在第1帧上添加预加载

然而,我遇到了一个奇怪的问题:所有顶级MovieClips仍然得到初始化,但它们的子级似乎没有得到初始化

例如,我有一个对象winDialog,其中有一个子对象NextLevel ButtonInt。所以我有一句话:

winDialog.nextLevelButtonInst.addEventListener(MouseEvent.CLICK, GotoNextLevel);
当游戏只有一个画面时,这可以很好地工作,但是在第二个画面中它不工作

当我查看调试变量时,winDialog记录为正常,它有一个子nextLevelButonInst,但设置为null。几乎所有的电影都是这样

为什么移动到第二帧会导致这种情况?如果winDialog为空,这是有意义的,因为它可能在第一帧上找不到它。但我不知道为什么只有孩子是空的

这导致了各种各样的问题,它找不到声音,等等


谢谢你的帮助

您使用的是主类吗?或者在你的第一帧中有代码,无论如何,在你到达第二帧之前,这些代码不会知道你在第二帧中有什么东西


因此,在第二帧之后添加侦听器,一切都应该正常。

我确实使用了一个主文档类。但是,即使在第二帧上,这些项目也不会加载。当我把这个代码放在第二帧:
trace(winDialog+,“winDialog.nextLevelButtonInst)
,然后它说“[object winDialog],null”。所以它加载的是第一个对象,而不是第二个对象。如果我将所有内容都设置为在第1帧导出,那么所有内容都会在第1帧加载,并且您永远看不到预加载项,但是您是在到达第二帧时还是在swf加载时尝试访问第二帧上的内容?这个想法是,你首先要做一个gotoAndStop(2);但是根据你使用的flash版本,它可能无法在你转到并停止后立即到达那里,因此检查你是否在第二帧会有所帮助。我只在到达第二帧时尝试访问这些内容。我没能弄明白--不过还是要谢谢泰尔斯!