动态创建MovieClip时如何消除延迟

时间:2010-09-18 09:49:09

标签: flash actionscript-3

我想在我的游戏中模拟道路,为此我使用道路的车道和交通,车道和交通动态像这样创建

if(roadlineTimer-- == 0){
        roadlineTimer = 30;
        newRoadline = new Roadline();
        newRoadline.x = 0;
        newRoadline.y = 0;
        newRoadline.speed = 3;
        roadlines.push(newRoadline);
        addChildAt(newRoadline,numChildren-1);
    }

但是当complile并运行此代码时。我有明显的延误。我的车道喜欢长方形,有自己的课程。我如何优化此代码

2 个答案:

答案 0 :(得分:1)

看起来问题出在其他地方,这里还不够......

另一方面,如果你要这样做

addChildAt(newRoadline,numChildren-1);

你也可以这样做

addChild(newRoadline);

虽然我怀疑这会解决你的延迟问题

答案 1 :(得分:0)

仅通过这个片段很难说,但延迟的很大一部分可能是对象实例化(新的Roadline()),因为这是一个非常昂贵的操作(CPU方式)。如果您在开始之前创建最大道路线数,则可以消除它,然后在需要时重新使用它们。

谷歌“对象池”进行了一些深入的讨论,你甚至可能偶然发现了一些现成的闪存解决方案(就个人而言,我使用了来自http://lab.polygonal.de/2008/06/18/using-object-pools/的对象池)