var scope=new paper.PaperScope()
scope.setup("canvas1")
scope.activate()
let tool1 = new paper.Tool()
let canvas1 = document.getElementById("canvas1")
let ctx= canvas1.getContext("2d");
canvas1.addEventListener("dragover",(event)=>{
event.preventDefault()
})
canvas1.addEventListener("mousemove",(event)=>{
//always fire one time when dragend is fired
console.log("mousemove")
})
let draggables= document.getElementsByClassName("draggable")
for( let draggable of draggables){
draggable.addEventListener("dragstart",(event)=>{
console.log("dragstart")
draggable.classList.add("dragging");
window.dragFlag=true;
})
draggable.addEventListener("dragend",(event)=>{
console.log("dragend")
draggable.classList.remove("dragging");
})
}
tool1.onMouseMove=function(event){
console.log("paper move")
if(window.dragFlag==true){
drawShape(event)
window.dragFlag=false;
}
}
function drawShape(event){
var path = new paper.Path.Circle({
center: event.point,
radius: 25,
fillColor: 'black'
});
}
tool1.onKeyDown=function(event) { //this event handler works only if the mouse is inside the canvas, but I discovered that when the inconsistency I mentioned about starts, the keywdown event can be handled even if the mouse isn't inside the canvas anymore
if(event.character == "z") {
console.log("z pressed")
}
}