jquery spritefy暂停并重启

时间:2011-09-27 18:01:06

标签: jquery sprite setinterval

我正在使用此插件:http://www.spritely.net/ 谁能告诉我为什么变量$ sprite不会重新执行?

function animate_header() {
    var $sprite = $('#header') 
        .sprite({
            fps: 30, 
            no_of_frames: 4,
            // the following are optional: new in version 0.6...
            start_at_frame: 1,
            rewind: false,
            on_last_frame: function(obj) {
                // you could stop the sprite here with, e.g.
                obj.spStop();
            }
        })
        .active();
}
var init = setInterval("animate_header()", 1000);

我也试过这个:

function animate_header() {
    $('#header') 
        .sprite({
            fps: 30, 
            no_of_frames: 4,
            // the following are optional: new in version 0.6...
            start_at_frame: 1,
            rewind: false,
            on_last_frame: function(obj) {
                // you could stop the sprite here with, e.g.
                obj.spStop();
            }
        })
        .active();
}
var init = setInterval("animate_header()", 1000);

函数本身每秒执行一次。但精灵没有。

4 个答案:

答案 0 :(得分:3)

这对我有用。我首先设置选项,然后使用spStart函数将其循环。

$('#header') 
    .sprite({
        fps: 30, 
        no_of_frames: 4,
        start_at_frame: 1,
        rewind: false,
        on_last_frame: function(obj) {
            // you could stop the sprite here with, e.g.
            obj.spStop();
        }
    });

setInterval ( "$('#header').spStart()", 1000 );

答案 1 :(得分:1)

对于其他可能偶然发现的人,请使用

.destroy()

动画似乎在每隔一段时间运行几次后就会中断,但是销毁会修复它:)

答案 2 :(得分:0)

尝试在代码末尾用.active();替换.spStart();

看起来在最后一帧上调用的obj.spStop()只会导致动画死亡,它需要一个快速启动才能实现... 为我工作:))

答案 3 :(得分:0)

我最终这样做了。我按照自己的意愿工作。

function loop() {

  $('#bird').sprite({fps: 7,  no_of_frames: 4, play_frames: 4});

           var t = setTimeout(function(){
            loop()
           }, 2000);
       }
       loop()

感谢您的回复。