我想使用requestAnimationFrame无限制地调用我的methid动画。但是,我使用的方法似乎不起作用..这是我的代码..
<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异常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
我如何使这项工作?
答案 0 :(得分:26)
您必须考虑(调试)该上下文中self
的含义。
使用局部变量绑定原始上下文:
var that = this;
window.webkitRequestAnimationFrame( function() { that.animate(); } );
或使用bind
功能:
window.webkitRequestAnimationFrame( this.animate.bind(this) );