我有一个小的html画布应用程序,我使用kinetic js动画几百个沿着单独行移动的小圆圈。它工作正常,但有时可能会有点慢。我希望能够将其扩展到几千,并让它更新每个帧上的每个圆圈。我怎样才能让它更快?为此目的,是否有更好的动力学替代方案?谢谢。
这是一个示例: http://www.cs.middlebury.edu/~gkrathwohl/running/ncaa.html
答案 0 :(得分:0)
您没有让用户与您的跑步者圈子互动。
由于您不需要Kinetic.Circles提供的交互性,您可以通过在单个Kinetic.Shape上绘制所有跑步者而不是创建数百(数千)个体Kinetic.Circles来获得速度提升。
Kinetic.Shape为您提供了一个上下文,您可以使用本机context.arc(x,y,radius,0,PI2)更快速地绘制非交互式圆圈。
如果您以后需要交互性,则可以使用数学方法快速测试鼠标位置与每个跑步者对象。
祝你的项目好运!