在 actionscript 3 中将拖动的对象补间回到原始位置
Dragged object tweened back into original position in actionscript 3
我的舞台上有一个可以拖动的对象。释放时,它会弹回原来的位置。我希望能够将它补间回到原来的位置,这样它看起来就平滑而不起伏。这是我到目前为止的代码:
var startPosition:Point;
blockSmallz.addEventListener(MouseEvent.MOUSE_DOWN, dragz);
stage.addEventListener(MouseEvent.MOUSE_UP, dragStopz);
function dragz(e:Event):void {
blockSmallz.startDrag();
startPosition = new Point( blockSmallz.x, blockSmallz.y);
}
function dragStopz(e:Event):void {
blockSmallz.stopDrag();
//set back or tween position
blockSmallz.x = startPosition.x;
blockSmallz.y = startPosition.y;
startPosition = null;
}
您需要一个基于代码的补间库。我建议学习 GTween:http://www.gskinner.com/libraries/gtween/
导入库后,在你要去的地方:
blockSmallz.x = startPosition.x;
blockSmallz.y = startPosition.y;
您只需插入一行代码将其补间即可。简单如:
GTweener.addTween (blockSmallz, 1, { x:startPosition.x, y:startPosition.y } );
我的舞台上有一个可以拖动的对象。释放时,它会弹回原来的位置。我希望能够将它补间回到原来的位置,这样它看起来就平滑而不起伏。这是我到目前为止的代码:
var startPosition:Point;
blockSmallz.addEventListener(MouseEvent.MOUSE_DOWN, dragz);
stage.addEventListener(MouseEvent.MOUSE_UP, dragStopz);
function dragz(e:Event):void {
blockSmallz.startDrag();
startPosition = new Point( blockSmallz.x, blockSmallz.y);
}
function dragStopz(e:Event):void {
blockSmallz.stopDrag();
//set back or tween position
blockSmallz.x = startPosition.x;
blockSmallz.y = startPosition.y;
startPosition = null;
}
您需要一个基于代码的补间库。我建议学习 GTween:http://www.gskinner.com/libraries/gtween/
导入库后,在你要去的地方:
blockSmallz.x = startPosition.x;
blockSmallz.y = startPosition.y;
您只需插入一行代码将其补间即可。简单如:
GTweener.addTween (blockSmallz, 1, { x:startPosition.x, y:startPosition.y } );