その場でキャンバスにパスを描きたいです。これを行う方法は、次の HTML5 キャンバス コードを使用することです。
$('#drawing-canvas').mousedown(function(e){
startx = e.pageX;
starty = e.pageY;
cxt.beginPath();
cxt.moveTo(startx,starty);
});
$('#drawing-canvas').mousemove(function(e){
cxt.lineTo(e.pageX,e.pageY);
cxt.strokeStyle='red';
cxt.lineWidth = 1;
cxt.stroke();
});
私の質問は、KineticJS を使用して同じことをどのように達成するかです。
アップデート:
このようなものがうまくいくかもしれないと思います。
$('#container').mousemove(function(e){
var pen = new Kinetic.Shape({
drawFunc: function(canvas) {
var context = canvas.getContext();
if(moving == false){ // grab the start xy coords from mousedown event
context.beginPath();
context.moveTo(startx,starty);
moving = true;
}
context.lineTo(e.pageX,e.pageY);
context.strokeStyle='#ff00ff';
context.lineWidth = 1;
context.stroke();
}
penlayer.add(pen);
stage.add(penlayer);
});
});
ただし、beginPath() と moveTo(..) の処理には問題があることがわかっています。これらをマウスダウンイベントで設定する必要があります。何か案は?
アップデート:
私が取得しようとしている効果は、http://www.redshiftsolutions.com/demos/whiteboard/whiteboard.htmlでペン オプションを選択することで確認できます。これは、canvas と jQuery を使用したシンプルな共同ホワイトボードです。ドラッグ アンド ドロップ機能が追加されたため、これを KineticJS に移行したいと考えています。