首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FabricJS延迟绘制?

FabricJS延迟绘制?
EN

Stack Overflow用户
提问于 2017-02-27 05:37:31
回答 1查看 243关注 0票数 0

我有一个我设置的小演示。

代码语言:javascript
复制
var image1 = "http://i.imgur.com/b81Wj6O.png";
var image2 = "http://i.imgur.com/vmtt98e.jpg";
var backgroundImage;
var toggle = true;

document.getElementById("button").addEventListener("click", update);

var canvas = new fabric.StaticCanvas('canvas', {
  width: 800,
  height: 600
});

function update() {
    var background;
    if (toggle) {
      background = image1;
    } else {
      background = image2;
    }
    toggle = !toggle;
    if(backgroundImage == null) {
      fabric.Image.fromURL(background, function(img){
      backgroundImage = img;
      canvas.add(img);
    });
  }
  else {
    backgroundImage.setSrc(background);
  }
  canvas.renderAll();
}

https://jsfiddle.net/rhLa38dt/

如果你点击按钮,它应该会绘制一个图像,我遇到的问题是,当你第二次点击按钮时,图像不会更新。然而,第三次它将绘制图像,它应该有第二次,并继续从那里总是落后一步。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 07:09:23

设置画布的来源后,使用回调渲染画布:

代码语言:javascript
复制
backgroundImage.setSrc(background, function() {
  canvas.renderAll();
});

更新了工作JSFiddle,https://jsfiddle.net/rekrah/nzgf1ja4/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42474550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档