1

アニメーションの終了後に別のアニメーションを強制的に開始しようとしています。ドキュメントによると、アニメーションの最後に呼び出されるコールバック関数を含める必要があります。

ただし、両方のアニメーションが同時に実行されます...何が間違っていますか?

http://jsfiddle.net/yBehH/

$(document).ready(function () {
    function drawBonuses() { 
        bonus = [3, 9, 10, 17];
        $.each(bonus,function(i,v) {
            gameboard.circle( v*20+20, 20, 0).animate( { fill: "#f00", r: 5 } , 100);
        });
    };

    gameboard = Raphael("gameboard", 440, 440);
    gameboard.clear();
    gameboard.rect(200, 200, 0, 0, 5).animate({fill: "#fff", height: 400, width: 400, x:20, y:20, stroke: "#000", "stroke-width": 20}, 2000, drawBonuses());
});

ボードが完全にアニメーション化されると、ドットのアニメーション化が開始されます...

4

1 に答える 1

2

現在、あなたは持っています

obj.animate(..., drawBonuses());

iedrawBonusesがすぐに呼び出され、戻り値が に渡されanimate()ます。
関数自体を渡したい:

    obj.animate(..., drawBonuses);

http://jsfiddle.net/yBehH/2/

于 2013-03-28T09:23:25.740 に答える