2011-06-07 18 views
1

これはjsonオブジェクトの関数です。 canvas paramは画像が読み込まれたキャンバスで、canvasCtxはキャンバスのコンテキストです。問題は、スライダを動かすと、キャンバスが一度だけ編集され、再度移動すると何も起こりません。しかし、私がマークした文字列を追加すると、すべて正常に動作します。どうして?キャンバスが編集されない理由を理解できません

EditBrightness : function(canvas, canvasCtx) 
{ 
    var image = new Image(); // image that is used as default image for current operation  

    image.onload = function() {   

     var sliderLayout = "<div header='Brightness'>" + 
           "<span></span><br />" + 
           "<div></div>" + 
          "</div>";  

     var dialog = $(sliderLayout).dialog(); 

     $('div', dialog).slider({ 
      max : 150, 
      min : -150, 
      change : function (event, ui) { 

       var canvas = $("#edit_canvas")[0];  // <-- Those are 
       var canvasCtx = canvas.getContext('2d'); // <-- the strings 

       $('span', dialog).html(ui.value); 

       canvasCtx.drawImage(image, 0, 0); 

       Pixastic.process(canvas, "brightness", { 
        brightness : ui.value 
       }); 
      } 
     }); 
    }; 

    image.src = canvas.toDataURL(); 
} 
+0

Nitpick:JSONは機能を実行しません。データ交換フォーマットです。あなたが示しているのは、JavaScriptオブジェクトリテラルのメソッドです。 – Skilldrick

答えて

0

おそらく、あなたはあなたが私たちを見るのコードの外のどこかに、このメソッドに渡すcanvascanvasCtx変数を変更するため。

+0

火星の巣を確認しましたが、大丈夫です。ピカソ的に永続的な変更を加えることができますか? – aikixd

+0

私は文書で見ているように、操作のためにキャンバスではなくimgを使用しています。また、imgはキャンバスに置き換えられていると言われています。だから私はあなたのキャンバスが別のキャンバスに置き換えられていると思うので、なぜそれが最初に動作するのですが、2番目には動作しません。この瞬間がちょうど破壊されました。あなたのキャンバスの隣のDOMにイメージを追加し、イメージをPixasticメソッドに渡してみてください。 – bjornd

関連する問題