2014-06-12 106 views
0

我试图在使用requestFrameAnimation进行按键时将视频缩小50%。这是我所拥有的,但是一旦达到所需的尺寸,收缩不会停止。使用requestFrameAnimation缩小视频

function shrink_video(){ 

if(v.width == WIDTH * 0.5){ 
shrink = false; 
} 

var shrink_value = WIDTH * 0.001; 

if(shrink){ 
v.width -= shrink_value; 
} 

requestAnimFrame(shrink_video); 
} 

我想我需要调用cancelAnimationFrame,但我不知道如何去做基于视频大小。我考虑使用setTimeout来触发取消操作,但这会导致不一致的视频调整大小,这将不起作用;最终尺寸至关重要。有任何想法吗?

回答

0

javascript中的所有数字都是浮点数。

这意味着像v.width==WIDTH*0.50这样的精确测试将会失败,因为javascript数字的精度过高。

相反,测试,如果v.width超过半宽:

function shrink_video(){ 

    if(v.width>WIDTH*0.50){ 
     requestAnimationFrame(shrink_video); 
    } 

    v.width -= WIDTH*0.001; 

} 
+0

YES!非常感谢。我没有意识到精度会是一个问题,所以这很好理解! – Rooncicle