addchild 影片剪辑出现在错误的场景中

addchild movieclip appear in wrong scene

我在场景2的movieclip中使用了addchild,但是当我用按钮进入场景1时,出现了使用addchild keep的对象。当我再次回到场景 2 时,使用 addchild 的对象移动得比 before.any idea?

这是我的代码:

var Batumc:batu_mc = new batu_mc();
var Batumc1:batu_mc = new batu_mc();

var BatasBatu = Batumc.width/12;

        addChild(Batumc);
        Batumc.x = 100;
        Batumc.y = 50;

        addChild(Batumc1);
        Batumc1.x = 100;
        Batumc1.y = 50;

场景不是单独的实体,它们的存在只是为了让您的设计保持逻辑有序。编译时,所有场景都转换为单个主时间轴 MovieClip.

然后,当您的脚本向时间轴添加任何内容时,Flash Player 不会仅仅因为您 gotoAndPlay 到另一帧就删除这些内容。

这正是将多帧时间轴设计与脚本混合并不是一个好主意的原因:Flash Player 不会自动控制您编写的内容,就像它对预先设计的时间轴实体所做的那样。

所以,可能的解决方案。

  1. 完全控制您所做的事情。在转到另一个 'scene' 之前,取消订阅您订阅的所有事件(这很重要,因为订阅可以绑定对象和函数并防止它们自动结束)并删除您在那里手动添加的所有内容。例如,使用 removeChildren() 方法。

  2. 将您的每个 'scene' 包装到容器 MovieClip 中。无论你在容器内做什么,一旦你 gotoAndPlay 到另一个框架,它就会消失,而那个容器实际上并不存在。不过,取消订阅的需要仍然有效。