关于Google Swiffy(http://swiffy.googlelabs.com/)似乎几乎没有支持或讨论。

是否可以有效地从JS暂停/恢复/操作swiffy对象?

使用标准的Google输出,我注意到可以在控制台中找到带有一些属性的swiffyobject。尤其是frameRate。例如可以操纵此属性吗?

最佳答案

对于最新的Swiffy版本(Swiffy运行时版本5.2 https://www.gstatic.com/swiffy/v5.2/runtime.js),我这样做了。

1.使用samb帖子中提到的jsbeautifier.org。

2.找到包含.start()的函数。就我而言...

db(N, function () {
    var a = this.Dg;
    this.ck(function () {
        a.start()
    })
});
db(Yj[I], Yj[I].start);

3.使用其他名称复制此函数,并将start()替换为stop()
myNewFunction(N, function () {
    var a = this.Dg;
    this.ck(function () {
        a.stop()
    })
});
myNewFunction(Yj[I], Yj[I].stop);

4.找到包含.start()的函数的声明。就我而言,db。
function db(a, b) {
    return a.start = b
}

5,复制此函数并与在stop()中创建的新函数一样调用它,然后将start替换为stop。就我而言,是myNewFunction。
function myNewFunction(a, b) {
    return a.stop = b
}

而已。

现在您可以调用我的anim.stop();了。

例如
//create anim
var anim = {swiffy code};
var myAnim = new swiffy.Stage(document.getElementById('animContainer'), anim);
myAnim.start();

//some button click
myButton.on('click',function(){
  myAnim.stop();
});

07-24 16:11