Javascript html5画布圆角文本随sketch.js消失

Javascript html5画布圆角文本随sketch.js消失,javascript,jquery,html,html5-canvas,Javascript,Jquery,Html,Html5 Canvas,我对HTML5画布元素有一个问题。我使用sketch.js,这样客户端就可以在网页中绘制图纸。客户的要求之一是,他可以添加带有数字的“邮票”。所以我对JS做了一些修改,使之成为可能。这是可行的,可以添加邮票。但当用户切换回钢笔工具并再次开始绘图时,数字就会显示出来 我使用fillText()添加邮票 请参见此处的演示: 希望有人能帮助我sketchJS根据其源代码经常清理和重画画布。例如,用户的每个新绘图操作都将清除并重新绘制画布 您的this.context.fillTextcode临时“借

我对HTML5画布元素有一个问题。我使用sketch.js,这样客户端就可以在网页中绘制图纸。客户的要求之一是,他可以添加带有数字的“邮票”。所以我对JS做了一些修改,使之成为可能。这是可行的,可以添加邮票。但当用户切换回钢笔工具并再次开始绘图时,数字就会显示出来

我使用fillText()添加邮票

请参见此处的演示:


希望有人能帮助我

sketchJS根据其源代码经常清理和重画画布。例如,用户的每个新绘图操作都将清除并重新绘制画布

您的
this.context.fillText
code临时“借用”sketchJS画布,并在画布上绘制文本。当sketchJS内部决定需要清除画布时,文本将消失

sketchJS目前不支持文本,因此如果您希望在不让sketchJS擦除文本的情况下将文本永久放到画布上,则必须修改源以添加fillText功能

或者,一种解决方法可能是在sketchJS画布上添加一个html画布元素并将其重叠(就像sketchJS画布上的html画布“层”)。然后在顶部画布上绘制文本。这样SketchJS就不会删除您想要的文本

注意:必须防止覆盖画布拦截鼠标事件。您可以通过设置
指针事件:none在顶部画布上。以下是有关指针事件的链接:

$.sketch.tools.text = {
    onEvent: function(e) {
        switch (e.type) {
        case 'mousedown':
        case 'touchstart':
        this.context.font="16px Verdana";
        this.context.fillText(this.stamp, e.pageX - this.canvas.offset().left, e.pageY - this.canvas.offset().top);
          break;
      }
      return true;
    },
    draw: function(action) {

      return true;
    }
  };