Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 试图从舞台上移除电影剪辑_Flash_Actionscript 3_Flash Cs5 - Fatal编程技术网

Flash 试图从舞台上移除电影剪辑

Flash 试图从舞台上移除电影剪辑,flash,actionscript-3,flash-cs5,Flash,Actionscript 3,Flash Cs5,在我完成一个电影剪辑后,我试图把它从我的舞台上移除,这让我有点困惑。在加载帧时,我在一个函数中有一点代码,可以创建一个piechart var piechart:MovieClip=新的MovieClip(); stage.addChild(piechart); //然后再画一堆饼图 所以这段代码不在我的“操作”层上。现在,我在这个框架上有一个按钮,可以导航到时间线中的另一个框架,但当我更改框架时,piechart会重新对齐。那么,在我处理完这个图表之后,我该如何从舞台上删除它呢?我在舞台上试过

在我完成一个电影剪辑后,我试图把它从我的舞台上移除,这让我有点困惑。在加载帧时,我在一个函数中有一点代码,可以创建一个piechart

var piechart:MovieClip=新的MovieClip(); stage.addChild(piechart); //然后再画一堆饼图

所以这段代码不在我的“操作”层上。现在,我在这个框架上有一个按钮,可以导航到时间线中的另一个框架,但当我更改框架时,piechart会重新对齐。那么,在我处理完这个图表之后,我该如何从舞台上删除它呢?我在舞台上试过。除去孩子(…)和其他人,但也许我说的不对?任何帮助都将不胜感激


谢谢,在时间轴上编写代码会导致各种难以诊断的情况-您是否考虑过将所有代码拉到某些类中,然后通过链接将它们插入?这确实是一个最佳实践,您将避免类似的问题

也就是说,有各种各样的方法可以从舞台上移除东西。如果你想从舞台上移除所有东西,因为你正在过渡或做其他事情,像这样的事情很有效:

while (this.numChildren > 0) {
     this.removeChildAt(0);
}
或者,如果对对象的特定父对象是什么感到困惑,可以使用如下代码:

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

这样,即使您意外地丢失了对父对象的引用(如果您正在执行时间线代码,这很容易发生),您仍然可以通过调用对象本身的父属性来检索引用。这有意义吗?

在时间轴上编写代码会导致各种难以诊断的情况-您是否考虑过将所有代码拉到某些类中,然后通过链接将其插入?这确实是一个最佳实践,您将避免类似的问题

也就是说,有各种各样的方法可以从舞台上移除东西。如果你想从舞台上移除所有东西,因为你正在过渡或做其他事情,像这样的事情很有效:

while (this.numChildren > 0) {
     this.removeChildAt(0);
}
或者,如果对对象的特定父对象是什么感到困惑,可以使用如下代码:

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

这样,即使您意外地丢失了对父对象的引用(如果您正在执行时间线代码,这很容易发生),您仍然可以通过调用对象本身的父属性来检索引用。这有意义吗?

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');
   }

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');
   }
使用gotoAndStop(“desiredFrame”)

如果您尝试gotoAndPlay,前面的帧将继续播放

使用gotoAndStop(“desiredFrame”)


如果您尝试转到并播放,前面的帧将继续播放

这是我所需要的最简单的方法。是的,我可能应该研究不同的类,以便更好地管理它们,但就目前而言,这将起作用。谢谢这是做我所需要的事情的简单方法。是的,我可能应该研究不同的类,以便更好地管理它们,但就目前而言,这将起作用。谢谢