Вопрос

I'm moving a block with a tween:

  var block1 = Crafty.e('Block, 2D, Canvas, Color, Tween')
    .attr({x: 450, y: 140, w: 40, h: 200})
    .color('yellow')
    .tween({x: -50}, 3000);

How can I reset the position? So at x<=-50 then goes back to x=450? Can I bind it to the x position some way?

Это было полезно?

Решение

When the position is changed, a "Move" event is triggered. (This is part of the 2D component) So every time the object moves, you can just check it's current position and respond appropriately:

var checkPos = function(){ 
    if (this.x<= -50)
        this.x = 450;
};

e.bind("Move", checkPos);

If you want this to happen only once, use e.one instead of e.bind. If you want to start the tween over, you'll need a little bit more code, but it should be pretty clear how to do this.

In your specific case, you can also listen to the "TweenEnd" event.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top