2010-12-03 92 views
1

我正在尝试从我的舞台上删除一个MovieClip后,我完成了一些小事情。在加载我的框架时,我在创建一个饼图的函数中添加了一些代码。试图从舞台上删除MovieClip

var piechart:MovieClip = new MovieClip(); stage.addChild(piechart); //然后再画一个饼图

这样一点代码就不在我的“动作”层上。现在我在这个框架上有一个按钮,它导航到时间轴中的一个不同的框架,但是当我改变框架时,这个饼图仍然存在。那么,在完成它之后,如何从舞台上删除这个饼图?我已经尝试stage.removeChild(...)和其他人,但我认为它错了?任何帮助,将不胜感激。

感谢

回答

2

Myk是对的,最好不要在时间轴上编码。在任何情况下,一个快速解决方案就是在离开当前帧之前清除舞台。

例如:

function nextFrame(event:MouseEvent):void 
    { 
     //if you're still in the same frame , this should work... 
     stage.removeChild(pieChart); 

     //then move on... 
     gotoAndStop('whereverYouWannaGo'); 
    } 
+0

这是qiuck和简单的方法我需要什么。是的,我应该看看单独的班级,这样我可以更好地管理它们,但是就目前而言,这将起作用。谢谢! – jomille 2011-01-21 18:01:44

2

在时间轴上写代码将导致各种各样的是棘手的诊断的情况 - 你认为是拉动所有的代码伸到一些类来代替,并通过联动坚持呢?这确实是一个最佳实践,你会避免这样的问题。

也就是说,有各种方法可以从舞台上删除东西。如果你想从舞台中删除一切,因为你的转换或什么的,像这样的工作:

while (this.numChildren > 0) { 
    this.removeChildAt(0); 
} 

另外,如果有什么你的对象的特定父混乱,你可以使用这样的代码:

if (pieChart.parent) { // checks to see if it actually has a parent 
    pieChart.parent.removeChild(pieChart); 
} 

这样一来,即使你不小心调用父属性记不清你参考的父对象(如可如果你正在做时间轴代码极易发生),你仍然可以检索参考的对象本身。那有意义吗?

0

使用gotoAndStop( “desiredFrame”)

,如果你尝试的gotoAndPlay,以前的帧将继续发挥

相关问题