3

我想使用 requestAnimationFrame 无限地调用我的方法动画。但是,我使用的方法似乎不起作用..这是我的代码..

<html>
    <head>
        <meta charset="utf-8">

        <script>
function object(){
    this.index = 0;
}

object.prototype.animate = function(){
    alert("vimak");
    window.webkitRequestAnimationFrame( self.animate);
}
me = new object();
me.animate();

        </script>

    </head>

    <body>
    </body>
</html>

它给了我以下错误。未捕获的错误:TYPE_MISMATCH_ERR:DOM Exception 17

我该如何解决 ?

编辑版本

<html>
    <head>
        <meta charset="utf-8">

        <script>
function object(){
    this.index = 0;
}

object.prototype.animate = function(){

    var that = this;console.log(that);
    window.webkitRequestAnimationFrame( that.animate);
}
me = new object();
me.animate();

        </script>

    </head>

    <body>
    </body>
</html>

输出是

对象 requestAnimationFrame.html:12 窗口 requestAnimationFrame.html:12 未捕获错误:TYPE_MISMATCH_ERR:DOM 异常 17

我如何使这项工作?

4

1 回答 1

26

您必须考虑(调试)该上下文的含义self

使用局部变量绑定原始上下文:

var that = this;
window.webkitRequestAnimationFrame( function() { that.animate(); } );

或使用以下bind功能:

window.webkitRequestAnimationFrame( this.animate.bind(this) );
于 2012-05-22T08:13:20.627 回答