私はkineticjsを使用しています
for(var i = 0; i < playerData.length; i++)
{
(function(i){
data = playerData[i];
group = stage.get('#' + data.user_id)[0];
var anim = new Kinetic.Animation(function(frame){
dx = group.getX() - data.posX;
dy = group.getY() - data.posY;
var dist = Math.sqrt(dx * dx + dy * dy);
var angle = Math.atan2(dy, dx);
var speedX = Math.cos(angle) * moveSpeed;
var speedY = Math.sin(angle) * moveSpeed;
group.setX(parseInt(group.getX()) - speedX);
group.setY(parseInt(group.getY()) - speedY);
console.log(dist);
}, mainLayer);
console.log('animation started');
anim.start();
})(i)
}
オブジェクトごとにアニメーションを実行するのに問題があります。サーバーから新しいデータを取得するたびに、すべてのオブジェクトをループして新しい座標で移動しますが、アニメーションを正しく実行する方法がわかりません。オブジェクトが実行されません。同時に、それらはスタックし始めます。問題は、新しい Kinetic.Animation を開始してから、オブジェクトごとに正常に停止するにはどうすればよいかということです。