簡體   English   中英

HTML Canvas為已繪制的所有內容更新筆觸顏色

[英]HTML Canvas updates stroke color for everything that's already been drawn

我有一個帶有顏色選擇器的界面,該界面允許用戶更改筆觸顏色,但是發生的是,我開始繪制-它繪制黑色。 我將筆觸更改為紅色,然后進行繪制-黑色的所有內容現在都變為紅色。 我沒有絲毫的線索。

這是我認為相關的代碼。 都在coffeescript類中

canvasMouseDown: (event) ->
  @offset = $(@canvas).offset()
  _x = @offset.left
  _y = @offset.top
  @ctx.moveTo event.pageX - _x, event.pageY - _y

  # does nothing more than save the current canvas via getImageData() to allow an undo
  @saveUndoState()

  @ctx.strokeStyle = @attr.stroke

  @canvas.bind "mousemove.canvasDraw", (e) =>
    x = e.pageX - _x
    y = e.pageY - _y

    @ctx.lineTo x, y
    @ctx.stroke()

initCanvas: ->
  @ctx = @canvas[0].getContext '2d'

  $(@canvas).bind "mousedown.canvasDraw", (e) =>
    @canvasMouseDown e
  $(@canvas).bind "mouseup.canvasDraw", (e) =>
    @canvasMouseUp e

等等。 忘記在mousedown上包括ctx.beginPath,在mouseup上包括ctx.closePath

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM