Actionscript 3 一部电影的帧速率随着时间的推移缓慢下降。这是什么原因造成的?[快讯CS3]
我正在制作一个闪光节奏的游戏。我有一个循环(在某一帧我有一个gotoAndPlay)movieclip,其中包含滚动经过的音符,循环大约三分钟。随着级别的提高,电影剪辑的帧速率开始滞后和结巴。就movieclip而言,没有调用会导致这种情况的变量或函数。我不知道这怎么会发生。还值得一提的是,注释由文本(非光栅化文本)表示,如果这有任何区别的话。至于发布我的代码,我认为这太复杂了,不值得你花时间。我只是不明白这部电影的帧速率怎么会独立于游戏的其他部分而下降 编辑:按照山姆的建议,我发现了一段代码,这段代码正在减慢我的游戏速度Actionscript 3 一部电影的帧速率随着时间的推移缓慢下降。这是什么原因造成的?[快讯CS3],actionscript-3,flash-cs3,Actionscript 3,Flash Cs3,我正在制作一个闪光节奏的游戏。我有一个循环(在某一帧我有一个gotoAndPlay)movieclip,其中包含滚动经过的音符,循环大约三分钟。随着级别的提高,电影剪辑的帧速率开始滞后和结巴。就movieclip而言,没有调用会导致这种情况的变量或函数。我不知道这怎么会发生。还值得一提的是,注释由文本(非光栅化文本)表示,如果这有任何区别的话。至于发布我的代码,我认为这太复杂了,不值得你花时间。我只是不明白这部电影的帧速率怎么会独立于游戏的其他部分而下降 编辑:按照山姆的建议,我发现了一段代码,
if(_noteBar._decide)
{
if(_noteBar._correctHits == _noteBar._correctNumberHits)
{
_noteBar._totalCorrect = true;
}
else if(_noteBar._correctHits > 0) {}
else
{
_noteBar._decrement = true;
}
}
这段代码在每一帧都运行。我真的不明白这怎么能把帧率降低这么多。我只是检查和分配一些变量。此外,这对我的游戏的功能也非常重要。可能是我在检查另一个类中的变量吗 尽可能多地删除代码(注释掉),然后慢慢地重新添加,直到找到导致速度减慢的地方 这段代码看起来肯定不会导致减速。每帧运行多少次?您是否应该在退出
if
之前设置\u noteBar.\u decision=false
?您可以添加一个额外的检查,以确保它每帧只运行一次吗?在Flex中,这是通过invalidateProperties
/commitProperties
实现的,但我不知道Flash中的等价物
代码可以优化一点,但我怀疑它是否会起作用
var noteBar = _noteBar;
if(noteBar._decide)
{
va correctHits = noteBar._correctHits;
if(correctHits == _noteBar._correctNumberHits)
{
_noteBar._totalCorrect = true;
}
else if(correctHits > 0)
{
}
else
{
noteBar._decrement = true;
}
}
伟大的我将在影响电影剪辑的课程中尝试这一点。谢谢,好的。我隔离了问题,并且帧率是丝般平滑的。谢谢谢谢事实证明,“\u totalCorrect”变量在每次设置为true时都会向displaylist添加一个新的MC,这是导致减速的原因。