我制作了一个程序,在屏幕底部和影片剪辑符号内部定期生成小绿色矩形(或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
答案 0 :(得分:0)
你必须在第2帧删除你的事件监听器。试试这个(在你的条件t> 96时,在第2帧或第1帧):
this.removeEventListener(Event.ENTER_FRAME, eFrame);
答案 1 :(得分:0)
如果要停止生成绿色矩形,则应删除Event.Enter_Frame的侦听器,或者执行某些操作以在函数eFrame中停止它。
如果你想让所有的矩形都不可见,你应该设置他们的#34;可见"属性为false或从舞台上删除它们。