-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmouse.js
More file actions
88 lines (72 loc) · 2.64 KB
/
Copy pathmouse.js
File metadata and controls
88 lines (72 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
function mouseSetup(){
let stage = antsApp.pixiApp.stage;
let down = false;
let startX = 0;
let startY = 0;
//allow mouse events to be triggered in a queue
antsApp.mouseEvent = [];
//mouse events
document.body.addEventListener("wheel", zoom, { passive: true });
document.body.addEventListener("mousemove", mousePosition, { passive: true });
document.body.addEventListener("mousedown", mousedown, { passive: true });
document.body.addEventListener("mouseup", mouseup, { passive: true });
document.body.addEventListener('contextmenu', mouseright, false);
//mouse position
function mousePosition(e) {
if (down) {
let x = (e.offsetX - startX); // / width;
let y = (e.offsetY - startY); // / height;
stage.position.x = x;
stage.position.y = y;
//document.getElementById("test").innerHTML = "x: " + x + " y: " + y + debug(e);
}
}
//mouse down
function mousedown(e) {
down = true;
startX = e.offsetX - stage.position.x;
startY = e.offsetY - stage.position.y;
//document.getElementById("test").innerHTML = "startX: " + startX + " startY: " + startY + debug(e);
}
//mouse right
function mouseright(e) {
e.preventDefault();
//reset stage
stage.pivot.x = 0;
stage.pivot.y = 0;
stage.position.x = 0;
stage.position.y = 0;
stage.scale.x = 1;
stage.scale.y = 1;
//document.getElementById("test").innerHTML = "reset: " + debug(e);
//create menu
let close = antsApp.menu.item("Close", antsApp.menu.close);
let items = [close];
antsApp.menu.display(e, items);
return false;
}
//mouse up
function mouseup(e) {
down = false;
startX = 0;
startY = 0;
//document.getElementById("test").innerHTML = "up" + debug();
}
//zoom
function zoom(e) {
//e.preventDefault();
let scaleX = stage.scale.x;
let tx = (e.x - stage.x) / scaleX;
let ty = (e.y - stage.y) / scaleX;
scaleX += -1 * Math.max(-1, Math.min(1, e.deltaY)) * antsApp.zoomRate * scaleX;
stage.setTransform(-tx * scaleX + e.x, -ty * scaleX + e.y, scaleX, scaleX);
//return false;
}
/*
//debug
function debug(e) {
return " stage.x: " + stage.position.x + " stage.y: " + stage.position.y + " stage.scale.x: " + stage.scale.x + " stage.scale.y: " + stage.scale.y +
" width:" + width + " height:" + height + " offsetX: " + e.offsetX + " offsetY: " + e.offsetY + " stage.width:" + stage.width;
}
*/
}