如何阻止一帧中的效果继续下一帧?

时间:2015-09-24 13:23:25

标签: actionscript-3

我制作了一个程序,在屏幕底部和影片剪辑符号内部定期生成小绿色矩形(或Greeny),我制作了一个经典补间,使其移动到屏幕顶部。我还声明了一个变量(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();

编辑 - 以下是文件的链接 - http://www.mediafire.com/download/crjh2fubcbnx3l5/Retro.fla

2 个答案:

答案 0 :(得分:0)

你必须在第2帧删除你的事件监听器。试试这个(在你的条件t> 96时,在第2帧或第1帧):

this.removeEventListener(Event.ENTER_FRAME, eFrame);

答案 1 :(得分:0)

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

如果你想让所有的矩形都不可见,你应该设置他们的#34;可见"属性为false或从舞台上删除它们。