0

ユーザーがストロークの色を変更できるカラーピッカーを備えたインターフェイスがありますが、何が起こっているのか、描画を開始します-黒を描画します。ストロークを赤に変更し、描画します-そして、黒だったものはすべて赤になりました。その理由については、少しも手がかりがありません。

関連すると思われるコードは次のとおりです。それはすべて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
4

1 に答える 1

0

何とか。マウスダウンに ctx.beginPath を、マウスアップに ctx.closePath を含めるのを忘れていました

于 2012-10-03T12:41:55.983 に答える