@swf2es/player 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/package.json +7 -7
  2. package/dist/audio.d.ts +0 -22
  3. package/dist/audio.d.ts.map +0 -1
  4. package/dist/audio.js +0 -106
  5. package/dist/audio.js.map +0 -1
  6. package/dist/bitmap-filters.d.ts +0 -29
  7. package/dist/bitmap-filters.d.ts.map +0 -1
  8. package/dist/bitmap-filters.js +0 -906
  9. package/dist/bitmap-filters.js.map +0 -1
  10. package/dist/bitmap-ops.d.ts +0 -113
  11. package/dist/bitmap-ops.d.ts.map +0 -1
  12. package/dist/bitmap-ops.js +0 -725
  13. package/dist/bitmap-ops.js.map +0 -1
  14. package/dist/bitmap.d.ts +0 -98
  15. package/dist/bitmap.d.ts.map +0 -1
  16. package/dist/bitmap.js +0 -314
  17. package/dist/bitmap.js.map +0 -1
  18. package/dist/bounds.d.ts +0 -26
  19. package/dist/bounds.d.ts.map +0 -1
  20. package/dist/bounds.js +0 -300
  21. package/dist/bounds.js.map +0 -1
  22. package/dist/color.d.ts +0 -7
  23. package/dist/color.d.ts.map +0 -1
  24. package/dist/color.js +0 -42
  25. package/dist/color.js.map +0 -1
  26. package/dist/display.d.ts +0 -425
  27. package/dist/display.d.ts.map +0 -1
  28. package/dist/display.js +0 -1274
  29. package/dist/display.js.map +0 -1
  30. package/dist/drawing.d.ts +0 -52
  31. package/dist/drawing.d.ts.map +0 -1
  32. package/dist/drawing.js +0 -204
  33. package/dist/drawing.js.map +0 -1
  34. package/dist/filters.d.ts +0 -54
  35. package/dist/filters.d.ts.map +0 -1
  36. package/dist/filters.js +0 -155
  37. package/dist/filters.js.map +0 -1
  38. package/dist/fonts.d.ts +0 -23
  39. package/dist/fonts.d.ts.map +0 -1
  40. package/dist/fonts.js +0 -91
  41. package/dist/fonts.js.map +0 -1
  42. package/dist/geometry.d.ts +0 -21
  43. package/dist/geometry.d.ts.map +0 -1
  44. package/dist/geometry.js +0 -76
  45. package/dist/geometry.js.map +0 -1
  46. package/dist/gradients.d.ts +0 -29
  47. package/dist/gradients.d.ts.map +0 -1
  48. package/dist/gradients.js +0 -116
  49. package/dist/gradients.js.map +0 -1
  50. package/dist/images.d.ts +0 -22
  51. package/dist/images.d.ts.map +0 -1
  52. package/dist/images.js +0 -147
  53. package/dist/images.js.map +0 -1
  54. package/dist/input.d.ts +0 -79
  55. package/dist/input.d.ts.map +0 -1
  56. package/dist/input.js +0 -366
  57. package/dist/input.js.map +0 -1
  58. package/dist/keyboard.d.ts +0 -97
  59. package/dist/keyboard.d.ts.map +0 -1
  60. package/dist/keyboard.js +0 -583
  61. package/dist/keyboard.js.map +0 -1
  62. package/dist/morph.d.ts +0 -17
  63. package/dist/morph.d.ts.map +0 -1
  64. package/dist/morph.js +0 -218
  65. package/dist/morph.js.map +0 -1
  66. package/dist/pixi-blend.d.ts +0 -7
  67. package/dist/pixi-blend.d.ts.map +0 -1
  68. package/dist/pixi-blend.js +0 -253
  69. package/dist/pixi-blend.js.map +0 -1
  70. package/dist/pixi-color.d.ts +0 -54
  71. package/dist/pixi-color.d.ts.map +0 -1
  72. package/dist/pixi-color.js +0 -336
  73. package/dist/pixi-color.js.map +0 -1
  74. package/dist/pixi-filters.d.ts +0 -40
  75. package/dist/pixi-filters.d.ts.map +0 -1
  76. package/dist/pixi-filters.js +0 -953
  77. package/dist/pixi-filters.js.map +0 -1
  78. package/dist/pixi-resolve.d.ts +0 -4
  79. package/dist/pixi-resolve.d.ts.map +0 -1
  80. package/dist/pixi-resolve.js +0 -76
  81. package/dist/pixi-resolve.js.map +0 -1
  82. package/dist/pixi.d.ts +0 -219
  83. package/dist/pixi.d.ts.map +0 -1
  84. package/dist/pixi.js +0 -2169
  85. package/dist/pixi.js.map +0 -1
  86. package/dist/playerglobal/flash/filters/filters.d.ts +0 -26
  87. package/dist/playerglobal/flash/filters/filters.d.ts.map +0 -1
  88. package/dist/playerglobal/flash/filters/filters.js +0 -287
  89. package/dist/playerglobal/flash/filters/filters.js.map +0 -1
  90. package/dist/playerglobal/flash/system/FSCommand.d.ts +0 -4
  91. package/dist/playerglobal/flash/system/FSCommand.d.ts.map +0 -1
  92. package/dist/playerglobal/flash/system/FSCommand.js +0 -18
  93. package/dist/playerglobal/flash/system/FSCommand.js.map +0 -1
  94. package/dist/playerglobal/natives.d.ts +0 -10
  95. package/dist/playerglobal/natives.d.ts.map +0 -1
  96. package/dist/playerglobal/natives.js +0 -53
  97. package/dist/playerglobal/natives.js.map +0 -1
  98. package/dist/png.d.ts +0 -4
  99. package/dist/png.d.ts.map +0 -1
  100. package/dist/png.js +0 -140
  101. package/dist/png.js.map +0 -1
  102. package/dist/render/art.d.ts +0 -148
  103. package/dist/render/art.d.ts.map +0 -1
  104. package/dist/render/art.js +0 -575
  105. package/dist/render/art.js.map +0 -1
  106. package/dist/render/batchers.d.ts +0 -23
  107. package/dist/render/batchers.d.ts.map +0 -1
  108. package/dist/render/batchers.js +0 -52
  109. package/dist/render/batchers.js.map +0 -1
  110. package/dist/render/bitmaps.d.ts +0 -117
  111. package/dist/render/bitmaps.d.ts.map +0 -1
  112. package/dist/render/bitmaps.js +0 -422
  113. package/dist/render/bitmaps.js.map +0 -1
  114. package/dist/render/blend.d.ts +0 -37
  115. package/dist/render/blend.d.ts.map +0 -1
  116. package/dist/render/blend.js +0 -195
  117. package/dist/render/blend.js.map +0 -1
  118. package/dist/render/color.d.ts +0 -111
  119. package/dist/render/color.d.ts.map +0 -1
  120. package/dist/render/color.js +0 -533
  121. package/dist/render/color.js.map +0 -1
  122. package/dist/render/compositing.d.ts +0 -77
  123. package/dist/render/compositing.d.ts.map +0 -1
  124. package/dist/render/compositing.js +0 -188
  125. package/dist/render/compositing.js.map +0 -1
  126. package/dist/render/filters.d.ts +0 -98
  127. package/dist/render/filters.d.ts.map +0 -1
  128. package/dist/render/filters.js +0 -1326
  129. package/dist/render/filters.js.map +0 -1
  130. package/dist/render/hooks.d.ts +0 -4
  131. package/dist/render/hooks.d.ts.map +0 -1
  132. package/dist/render/hooks.js +0 -48
  133. package/dist/render/hooks.js.map +0 -1
  134. package/dist/render/node.d.ts +0 -139
  135. package/dist/render/node.d.ts.map +0 -1
  136. package/dist/render/node.js +0 -59
  137. package/dist/render/node.js.map +0 -1
  138. package/dist/render/patches.d.ts +0 -54
  139. package/dist/render/patches.d.ts.map +0 -1
  140. package/dist/render/patches.js +0 -154
  141. package/dist/render/patches.js.map +0 -1
  142. package/dist/render/planes.d.ts +0 -74
  143. package/dist/render/planes.d.ts.map +0 -1
  144. package/dist/render/planes.js +0 -267
  145. package/dist/render/planes.js.map +0 -1
  146. package/dist/render/pointer.d.ts +0 -5
  147. package/dist/render/pointer.d.ts.map +0 -1
  148. package/dist/render/pointer.js +0 -279
  149. package/dist/render/pointer.js.map +0 -1
  150. package/dist/render/pools.d.ts +0 -122
  151. package/dist/render/pools.d.ts.map +0 -1
  152. package/dist/render/pools.js +0 -238
  153. package/dist/render/pools.js.map +0 -1
  154. package/dist/render/resolve.d.ts +0 -4
  155. package/dist/render/resolve.d.ts.map +0 -1
  156. package/dist/render/resolve.js +0 -76
  157. package/dist/render/resolve.js.map +0 -1
  158. package/dist/render/saffron.d.ts +0 -135
  159. package/dist/render/saffron.d.ts.map +0 -1
  160. package/dist/render/saffron.js +0 -725
  161. package/dist/render/saffron.js.map +0 -1
  162. package/dist/render/settle.d.ts +0 -60
  163. package/dist/render/settle.d.ts.map +0 -1
  164. package/dist/render/settle.js +0 -128
  165. package/dist/render/settle.js.map +0 -1
  166. package/dist/render/shared.d.ts +0 -25
  167. package/dist/render/shared.d.ts.map +0 -1
  168. package/dist/render/shared.js +0 -33
  169. package/dist/render/shared.js.map +0 -1
  170. package/dist/render/snapshot.d.ts +0 -21
  171. package/dist/render/snapshot.d.ts.map +0 -1
  172. package/dist/render/snapshot.js +0 -91
  173. package/dist/render/snapshot.js.map +0 -1
  174. package/dist/render/spares.d.ts +0 -56
  175. package/dist/render/spares.d.ts.map +0 -1
  176. package/dist/render/spares.js +0 -160
  177. package/dist/render/spares.js.map +0 -1
  178. package/dist/render/strokes.d.ts +0 -107
  179. package/dist/render/strokes.d.ts.map +0 -1
  180. package/dist/render/strokes.js +0 -448
  181. package/dist/render/strokes.js.map +0 -1
  182. package/dist/render/table.d.ts +0 -213
  183. package/dist/render/table.d.ts.map +0 -1
  184. package/dist/render/table.js +0 -795
  185. package/dist/render/table.js.map +0 -1
  186. package/dist/render/tessellate.d.ts +0 -89
  187. package/dist/render/tessellate.d.ts.map +0 -1
  188. package/dist/render/tessellate.js +0 -386
  189. package/dist/render/tessellate.js.map +0 -1
  190. package/dist/render/text.d.ts +0 -40
  191. package/dist/render/text.d.ts.map +0 -1
  192. package/dist/render/text.js +0 -309
  193. package/dist/render/text.js.map +0 -1
  194. package/dist/render/three.d.ts +0 -83
  195. package/dist/render/three.d.ts.map +0 -1
  196. package/dist/render/three.js +0 -511
  197. package/dist/render/three.js.map +0 -1
  198. package/dist/render/triangles.d.ts +0 -28
  199. package/dist/render/triangles.d.ts.map +0 -1
  200. package/dist/render/triangles.js +0 -189
  201. package/dist/render/triangles.js.map +0 -1
  202. package/dist/render/view.d.ts +0 -238
  203. package/dist/render/view.d.ts.map +0 -1
  204. package/dist/render/view.js +0 -1173
  205. package/dist/render/view.js.map +0 -1
  206. package/dist/render/worker/bitmaps.d.ts +0 -43
  207. package/dist/render/worker/bitmaps.d.ts.map +0 -1
  208. package/dist/render/worker/bitmaps.js +0 -151
  209. package/dist/render/worker/bitmaps.js.map +0 -1
  210. package/dist/render/worker/drawing.d.ts +0 -21
  211. package/dist/render/worker/drawing.d.ts.map +0 -1
  212. package/dist/render/worker/drawing.js +0 -356
  213. package/dist/render/worker/drawing.js.map +0 -1
  214. package/dist/render/worker/filters.d.ts +0 -7
  215. package/dist/render/worker/filters.d.ts.map +0 -1
  216. package/dist/render/worker/filters.js +0 -125
  217. package/dist/render/worker/filters.js.map +0 -1
  218. package/dist/render/worker/frames.d.ts +0 -32
  219. package/dist/render/worker/frames.d.ts.map +0 -1
  220. package/dist/render/worker/frames.js +0 -124
  221. package/dist/render/worker/frames.js.map +0 -1
  222. package/dist/render/worker/host.d.ts +0 -60
  223. package/dist/render/worker/host.d.ts.map +0 -1
  224. package/dist/render/worker/host.js +0 -297
  225. package/dist/render/worker/host.js.map +0 -1
  226. package/dist/render/worker/libraries.d.ts +0 -36
  227. package/dist/render/worker/libraries.d.ts.map +0 -1
  228. package/dist/render/worker/libraries.js +0 -153
  229. package/dist/render/worker/libraries.js.map +0 -1
  230. package/dist/render/worker/presentation.d.ts +0 -18
  231. package/dist/render/worker/presentation.d.ts.map +0 -1
  232. package/dist/render/worker/presentation.js +0 -47
  233. package/dist/render/worker/presentation.js.map +0 -1
  234. package/dist/render/worker/renderer.d.ts +0 -4
  235. package/dist/render/worker/renderer.d.ts.map +0 -1
  236. package/dist/render/worker/renderer.js +0 -21
  237. package/dist/render/worker/renderer.js.map +0 -1
  238. package/dist/render/worker/scene.d.ts +0 -32
  239. package/dist/render/worker/scene.d.ts.map +0 -1
  240. package/dist/render/worker/scene.js +0 -611
  241. package/dist/render/worker/scene.js.map +0 -1
  242. package/dist/render/worker/text.d.ts +0 -47
  243. package/dist/render/worker/text.d.ts.map +0 -1
  244. package/dist/render/worker/text.js +0 -261
  245. package/dist/render/worker/text.js.map +0 -1
  246. package/dist/render/worker/thread.d.ts +0 -23
  247. package/dist/render/worker/thread.d.ts.map +0 -1
  248. package/dist/render/worker/thread.js +0 -107
  249. package/dist/render/worker/thread.js.map +0 -1
  250. package/dist/render/worker/values.d.ts +0 -18
  251. package/dist/render/worker/values.d.ts.map +0 -1
  252. package/dist/render/worker/values.js +0 -64
  253. package/dist/render/worker/values.js.map +0 -1
  254. package/dist/sha256.d.ts +0 -5
  255. package/dist/sha256.d.ts.map +0 -1
  256. package/dist/sha256.js +0 -96
  257. package/dist/sha256.js.map +0 -1
  258. package/dist/shapes.d.ts +0 -71
  259. package/dist/shapes.d.ts.map +0 -1
  260. package/dist/shapes.js +0 -340
  261. package/dist/shapes.js.map +0 -1
  262. package/dist/static-text.d.ts +0 -33
  263. package/dist/static-text.d.ts.map +0 -1
  264. package/dist/static-text.js +0 -105
  265. package/dist/static-text.js.map +0 -1
  266. package/dist/text-layout.d.ts +0 -66
  267. package/dist/text-layout.d.ts.map +0 -1
  268. package/dist/text-layout.js +0 -315
  269. package/dist/text-layout.js.map +0 -1
  270. package/dist/text.d.ts +0 -67
  271. package/dist/text.d.ts.map +0 -1
  272. package/dist/text.js +0 -383
  273. package/dist/text.js.map +0 -1
  274. package/dist/timeline.d.ts +0 -150
  275. package/dist/timeline.d.ts.map +0 -1
  276. package/dist/timeline.js +0 -266
  277. package/dist/timeline.js.map +0 -1
package/dist/input.js DELETED
@@ -1,366 +0,0 @@
1
- // Browser pointer input enters here; Flash chooses targets from its display
2
- // list, while Pixi only supplies the pointer's position and buttons.
3
- import { hitsOwnPoint, toStage } from "./bounds.js";
4
- import { BitmapObject, ButtonObject, Container, ShapeObject, StaticTextObject, TextObject, } from "./display.js";
5
- import { apply, invert } from "./geometry.js";
6
- import { dispatchEvent } from "./playerglobal/flash/events/EventDispatcher.js";
7
- /**
8
- * What a pick finds: an interactive object hit, a hit that goes up to the
9
- * first ancestor with mouseEnabled, or nothing.
10
- */
11
- const PROPAGATE = "propagate";
12
- /**
13
- * An InteractiveObject's kind: what picks for itself, rather than through
14
- * its parent. An AVM1 movie's root is an AVM1Movie, no InteractiveObject:
15
- * a hit on it goes to its Loader, as Flash has it (the corpus's
16
- * `mouse_pick_loader_avm1`).
17
- */
18
- const isInteractive = (d) => !(d instanceof ShapeObject ||
19
- d instanceof BitmapObject ||
20
- d instanceof StaticTextObject ||
21
- d.avm1Root);
22
- const mouseEnabled = (d) => !!d.object && !d.avm1Root && d.object.$mouseEnabled !== false;
23
- /** `d` itself where it takes the pointer, else the hit goes on to its parent. */
24
- const own = (d) => (mouseEnabled(d) ? d : PROPAGATE);
25
- /**
26
- * The object under a point, in stage coordinates, as Flash picks it
27
- * (Ruffle's `mouse_pick_avm2`): within a container, its interactive
28
- * children first, topmost first, then the rest. A hit on artwork, or on
29
- * a child whose mouseEnabled is false, goes to the nearest ancestor that
30
- * takes the pointer; one that goes up is kept while the search goes on,
31
- * so a disabled field over a button leaves the button its clicks.
32
- */
33
- export function pointerTarget(stage, x, y, width, height) {
34
- // Whether `d`'s artwork is under the point, its children's included.
35
- const drawn = (d) => {
36
- if (!d.visible || d.clipDepth > 0 || d.maskOf) {
37
- return false;
38
- }
39
- if (d instanceof Container && d.children.some(drawn)) {
40
- return true;
41
- }
42
- return hitsOwnPoint(d, x, y, stage);
43
- };
44
- const pick = (d) => {
45
- if (!d.visible || d.clipDepth > 0 || d.maskOf) {
46
- return null;
47
- }
48
- // A button is hit where its hit test state is, whatever state it shows,
49
- // and is the target itself, its states' objects never. The hit test
50
- // state is in no container: it is tested as the button's child.
51
- if (d instanceof ButtonObject) {
52
- const area = d.hitTestState;
53
- if (!area) {
54
- return null;
55
- }
56
- const parent = area.parent;
57
- area.parent = d;
58
- // A disabled button is missed, not passed up: what is under it gets the hit (Ruffle).
59
- try {
60
- return mouseEnabled(d) && drawn(area) ? d : null;
61
- }
62
- finally {
63
- area.parent = parent;
64
- }
65
- }
66
- if (!(d instanceof Container)) {
67
- return hitsOwnPoint(d, x, y, stage) ? own(d) : null;
68
- }
69
- // Two passes rather than a sorted copy: this runs on every pointer move.
70
- const children = d.children;
71
- let propagated = false;
72
- for (let i = children.length - 1; i >= 0; i--) {
73
- if (!isInteractive(children[i])) {
74
- continue;
75
- }
76
- const found = pick(children[i]);
77
- if (found === PROPAGATE) {
78
- propagated = true;
79
- }
80
- else if (found) {
81
- // A container whose mouseChildren is false takes its children's hits itself.
82
- return d.object?.$mouseChildren === false ? own(d) : found;
83
- }
84
- }
85
- if (propagated) {
86
- return own(d);
87
- }
88
- for (let i = children.length - 1; i >= 0; i--) {
89
- if (!isInteractive(children[i]) && drawn(children[i])) {
90
- return own(d);
91
- }
92
- }
93
- return hitsOwnPoint(d, x, y, stage) ? own(d) : null;
94
- };
95
- if (x < 0 || y < 0 || x >= width || y >= height) {
96
- return null;
97
- }
98
- const found = pick(stage);
99
- if (found && found !== PROPAGATE) {
100
- return found;
101
- }
102
- return stage.object ? stage : null;
103
- }
104
- /** Mouse events on the player's display list, independent of a renderer. */
105
- export class PointerInput {
106
- stage;
107
- scripting;
108
- keyboard;
109
- /** How many pointer events it has handled. */
110
- handled = 0;
111
- /**
112
- * How many of them may show before the next frame: a button's state,
113
- * focus or a selection changed. What a mouse listener changes otherwise
114
- * shows at the next frame, as in Flash, unless it asks updateAfterEvent.
115
- */
116
- redraws = 0;
117
- hover = null;
118
- pressed = null;
119
- /** The last press, which the next continues as a double or triple click if near it in place and time. */
120
- lastPress = null;
121
- moved = null;
122
- shown = "default";
123
- drag = null;
124
- /** Told the cursor to show whenever it changes. */
125
- onCursor = null;
126
- constructor(stage, scripting,
127
- /** What a press tells the keyboard: which field it focuses, and where its caret goes. */
128
- keyboard = null) {
129
- this.stage = stage;
130
- this.scripting = scripting;
131
- this.keyboard = keyboard;
132
- }
133
- /** Flash has one active drag for the whole stage, independent of mouse button state. */
134
- startDrag(target, lockCenter, bounds) {
135
- this.drag = {
136
- target,
137
- lockCenter,
138
- bounds,
139
- lastX: this.scripting.mouseStageX,
140
- lastY: this.scripting.mouseStageY,
141
- };
142
- this.updateDrag();
143
- }
144
- stopDrag() {
145
- this.updateDrag();
146
- this.drag = null;
147
- }
148
- updateDrag() {
149
- const drag = this.drag;
150
- if (!drag) {
151
- return;
152
- }
153
- const d = drag.target;
154
- const parent = d.parent;
155
- const inverse = parent ? invert(toStage(parent, this.stage)) : null;
156
- const x = this.scripting.mouseStageX;
157
- const y = this.scripting.mouseStageY;
158
- const [atX, atY] = inverse ? apply(inverse, x, y) : [x, y];
159
- const [lastX, lastY] = inverse
160
- ? apply(inverse, drag.lastX, drag.lastY)
161
- : [drag.lastX, drag.lastY];
162
- let nextX = drag.lockCenter ? atX : d.matrix.tx + atX - lastX;
163
- let nextY = drag.lockCenter ? atY : d.matrix.ty + atY - lastY;
164
- if (drag.bounds) {
165
- nextX = Math.max(drag.bounds.xMin, Math.min(nextX, drag.bounds.xMax));
166
- nextY = Math.max(drag.bounds.yMin, Math.min(nextY, drag.bounds.yMax));
167
- }
168
- // Flash stores translations in twips, including positions reached by dragging.
169
- nextX = Math.round(nextX * 20) / 20;
170
- nextY = Math.round(nextY * 20) / 20;
171
- if (nextX !== d.matrix.tx || nextY !== d.matrix.ty) {
172
- d.setMatrix({ ...d.matrix, tx: nextX, ty: nextY });
173
- d.touch();
174
- this.redraws++;
175
- }
176
- drag.lastX = x;
177
- drag.lastY = y;
178
- }
179
- send(type, target, p, buttonDown, bubbles = true, related = null) {
180
- if (!target.object) {
181
- return;
182
- }
183
- const m = invert(toStage(target, this.stage));
184
- const [x, y] = m ? apply(m, p.x, p.y) : [Number.NaN, Number.NaN];
185
- const s = this.scripting;
186
- const event = s.rt.construct(s.rt.classNamed("flash.events::MouseEvent"), type, bubbles, false, x, y, related?.object ?? null, !!p.ctrlKey, !!p.altKey, !!p.shiftKey, buttonDown, 0);
187
- dispatchEvent(s, target.object, event);
188
- }
189
- /**
190
- * A move to handle at the next flush: at the start of the player's next
191
- * frame, or before the next other input, whichever comes first. A host
192
- * gets several a frame, of which only the last one shows.
193
- */
194
- post(p) {
195
- this.moved = p;
196
- }
197
- /** Handle the move posted, if any. */
198
- flush() {
199
- const p = this.moved;
200
- if (p) {
201
- this.handle("move", p);
202
- }
203
- }
204
- handle(type, p) {
205
- // A move posted before this input comes first; a move given now replaces it.
206
- if (type === "move") {
207
- this.moved = null;
208
- }
209
- else {
210
- this.flush();
211
- }
212
- this.handled++;
213
- const s = this.scripting;
214
- s.mouseStageX = p.x;
215
- s.mouseStageY = p.y;
216
- this.updateDrag();
217
- const target = type === "leave" ? null : pointerTarget(this.stage, p.x, p.y, s.stageWidth, s.stageHeight);
218
- const down = (p.buttons ?? 0) & 1 ? true : type === "down" && (p.button ?? 0) === 0;
219
- // What may show at once, rather than at the next frame: a hover that
220
- // moves on or off a button or a sprite in buttonMode, as Ruffle redraws
221
- // for, and more than Ruffle, any press, release or leave, which may move
222
- // focus and a caret, and a drag selecting text.
223
- if (type !== "move" ||
224
- (target !== this.hover && (buttonLike(target) || buttonLike(this.hover)))) {
225
- this.redraws++;
226
- }
227
- if (target !== this.hover) {
228
- const previous = this.hover;
229
- const entered = new Set();
230
- for (let d = target; d; d = d.parent) {
231
- entered.add(d);
232
- }
233
- let common = this.stage;
234
- if (previous && target) {
235
- for (let d = previous; d; d = d.parent) {
236
- if (entered.has(d)) {
237
- common = d;
238
- break;
239
- }
240
- }
241
- }
242
- if (previous) {
243
- buttonState(previous, "up");
244
- this.send("mouseOut", previous, p, down, true, target);
245
- for (let d = previous; d && d !== common; d = d.parent) {
246
- this.send("rollOut", d, p, down, false, target);
247
- }
248
- }
249
- if (target) {
250
- buttonState(target, down && target === this.pressed ? "down" : "over");
251
- for (let d = target; d && d !== common; d = d.parent) {
252
- this.send("rollOver", d, p, down, false, previous);
253
- }
254
- this.send("mouseOver", target, p, down, true, previous);
255
- }
256
- this.hover = target;
257
- }
258
- if (type === "move") {
259
- if (target) {
260
- this.send("mouseMove", target, p, down);
261
- }
262
- // A drag from a field selects in it, wherever the pointer goes.
263
- const pressed = this.pressed;
264
- if (down && pressed instanceof TextObject && this.keyboard) {
265
- const m = invert(toStage(pressed, this.stage));
266
- if (m) {
267
- this.keyboard.dragged(pressed, ...apply(m, p.x, p.y));
268
- this.redraws++;
269
- }
270
- }
271
- }
272
- else if (type === "down" && (p.button ?? 0) === 0) {
273
- this.pressed = target;
274
- // Ruffle's rule: within half a second and two pixels of the last press.
275
- const last = this.lastPress;
276
- const time = p.time ?? Number.NaN;
277
- const again = last !== null &&
278
- Math.abs(time - last.time) < 500 &&
279
- (p.x - last.x) ** 2 + (p.y - last.y) ** 2 < 4;
280
- const clicks = again ? last.clicks + 1 : 1;
281
- this.lastPress = { x: p.x, y: p.y, time, clicks };
282
- if (this.keyboard) {
283
- const m = target && invert(toStage(target, this.stage));
284
- const [x, y] = m ? apply(m, p.x, p.y) : [0, 0];
285
- this.keyboard.pressed(target, x, y, clicks);
286
- }
287
- if (target) {
288
- buttonState(target, "down");
289
- this.send("mouseDown", target, p, true);
290
- }
291
- }
292
- else if (type === "up" && (p.button ?? 0) === 0) {
293
- if (target) {
294
- buttonState(target, "over");
295
- this.send("mouseUp", target, p, false);
296
- }
297
- if (target && target === this.pressed) {
298
- this.send("click", target, p, false);
299
- }
300
- this.pressed = null;
301
- }
302
- this.updateCursor();
303
- }
304
- /** Show a changed cursor immediately, including when a script hides or shows it. */
305
- updateCursor() {
306
- const cursor = this.cursor();
307
- if (cursor !== this.shown) {
308
- this.shown = cursor;
309
- this.onCursor?.(cursor);
310
- }
311
- }
312
- /**
313
- * The cursor to show: none while Mouse.hide holds, the one Mouse.cursor
314
- * names unless it is "auto", a registered one before Flash's own of the
315
- * same name, and otherwise the one over what the pointer is on, as Ruffle
316
- * chooses it: a hand over a button that uses one, or under the nearest
317
- * sprite in buttonMode whose useHandCursor and enabled are true; an
318
- * I-beam over selectable text, whose links do not show a hand yet.
319
- */
320
- cursor() {
321
- const s = this.scripting;
322
- if (s.mouseVisible === false) {
323
- return "none";
324
- }
325
- const named = s.mouseCursor;
326
- if (named !== "auto") {
327
- const forced = s.cursors?.get(named) ?? FORCED.get(named);
328
- if (forced) {
329
- return forced;
330
- }
331
- }
332
- const d = this.hover;
333
- // A disabled button keeps its hand, as Ruffle's AVM2 button does.
334
- if (d instanceof ButtonObject) {
335
- return d.useHandCursor ? "pointer" : "default";
336
- }
337
- if (d instanceof TextObject) {
338
- return d.selectable ? "text" : "default";
339
- }
340
- for (let o = d; o; o = o.parent) {
341
- const fields = o.object;
342
- if (fields?.$buttonMode) {
343
- return fields.$useHandCursor !== false && fields.$enabled !== false ? "pointer" : "default";
344
- }
345
- }
346
- return "default";
347
- }
348
- }
349
- /** flash.ui.MouseCursor's names as CSS: "hand" is Flash's dragging hand, as Ruffle shows it. */
350
- const FORCED = new Map([
351
- ["arrow", "default"],
352
- ["button", "pointer"],
353
- ["hand", "grab"],
354
- ["ibeam", "text"],
355
- ]);
356
- /** Whether `d` is a button, or a sprite in buttonMode, whose hover Ruffle redraws for. */
357
- function buttonLike(d) {
358
- return (d instanceof ButtonObject || !!d?.object?.$buttonMode);
359
- }
360
- /** Show state `state` of `d`, if it is an enabled button: the pointer moves a disabled one through none. */
361
- function buttonState(d, state) {
362
- if (d instanceof ButtonObject && d.enabled) {
363
- d.setState(state);
364
- }
365
- }
366
- //# sourceMappingURL=input.js.map
package/dist/input.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- import { Container, type DisplayObject, TextObject } from "./display.js";
2
- import type { Scripting } from "./scripting.js";
3
- /** A key as the host gives it, in Flash's terms. */
4
- export interface KeyState {
5
- keyCode: number;
6
- /** The character typed, 0 for none. */
7
- charCode: number;
8
- /** 0 standard, 1 left, 2 right, 3 numeric keypad. */
9
- location?: number;
10
- ctrlKey?: boolean;
11
- altKey?: boolean;
12
- shiftKey?: boolean;
13
- }
14
- /**
15
- * Whether Tab may focus `d` where no script said: an input field, a
16
- * button, and a sprite in button mode, as Flash has it.
17
- */
18
- export declare function tabEnabledDefault(d: DisplayObject): boolean;
19
- /**
20
- * Move focus to `next`: focusOut on the one that had it, then focusIn on
21
- * it, each naming the other, unless a focusOut listener moved it on; a
22
- * field gains or loses its caret, and the object a hook to give it up by
23
- * when it is taken off the list or hidden.
24
- */
25
- export declare function setFocus(s: Scripting, next: DisplayObject | null): void;
26
- /**
27
- * The characters `text` is typed as under `restrict`, as Ruffle parses it
28
- * (EditTextRestrict): null any; empty none; characters and ranges allowed,
29
- * each `^` switching to those disallowed and back, a leading one first
30
- * allowing all; `-` a range, from U+0000 where nothing is before it, its
31
- * first character alone where nothing follows or it runs backwards; `\`
32
- * the next character as itself. A letter it refuses is tried in the other
33
- * case, ASCII only.
34
- */
35
- export declare function restrictText(restrict: string | null, text: string): string;
36
- /** The keyboard on the player's display list, independent of a renderer. */
37
- export declare class KeyboardInput {
38
- private readonly stage;
39
- private readonly scripting;
40
- /** How many key events it has handled: each may run scripts and change a field. */
41
- handled: number;
42
- /** The field the pointer was pressed on, where, and by which click, whose selection a drag extends. */
43
- private press;
44
- constructor(stage: Container, scripting: Scripting);
45
- /**
46
- * A key pressed or let go: whether the SWF used it, a field's edit or
47
- * caret, or Tab moving focus, which a host then keeps from the browser.
48
- */
49
- handle(type: "down" | "up", k: KeyState): boolean;
50
- /**
51
- * A press on `target`, with the point in its own pixels: as Flash, a
52
- * cancelable mouseFocusChange on what has focus, or the stage, then
53
- * focus to the target where a click focuses it, else to nothing; a
54
- * field's caret where it was clicked.
55
- */
56
- pressed(target: DisplayObject | null, localX: number, localY: number, clicks?: number): void;
57
- /**
58
- * The pointer moved with its button held, the point in the pressed
59
- * field's own pixels: the selection spans from where the press was to
60
- * here, by characters, or by words or lines after a double or triple click.
61
- */
62
- dragged(field: TextObject, localX: number, localY: number): void;
63
- /**
64
- * Tab: the next object Tab visits, or with Shift the one before, after a
65
- * cancelable keyFocusChange: by tabIndex where any has one, only those
66
- * then, else by where their bounds start on the stage, 6y + x in twips,
67
- * one of each place, as Flash orders them.
68
- */
69
- private tab;
70
- /** A key's edit of the focused field: a character typed, a deletion, or the caret moved. */
71
- private edit;
72
- /**
73
- * Typed text, as Ruffle takes it: nothing where maxChars leaves no room;
74
- * else the TextEvent with the text as typed, a line break as "\n",
75
- * which a listener may cancel, then what restrict lets through, cut to
76
- * the room left, over the selection, and Event.CHANGE.
77
- */
78
- private type;
79
- /** [from, to) of the field's text as `text`, the caret after it, and Event.CHANGE. */
80
- private replace;
81
- }
82
- /** The caret index nearest (x, y), in twips in the field: the nearer side of the character there, or its line's end. */
83
- export declare function caretAt(field: TextObject, x: number, y: number): number;
84
- /**
85
- * Send the browser's keys on `target` (the window, say) to the player. A
86
- * key goes to the SWF unless it is typed into the page's own input or
87
- * button, or comes from an IME, which the player cannot compose; the
88
- * browser is kept from acting on one only where the SWF used it: a field's
89
- * edit or caret, or Tab moving the SWF's focus. Its own shortcuts stay.
90
- */
91
- export declare function bindKeyboard(player: {
92
- keyboard: KeyboardInput | null;
93
- pointer?: {
94
- flush(): void;
95
- } | null;
96
- }, target: EventTarget): () => void;
97
- //# sourceMappingURL=keyboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,SAAS,EACT,KAAK,aAAa,EAElB,UAAU,EACX,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAM3D;AAwBD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAiCvE;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAsB1E;AA0ED,4EAA4E;AAC5E,qBAAa,aAAa;IAOtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B,mFAAmF;IACnF,OAAO,SAAK;IACZ,uGAAuG;IACvG,OAAO,CAAC,KAAK,CAAwE;IAErF,YACmB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,SAAS,EACnC;IAEJ;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAiChD;IAED;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,IAAI,CAwBtF;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAa/D;IAED;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAoDX,4FAA4F;IAC5F,OAAO,CAAC,IAAI;IA4DZ;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IAiCZ,sFAAsF;IACtF,OAAO,CAAC,OAAO;CAahB;AAkDD,wHAAwH;AACxH,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA4BvE;AAuED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE;IAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,EAC9E,MAAM,EAAE,WAAW,GAClB,MAAM,IAAI,CAuCZ"}