如何在Fabric.js中停止/取消requestAnimFrame()

l2aelba

我正在尝试将视频添加到Fabric.js中,而我已经完成了。

但是一个问题:

如何停止或取消requestAnimFrame()

例子 :

var canvas = new fabric.Canvas('c');
var videoEl = document.getElementById('video');
var video = new fabric.Image(videoEl);

canvas.add(video);
video.getElement().play();

fabric.util.requestAnimFrame(function render() {
  canvas.renderAll();
  fabric.util.requestAnimFrame(render);

  var current_time = videoEl.currentTime;
  if(current_time >= 5) {
    videoEl.pause();
    console.log(current_time);
  }

});

https://jsfiddle.net/l2aelba/kro7h6rv/

这是视频将在5秒钟后停止播放。我会停止/取消requestAnimFrame

导致高CPU负载

l2aelba

我现在明白了: cancelRequestAnimFrame()

window.cancelRequestAnimFrame = (function(){
    return  window.cancelAnimationFrame ||
            window.webkitCancelRequestAnimationFrame ||
            window.mozCancelRequestAnimationFrame ||
            window.oCancelRequestAnimationFrame ||
            window.msCancelRequestAnimationFrame ||
            clearTimeout
})();

var canvas = new fabric.Canvas('c');
var videoEl = document.getElementById('video');
var video = new fabric.Image(videoEl);

canvas.add(video);
video.getElement().play();

var request;
var render = function() {
    canvas.renderAll();
    request = fabric.util.requestAnimFrame(render);
    var current_time = videoEl.currentTime;
    if(current_time >= 5) {
       videoEl.pause();
       cancelRequestAnimFrame(request); <--- This
    }
}

videoEl.play();
fabric.util.requestAnimFrame(render);

演示: https : //jsfiddle.net/l2aelba/kro7h6rv/2/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift中停止/取消playSoundFileNamed?

来自分类Dev

如何在Fabric js中的组中添加图像

来自分类Dev

如何在Fabric.js中绘制弧

来自分类Dev

如何在Fabric JS中围绕中心旋转动画

来自分类Dev

如何在Fabric js的组中添加图像

来自分类Dev

如何在Fabric JS中围绕中心旋转动画

来自分类Dev

如何在Itext Fabric JS中删除默认文本

来自分类Dev

如何在Fabric.js上获取鼠标坐标?

来自分类Dev

如何在Fabric JS的角落启用非均匀缩放

来自分类Dev

如何在fabric.js中选择和拖动对象

来自分类Dev

如何在画布上更改SVG颜色-Fabric.js

来自分类Dev

如何在Fabric JS的角落启用非均匀缩放

来自分类Dev

如何在Fabric Js中使用Selenium IDE

来自分类Dev

如何在fabric.js中使用画布保存图像

来自分类Dev

Fabric.js-如何在鼠标移动时检测画布?

来自分类Dev

如何在Fabric中动态编辑env.roledefs?

来自分类Dev

如何在Fabric.io中初始化Crashlytics?

来自分类Dev

我如何在Hyperledger Fabric中获得唯一的ID

来自分类Dev

如何在iOS应用中卸载Fabric工具包?

来自分类Dev

如何在Fabric中动态编辑env.roledefs?

来自分类Dev

如何在Fabric中创建自定义帮助菜单?

来自分类Dev

如何在 Hyperledger Fabric 中创建新块

来自分类Dev

如何在独立 Service Fabric 中安装多机集群?

来自分类Dev

如何在 Service Fabric 中设置 Cloud_RoleName

来自分类Dev

如何在 Hyperledger Fabric 中更新资产之前检查条件

来自分类Dev

如何在PhantomJS中停止/中止/取消页面加载?

来自分类Dev

如何在Azure中停止(取消分配)SQL Server?

来自分类Dev

如何在特定时间停止/取消ScheduledExecutorService中的任务?

来自分类Dev

在Fabric JS中取消选择对象

Related 相关文章

热门标签

归档