我遇到的问题是这样的:

我想使位图移动到某些点,并将其存储在数组中。如何使用tweenJS来获取此信息?

我尝试的第一种方法是这样的:

var points = [{x:0, y:0}, {x:100, y:100},{x:200, y:200}];
//The points come from the other method, and data like the points.

for( var i=0; i < points.length; i++ ) {
    createjs.Tween.get( target )
      .to( { x: points[i].x, y: points[i].y }, 600, createjs.Ease.easeIn);
}


运行代码后,我的目标只会移动到第一点,所以我放弃了。

然后我尝试第二种方法:

var str = 'createjs.Tween.get( target )';
for( var i=0; i < points.length; i++ ) {
    str += '.to( { x: points[' + i + '].x, y: points[' + i + '].y }, 600, createjs.Ease.easeIn)'
}

eval( str );


它工作完美,但我担心“评估”问题,不是很安全。你能给我一些提示吗?大拥抱

最佳答案

只需补间一次,然后将每个to添加到循环中即可。您的示例创建了多个同时运行的补间:

var points = [{x:0, y:0}, {x:100, y:100},{x:200, y:200}];
var tween = createjs.Tween.get( target ); // Once, outside the loop
for( var i=0; i < points.length; i++ ) {
      // Add each to() call to the current tween (chains them)
      tween.to( { x: points[i].x, y: points[i].y }, 600, createjs.Ease.easeIn);
}


那应该做。

关于javascript - 我如何使用tweenJS使位图移动到某些点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29389665/

10-11 13:25