Actionscript 3 如何停止一帧中的效果以在下一帧中继续?

Actionscript 3 如何停止一帧中的效果以在下一帧中继续?,actionscript-3,Actionscript 3,我制作了一个程序,其中在屏幕底部和电影剪辑符号内部周期性地生成小的绿色矩形(这里是绿色),我制作了一个经典的二字夹,使其移动到屏幕顶部。我还声明了一个变量(t),它会定期递增(我以24 fps的速度运行它)。当值变量t达到或超过96时,它将移动到下一帧。但问题是,即使在下一帧中,这些绿色小矩形的生成也不会停止。如果我问错了问题,请原谅。顺便说一下,第2帧上的代码是stop();。这是第1帧的代码- var c:int; var t:int = 0; var s:int = 8; function

我制作了一个程序,其中在屏幕底部和电影剪辑符号内部周期性地生成小的绿色矩形(这里是绿色),我制作了一个经典的二字夹,使其移动到屏幕顶部。我还声明了一个变量(t),它会定期递增(我以24 fps的速度运行它)。当值变量t达到或超过96时,它将移动到下一帧。但问题是,即使在下一帧中,这些绿色小矩形的生成也不会停止。如果我问错了问题,请原谅。顺便说一下,第2帧上的代码是stop();。这是第1帧的代码-

var c:int;
var t:int = 0;
var s:int = 8;
function eFrame(event:Event):void
{
    t++;
    if (t%s == 0)
    {
        var i:Greeny = new Greeny  ;
        i.x = Math.random() * 550;
        i.y = 400;
        stage.addChild(i);
    }
    if (t > 96) {
        nextFrame();
    }
}
this.addEventListener(Event.ENTER_FRAME, eFrame);
stop();

编辑-这是文件的链接-

您必须删除第2帧上的事件侦听器。尝试此操作(在第2帧或达到条件t>96时在第1帧中):


如果要停止生成绿色矩形,应删除Event.Enter_Frame的侦听器,或在函数eFrame中执行某些操作以停止它


如果要使所有矩形都不可见,则应将其“可见”属性设置为false或将其从阶段中删除。

如果在达到条件t>90时将其添加,则不会发生任何更改。在第2帧上输入它也是一样的。好的,我发现每一帧,代码都会重复。所以如果我给trace(“G”);当t==48时,它在4秒内每次发生一次(4*24fps);代码中的问题是当t>96时,转到下一帧。因此,根据您拥有的帧数,转到“下一步”直到结束,然后返回到1,代码再次开始。尝试替换
nextFrame()
gotoAndStop(2)即使在替换nextFrame()时,似乎也没有任何变化;具有gotoAndStop(2);
this.removeEventListener(Event.ENTER_FRAME, eFrame);