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 不会自动控制您编写的内容,就像它对预先设计的时间轴实体所做的那样。
所以,可能的解决方案。
完全控制您所做的事情。在转到另一个 'scene' 之前,取消订阅您订阅的所有事件(这很重要,因为订阅可以绑定对象和函数并防止它们自动结束)并删除您在那里手动添加的所有内容。例如,使用 removeChildren() 方法。
将您的每个 'scene' 包装到容器 MovieClip 中。无论你在容器内做什么,一旦你 gotoAndPlay 到另一个框架,它就会消失,而那个容器实际上并不存在。不过,取消订阅的需要仍然有效。
我在场景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 不会自动控制您编写的内容,就像它对预先设计的时间轴实体所做的那样。
所以,可能的解决方案。
完全控制您所做的事情。在转到另一个 'scene' 之前,取消订阅您订阅的所有事件(这很重要,因为订阅可以绑定对象和函数并防止它们自动结束)并删除您在那里手动添加的所有内容。例如,使用 removeChildren() 方法。
将您的每个 'scene' 包装到容器 MovieClip 中。无论你在容器内做什么,一旦你 gotoAndPlay 到另一个框架,它就会消失,而那个容器实际上并不存在。不过,取消订阅的需要仍然有效。