@swf2es/player 0.0.0-stage → 0.1.0

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 (1605) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE.third-party +51 -0
  3. package/README.md +38 -2
  4. package/dist/air-definitions.d.ts +2 -0
  5. package/dist/air-definitions.d.ts.map +1 -0
  6. package/dist/air-definitions.js +130 -0
  7. package/dist/air-definitions.js.map +1 -0
  8. package/dist/audio.d.ts +22 -0
  9. package/dist/audio.d.ts.map +1 -0
  10. package/dist/audio.js +106 -0
  11. package/dist/audio.js.map +1 -0
  12. package/dist/avm1/amf.d.ts +155 -0
  13. package/dist/avm1/amf.d.ts.map +1 -0
  14. package/dist/avm1/amf.js +508 -0
  15. package/dist/avm1/amf.js.map +1 -0
  16. package/dist/avm1/avm1.d.ts +448 -0
  17. package/dist/avm1/avm1.d.ts.map +1 -0
  18. package/dist/avm1/avm1.js +1305 -0
  19. package/dist/avm1/avm1.js.map +1 -0
  20. package/dist/avm1/bindings.d.ts +56 -0
  21. package/dist/avm1/bindings.d.ts.map +1 -0
  22. package/dist/avm1/bindings.js +215 -0
  23. package/dist/avm1/bindings.js.map +1 -0
  24. package/dist/avm1/classes.d.ts +33 -0
  25. package/dist/avm1/classes.d.ts.map +1 -0
  26. package/dist/avm1/classes.js +76 -0
  27. package/dist/avm1/classes.js.map +1 -0
  28. package/dist/avm1/clips.d.ts +54 -0
  29. package/dist/avm1/clips.d.ts.map +1 -0
  30. package/dist/avm1/clips.js +230 -0
  31. package/dist/avm1/clips.js.map +1 -0
  32. package/dist/avm1/compile.d.ts +8 -0
  33. package/dist/avm1/compile.d.ts.map +1 -0
  34. package/dist/avm1/compile.js +141 -0
  35. package/dist/avm1/compile.js.map +1 -0
  36. package/dist/avm1/external.d.ts +44 -0
  37. package/dist/avm1/external.d.ts.map +1 -0
  38. package/dist/avm1/external.js +80 -0
  39. package/dist/avm1/external.js.map +1 -0
  40. package/dist/avm1/focus.d.ts +68 -0
  41. package/dist/avm1/focus.d.ts.map +1 -0
  42. package/dist/avm1/focus.js +279 -0
  43. package/dist/avm1/focus.js.map +1 -0
  44. package/dist/avm1/globals/BitmapData.d.ts +30 -0
  45. package/dist/avm1/globals/BitmapData.d.ts.map +1 -0
  46. package/dist/avm1/globals/BitmapData.js +543 -0
  47. package/dist/avm1/globals/BitmapData.js.map +1 -0
  48. package/dist/avm1/globals/Button.d.ts +8 -0
  49. package/dist/avm1/globals/Button.d.ts.map +1 -0
  50. package/dist/avm1/globals/Button.js +32 -0
  51. package/dist/avm1/globals/Button.js.map +1 -0
  52. package/dist/avm1/globals/Color.d.ts +11 -0
  53. package/dist/avm1/globals/Color.d.ts.map +1 -0
  54. package/dist/avm1/globals/Color.js +116 -0
  55. package/dist/avm1/globals/Color.js.map +1 -0
  56. package/dist/avm1/globals/ExternalInterface.d.ts +20 -0
  57. package/dist/avm1/globals/ExternalInterface.d.ts.map +1 -0
  58. package/dist/avm1/globals/ExternalInterface.js +311 -0
  59. package/dist/avm1/globals/ExternalInterface.js.map +1 -0
  60. package/dist/avm1/globals/FileReference.d.ts +4 -0
  61. package/dist/avm1/globals/FileReference.d.ts.map +1 -0
  62. package/dist/avm1/globals/FileReference.js +218 -0
  63. package/dist/avm1/globals/FileReference.js.map +1 -0
  64. package/dist/avm1/globals/Key.d.ts +21 -0
  65. package/dist/avm1/globals/Key.d.ts.map +1 -0
  66. package/dist/avm1/globals/Key.js +61 -0
  67. package/dist/avm1/globals/Key.js.map +1 -0
  68. package/dist/avm1/globals/LoadVars.d.ts +39 -0
  69. package/dist/avm1/globals/LoadVars.d.ts.map +1 -0
  70. package/dist/avm1/globals/LoadVars.js +209 -0
  71. package/dist/avm1/globals/LoadVars.js.map +1 -0
  72. package/dist/avm1/globals/LocalConnection.d.ts +5 -0
  73. package/dist/avm1/globals/LocalConnection.d.ts.map +1 -0
  74. package/dist/avm1/globals/LocalConnection.js +93 -0
  75. package/dist/avm1/globals/LocalConnection.js.map +1 -0
  76. package/dist/avm1/globals/MovieClip.d.ts +156 -0
  77. package/dist/avm1/globals/MovieClip.d.ts.map +1 -0
  78. package/dist/avm1/globals/MovieClip.js +1071 -0
  79. package/dist/avm1/globals/MovieClip.js.map +1 -0
  80. package/dist/avm1/globals/MovieClipLoader.d.ts +29 -0
  81. package/dist/avm1/globals/MovieClipLoader.d.ts.map +1 -0
  82. package/dist/avm1/globals/MovieClipLoader.js +91 -0
  83. package/dist/avm1/globals/MovieClipLoader.js.map +1 -0
  84. package/dist/avm1/globals/NetConnection.d.ts +68 -0
  85. package/dist/avm1/globals/NetConnection.d.ts.map +1 -0
  86. package/dist/avm1/globals/NetConnection.js +262 -0
  87. package/dist/avm1/globals/NetConnection.js.map +1 -0
  88. package/dist/avm1/globals/PrintJob.d.ts +4 -0
  89. package/dist/avm1/globals/PrintJob.d.ts.map +1 -0
  90. package/dist/avm1/globals/PrintJob.js +38 -0
  91. package/dist/avm1/globals/PrintJob.js.map +1 -0
  92. package/dist/avm1/globals/Selection.d.ts +17 -0
  93. package/dist/avm1/globals/Selection.d.ts.map +1 -0
  94. package/dist/avm1/globals/Selection.js +63 -0
  95. package/dist/avm1/globals/Selection.js.map +1 -0
  96. package/dist/avm1/globals/SharedObject.d.ts +20 -0
  97. package/dist/avm1/globals/SharedObject.d.ts.map +1 -0
  98. package/dist/avm1/globals/SharedObject.js +246 -0
  99. package/dist/avm1/globals/SharedObject.js.map +1 -0
  100. package/dist/avm1/globals/Sound.d.ts +36 -0
  101. package/dist/avm1/globals/Sound.d.ts.map +1 -0
  102. package/dist/avm1/globals/Sound.js +239 -0
  103. package/dist/avm1/globals/Sound.js.map +1 -0
  104. package/dist/avm1/globals/Stage.d.ts +7 -0
  105. package/dist/avm1/globals/Stage.d.ts.map +1 -0
  106. package/dist/avm1/globals/Stage.js +13 -0
  107. package/dist/avm1/globals/Stage.js.map +1 -0
  108. package/dist/avm1/globals/StyleSheet.d.ts +10 -0
  109. package/dist/avm1/globals/StyleSheet.d.ts.map +1 -0
  110. package/dist/avm1/globals/StyleSheet.js +206 -0
  111. package/dist/avm1/globals/StyleSheet.js.map +1 -0
  112. package/dist/avm1/globals/TextField.d.ts +44 -0
  113. package/dist/avm1/globals/TextField.d.ts.map +1 -0
  114. package/dist/avm1/globals/TextField.js +397 -0
  115. package/dist/avm1/globals/TextField.js.map +1 -0
  116. package/dist/avm1/globals/TextFormat.d.ts +19 -0
  117. package/dist/avm1/globals/TextFormat.d.ts.map +1 -0
  118. package/dist/avm1/globals/TextFormat.js +195 -0
  119. package/dist/avm1/globals/TextFormat.js.map +1 -0
  120. package/dist/avm1/globals/TextSnapshot.d.ts +6 -0
  121. package/dist/avm1/globals/TextSnapshot.d.ts.map +1 -0
  122. package/dist/avm1/globals/TextSnapshot.js +89 -0
  123. package/dist/avm1/globals/TextSnapshot.js.map +1 -0
  124. package/dist/avm1/globals/XML.d.ts +9 -0
  125. package/dist/avm1/globals/XML.d.ts.map +1 -0
  126. package/dist/avm1/globals/XML.js +397 -0
  127. package/dist/avm1/globals/XML.js.map +1 -0
  128. package/dist/avm1/globals/XMLNode.d.ts +93 -0
  129. package/dist/avm1/globals/XMLNode.d.ts.map +1 -0
  130. package/dist/avm1/globals/XMLNode.js +414 -0
  131. package/dist/avm1/globals/XMLNode.js.map +1 -0
  132. package/dist/avm1/globals/XMLSocket.d.ts +19 -0
  133. package/dist/avm1/globals/XMLSocket.d.ts.map +1 -0
  134. package/dist/avm1/globals/XMLSocket.js +206 -0
  135. package/dist/avm1/globals/XMLSocket.js.map +1 -0
  136. package/dist/avm1/globals/drawing.d.ts +8 -0
  137. package/dist/avm1/globals/drawing.d.ts.map +1 -0
  138. package/dist/avm1/globals/drawing.js +203 -0
  139. package/dist/avm1/globals/drawing.js.map +1 -0
  140. package/dist/avm1/globals/filters.d.ts +30 -0
  141. package/dist/avm1/globals/filters.d.ts.map +1 -0
  142. package/dist/avm1/globals/filters.js +636 -0
  143. package/dist/avm1/globals/filters.js.map +1 -0
  144. package/dist/avm1/globals/geom.d.ts +28 -0
  145. package/dist/avm1/globals/geom.d.ts.map +1 -0
  146. package/dist/avm1/globals/geom.js +601 -0
  147. package/dist/avm1/globals/geom.js.map +1 -0
  148. package/dist/avm1/input.d.ts +106 -0
  149. package/dist/avm1/input.d.ts.map +1 -0
  150. package/dist/avm1/input.js +484 -0
  151. package/dist/avm1/input.js.map +1 -0
  152. package/dist/avm1/keyboard.d.ts +17 -0
  153. package/dist/avm1/keyboard.d.ts.map +1 -0
  154. package/dist/avm1/keyboard.js +114 -0
  155. package/dist/avm1/keyboard.js.map +1 -0
  156. package/dist/avm1/loads.d.ts +67 -0
  157. package/dist/avm1/loads.d.ts.map +1 -0
  158. package/dist/avm1/loads.js +353 -0
  159. package/dist/avm1/loads.js.map +1 -0
  160. package/dist/avm1/net.d.ts +83 -0
  161. package/dist/avm1/net.d.ts.map +1 -0
  162. package/dist/avm1/net.js +220 -0
  163. package/dist/avm1/net.js.map +1 -0
  164. package/dist/avm1/paths.d.ts +30 -0
  165. package/dist/avm1/paths.d.ts.map +1 -0
  166. package/dist/avm1/paths.js +105 -0
  167. package/dist/avm1/paths.js.map +1 -0
  168. package/dist/avm1/pointer.d.ts +113 -0
  169. package/dist/avm1/pointer.d.ts.map +1 -0
  170. package/dist/avm1/pointer.js +513 -0
  171. package/dist/avm1/pointer.js.map +1 -0
  172. package/dist/avm1/queue.d.ts +106 -0
  173. package/dist/avm1/queue.d.ts.map +1 -0
  174. package/dist/avm1/queue.js +304 -0
  175. package/dist/avm1/queue.js.map +1 -0
  176. package/dist/avm1/sound.d.ts +36 -0
  177. package/dist/avm1/sound.d.ts.map +1 -0
  178. package/dist/avm1/sound.js +107 -0
  179. package/dist/avm1/sound.js.map +1 -0
  180. package/dist/avm1/swf.d.ts +90 -0
  181. package/dist/avm1/swf.d.ts.map +1 -0
  182. package/dist/avm1/swf.js +142 -0
  183. package/dist/avm1/swf.js.map +1 -0
  184. package/dist/avm1/timers.d.ts +49 -0
  185. package/dist/avm1/timers.d.ts.map +1 -0
  186. package/dist/avm1/timers.js +114 -0
  187. package/dist/avm1/timers.js.map +1 -0
  188. package/dist/bitmap/bitmap.d.ts +231 -0
  189. package/dist/bitmap/bitmap.d.ts.map +1 -0
  190. package/dist/bitmap/bitmap.js +628 -0
  191. package/dist/bitmap/bitmap.js.map +1 -0
  192. package/dist/bitmap/draw.d.ts +11 -0
  193. package/dist/bitmap/draw.d.ts.map +1 -0
  194. package/dist/bitmap/draw.js +69 -0
  195. package/dist/bitmap/draw.js.map +1 -0
  196. package/dist/bitmap/dxt.d.ts +5 -0
  197. package/dist/bitmap/dxt.d.ts.map +1 -0
  198. package/dist/bitmap/dxt.js +12 -0
  199. package/dist/bitmap/dxt.js.map +1 -0
  200. package/dist/bitmap/filters.d.ts +82 -0
  201. package/dist/bitmap/filters.d.ts.map +1 -0
  202. package/dist/bitmap/filters.js +657 -0
  203. package/dist/bitmap/filters.js.map +1 -0
  204. package/dist/bitmap/images.d.ts +30 -0
  205. package/dist/bitmap/images.d.ts.map +1 -0
  206. package/dist/bitmap/images.js +241 -0
  207. package/dist/bitmap/images.js.map +1 -0
  208. package/dist/bitmap/kernel.d.ts +12 -0
  209. package/dist/bitmap/kernel.d.ts.map +1 -0
  210. package/dist/bitmap/kernel.js +66 -0
  211. package/dist/bitmap/kernel.js.map +1 -0
  212. package/dist/bitmap/ops.d.ts +144 -0
  213. package/dist/bitmap/ops.d.ts.map +1 -0
  214. package/dist/bitmap/ops.js +1240 -0
  215. package/dist/bitmap/ops.js.map +1 -0
  216. package/dist/bitmap/pixel-bender.d.ts +89 -0
  217. package/dist/bitmap/pixel-bender.d.ts.map +1 -0
  218. package/dist/bitmap/pixel-bender.js +912 -0
  219. package/dist/bitmap/pixel-bender.js.map +1 -0
  220. package/dist/bitmap/png.d.ts +4 -0
  221. package/dist/bitmap/png.d.ts.map +1 -0
  222. package/dist/bitmap/png.js +140 -0
  223. package/dist/bitmap/png.js.map +1 -0
  224. package/dist/bitmap/turbulence.d.ts +17 -0
  225. package/dist/bitmap/turbulence.d.ts.map +1 -0
  226. package/dist/bitmap/turbulence.js +90 -0
  227. package/dist/bitmap/turbulence.js.map +1 -0
  228. package/dist/bitmap-filters.d.ts +29 -0
  229. package/dist/bitmap-filters.d.ts.map +1 -0
  230. package/dist/bitmap-filters.js +906 -0
  231. package/dist/bitmap-filters.js.map +1 -0
  232. package/dist/bitmap-ops.d.ts +113 -0
  233. package/dist/bitmap-ops.d.ts.map +1 -0
  234. package/dist/bitmap-ops.js +725 -0
  235. package/dist/bitmap-ops.js.map +1 -0
  236. package/dist/bitmap.d.ts +98 -0
  237. package/dist/bitmap.d.ts.map +1 -0
  238. package/dist/bitmap.js +314 -0
  239. package/dist/bitmap.js.map +1 -0
  240. package/dist/bounds.d.ts +26 -0
  241. package/dist/bounds.d.ts.map +1 -0
  242. package/dist/bounds.js +300 -0
  243. package/dist/bounds.js.map +1 -0
  244. package/dist/clock.d.ts +60 -0
  245. package/dist/clock.d.ts.map +1 -0
  246. package/dist/clock.js +183 -0
  247. package/dist/clock.js.map +1 -0
  248. package/dist/color.d.ts +7 -0
  249. package/dist/color.d.ts.map +1 -0
  250. package/dist/color.js +42 -0
  251. package/dist/color.js.map +1 -0
  252. package/dist/display/bitmapobject.d.ts +18 -0
  253. package/dist/display/bitmapobject.d.ts.map +1 -0
  254. package/dist/display/bitmapobject.js +26 -0
  255. package/dist/display/bitmapobject.js.map +1 -0
  256. package/dist/display/bounds.d.ts +59 -0
  257. package/dist/display/bounds.d.ts.map +1 -0
  258. package/dist/display/bounds.js +521 -0
  259. package/dist/display/bounds.js.map +1 -0
  260. package/dist/display/buttonobject.d.ts +76 -0
  261. package/dist/display/buttonobject.d.ts.map +1 -0
  262. package/dist/display/buttonobject.js +306 -0
  263. package/dist/display/buttonobject.js.map +1 -0
  264. package/dist/display/color.d.ts +9 -0
  265. package/dist/display/color.d.ts.map +1 -0
  266. package/dist/display/color.js +41 -0
  267. package/dist/display/color.js.map +1 -0
  268. package/dist/display/container.d.ts +49 -0
  269. package/dist/display/container.d.ts.map +1 -0
  270. package/dist/display/container.js +151 -0
  271. package/dist/display/container.js.map +1 -0
  272. package/dist/display/display.d.ts +11 -0
  273. package/dist/display/display.d.ts.map +1 -0
  274. package/dist/display/display.js +15 -0
  275. package/dist/display/display.js.map +1 -0
  276. package/dist/display/displayobject.d.ts +363 -0
  277. package/dist/display/displayobject.d.ts.map +1 -0
  278. package/dist/display/displayobject.js +665 -0
  279. package/dist/display/displayobject.js.map +1 -0
  280. package/dist/display/drawing.d.ts +111 -0
  281. package/dist/display/drawing.d.ts.map +1 -0
  282. package/dist/display/drawing.js +614 -0
  283. package/dist/display/drawing.js.map +1 -0
  284. package/dist/display/filters.d.ts +99 -0
  285. package/dist/display/filters.d.ts.map +1 -0
  286. package/dist/display/filters.js +286 -0
  287. package/dist/display/filters.js.map +1 -0
  288. package/dist/display/geometry.d.ts +37 -0
  289. package/dist/display/geometry.d.ts.map +1 -0
  290. package/dist/display/geometry.js +190 -0
  291. package/dist/display/geometry.js.map +1 -0
  292. package/dist/display/gradients.d.ts +29 -0
  293. package/dist/display/gradients.d.ts.map +1 -0
  294. package/dist/display/gradients.js +118 -0
  295. package/dist/display/gradients.js.map +1 -0
  296. package/dist/display/graphicsdata.d.ts +41 -0
  297. package/dist/display/graphicsdata.d.ts.map +1 -0
  298. package/dist/display/graphicsdata.js +593 -0
  299. package/dist/display/graphicsdata.js.map +1 -0
  300. package/dist/display/instantiate.d.ts +15 -0
  301. package/dist/display/instantiate.d.ts.map +1 -0
  302. package/dist/display/instantiate.js +72 -0
  303. package/dist/display/instantiate.js.map +1 -0
  304. package/dist/display/matrix3d.d.ts +68 -0
  305. package/dist/display/matrix3d.d.ts.map +1 -0
  306. package/dist/display/matrix3d.js +374 -0
  307. package/dist/display/matrix3d.js.map +1 -0
  308. package/dist/display/morph.d.ts +17 -0
  309. package/dist/display/morph.d.ts.map +1 -0
  310. package/dist/display/morph.js +227 -0
  311. package/dist/display/morph.js.map +1 -0
  312. package/dist/display/movieclip.d.ts +115 -0
  313. package/dist/display/movieclip.d.ts.map +1 -0
  314. package/dist/display/movieclip.js +681 -0
  315. package/dist/display/movieclip.js.map +1 -0
  316. package/dist/display/perspective.d.ts +35 -0
  317. package/dist/display/perspective.d.ts.map +1 -0
  318. package/dist/display/perspective.js +194 -0
  319. package/dist/display/perspective.js.map +1 -0
  320. package/dist/display/plane.d.ts +52 -0
  321. package/dist/display/plane.d.ts.map +1 -0
  322. package/dist/display/plane.js +142 -0
  323. package/dist/display/plane.js.map +1 -0
  324. package/dist/display/scale9.d.ts +78 -0
  325. package/dist/display/scale9.d.ts.map +1 -0
  326. package/dist/display/scale9.js +237 -0
  327. package/dist/display/scale9.js.map +1 -0
  328. package/dist/display/shapeobject.d.ts +53 -0
  329. package/dist/display/shapeobject.d.ts.map +1 -0
  330. package/dist/display/shapeobject.js +132 -0
  331. package/dist/display/shapeobject.js.map +1 -0
  332. package/dist/display/shapes.d.ts +146 -0
  333. package/dist/display/shapes.d.ts.map +1 -0
  334. package/dist/display/shapes.js +408 -0
  335. package/dist/display/shapes.js.map +1 -0
  336. package/dist/display/stretch.d.ts +42 -0
  337. package/dist/display/stretch.d.ts.map +1 -0
  338. package/dist/display/stretch.js +192 -0
  339. package/dist/display/stretch.js.map +1 -0
  340. package/dist/display/textobjects.d.ts +98 -0
  341. package/dist/display/textobjects.d.ts.map +1 -0
  342. package/dist/display/textobjects.js +223 -0
  343. package/dist/display/textobjects.js.map +1 -0
  344. package/dist/display/timeline.d.ts +252 -0
  345. package/dist/display/timeline.d.ts.map +1 -0
  346. package/dist/display/timeline.js +472 -0
  347. package/dist/display/timeline.js.map +1 -0
  348. package/dist/display/value-lists.d.ts +10 -0
  349. package/dist/display/value-lists.d.ts.map +1 -0
  350. package/dist/display/value-lists.js +41 -0
  351. package/dist/display/value-lists.js.map +1 -0
  352. package/dist/display/videoobject.d.ts +7 -0
  353. package/dist/display/videoobject.d.ts.map +1 -0
  354. package/dist/display/videoobject.js +7 -0
  355. package/dist/display/videoobject.js.map +1 -0
  356. package/dist/display/walk.d.ts +45 -0
  357. package/dist/display/walk.d.ts.map +1 -0
  358. package/dist/display/walk.js +128 -0
  359. package/dist/display/walk.js.map +1 -0
  360. package/dist/display.d.ts +425 -0
  361. package/dist/display.d.ts.map +1 -0
  362. package/dist/display.js +1274 -0
  363. package/dist/display.js.map +1 -0
  364. package/dist/drawing.d.ts +52 -0
  365. package/dist/drawing.d.ts.map +1 -0
  366. package/dist/drawing.js +204 -0
  367. package/dist/drawing.js.map +1 -0
  368. package/dist/files.d.ts +77 -0
  369. package/dist/files.d.ts.map +1 -0
  370. package/dist/files.js +335 -0
  371. package/dist/files.js.map +1 -0
  372. package/dist/filters.d.ts +54 -0
  373. package/dist/filters.d.ts.map +1 -0
  374. package/dist/filters.js +155 -0
  375. package/dist/filters.js.map +1 -0
  376. package/dist/fonts.d.ts +23 -0
  377. package/dist/fonts.d.ts.map +1 -0
  378. package/dist/fonts.js +91 -0
  379. package/dist/fonts.js.map +1 -0
  380. package/dist/geometry.d.ts +21 -0
  381. package/dist/geometry.d.ts.map +1 -0
  382. package/dist/geometry.js +76 -0
  383. package/dist/geometry.js.map +1 -0
  384. package/dist/gradients.d.ts +29 -0
  385. package/dist/gradients.d.ts.map +1 -0
  386. package/dist/gradients.js +116 -0
  387. package/dist/gradients.js.map +1 -0
  388. package/dist/hosts.d.ts +406 -0
  389. package/dist/hosts.d.ts.map +1 -0
  390. package/dist/hosts.js +208 -0
  391. package/dist/hosts.js.map +1 -0
  392. package/dist/images.d.ts +22 -0
  393. package/dist/images.d.ts.map +1 -0
  394. package/dist/images.js +147 -0
  395. package/dist/images.js.map +1 -0
  396. package/dist/index.d.ts +24 -0
  397. package/dist/index.d.ts.map +1 -0
  398. package/dist/index.js +19 -0
  399. package/dist/index.js.map +1 -0
  400. package/dist/input/activation.d.ts +12 -0
  401. package/dist/input/activation.d.ts.map +1 -0
  402. package/dist/input/activation.js +57 -0
  403. package/dist/input/activation.js.map +1 -0
  404. package/dist/input/avm1.d.ts +22 -0
  405. package/dist/input/avm1.d.ts.map +1 -0
  406. package/dist/input/avm1.js +83 -0
  407. package/dist/input/avm1.js.map +1 -0
  408. package/dist/input/canvas.d.ts +19 -0
  409. package/dist/input/canvas.d.ts.map +1 -0
  410. package/dist/input/canvas.js +64 -0
  411. package/dist/input/canvas.js.map +1 -0
  412. package/dist/input/context-menu.d.ts +16 -0
  413. package/dist/input/context-menu.d.ts.map +1 -0
  414. package/dist/input/context-menu.js +64 -0
  415. package/dist/input/context-menu.js.map +1 -0
  416. package/dist/input/keyboard.d.ts +138 -0
  417. package/dist/input/keyboard.d.ts.map +1 -0
  418. package/dist/input/keyboard.js +459 -0
  419. package/dist/input/keyboard.js.map +1 -0
  420. package/dist/input/pointer.d.ts +186 -0
  421. package/dist/input/pointer.d.ts.map +1 -0
  422. package/dist/input/pointer.js +864 -0
  423. package/dist/input/pointer.js.map +1 -0
  424. package/dist/input/text-editor.d.ts +47 -0
  425. package/dist/input/text-editor.d.ts.map +1 -0
  426. package/dist/input/text-editor.js +320 -0
  427. package/dist/input/text-editor.js.map +1 -0
  428. package/dist/input/touch.d.ts +41 -0
  429. package/dist/input/touch.d.ts.map +1 -0
  430. package/dist/input/touch.js +210 -0
  431. package/dist/input/touch.js.map +1 -0
  432. package/dist/input.d.ts +79 -0
  433. package/dist/input.d.ts.map +1 -0
  434. package/dist/input.js +366 -0
  435. package/dist/input.js.map +1 -0
  436. package/dist/keyboard.d.ts +97 -0
  437. package/dist/keyboard.d.ts.map +1 -0
  438. package/dist/keyboard.js +583 -0
  439. package/dist/keyboard.js.map +1 -0
  440. package/dist/localconnection.d.ts +34 -0
  441. package/dist/localconnection.d.ts.map +1 -0
  442. package/dist/localconnection.js +91 -0
  443. package/dist/localconnection.js.map +1 -0
  444. package/dist/media/audio.d.ts +67 -0
  445. package/dist/media/audio.d.ts.map +1 -0
  446. package/dist/media/audio.js +377 -0
  447. package/dist/media/audio.js.map +1 -0
  448. package/dist/media/dynamic-sound.d.ts +10 -0
  449. package/dist/media/dynamic-sound.d.ts.map +1 -0
  450. package/dist/media/dynamic-sound.js +91 -0
  451. package/dist/media/dynamic-sound.js.map +1 -0
  452. package/dist/media/extract.d.ts +41 -0
  453. package/dist/media/extract.d.ts.map +1 -0
  454. package/dist/media/extract.js +136 -0
  455. package/dist/media/extract.js.map +1 -0
  456. package/dist/media/mp3.d.ts +19 -0
  457. package/dist/media/mp3.d.ts.map +1 -0
  458. package/dist/media/mp3.js +153 -0
  459. package/dist/media/mp3.js.map +1 -0
  460. package/dist/media/sounds.d.ts +157 -0
  461. package/dist/media/sounds.d.ts.map +1 -0
  462. package/dist/media/sounds.js +508 -0
  463. package/dist/media/sounds.js.map +1 -0
  464. package/dist/media/streaming-audio.d.ts +3 -0
  465. package/dist/media/streaming-audio.d.ts.map +1 -0
  466. package/dist/media/streaming-audio.js +134 -0
  467. package/dist/media/streaming-audio.js.map +1 -0
  468. package/dist/morph.d.ts +17 -0
  469. package/dist/morph.d.ts.map +1 -0
  470. package/dist/morph.js +218 -0
  471. package/dist/morph.js.map +1 -0
  472. package/dist/pixi-blend.d.ts +7 -0
  473. package/dist/pixi-blend.d.ts.map +1 -0
  474. package/dist/pixi-blend.js +253 -0
  475. package/dist/pixi-blend.js.map +1 -0
  476. package/dist/pixi-color.d.ts +54 -0
  477. package/dist/pixi-color.d.ts.map +1 -0
  478. package/dist/pixi-color.js +336 -0
  479. package/dist/pixi-color.js.map +1 -0
  480. package/dist/pixi-filters.d.ts +40 -0
  481. package/dist/pixi-filters.d.ts.map +1 -0
  482. package/dist/pixi-filters.js +953 -0
  483. package/dist/pixi-filters.js.map +1 -0
  484. package/dist/pixi-resolve.d.ts +4 -0
  485. package/dist/pixi-resolve.d.ts.map +1 -0
  486. package/dist/pixi-resolve.js +76 -0
  487. package/dist/pixi-resolve.js.map +1 -0
  488. package/dist/pixi.d.ts +219 -0
  489. package/dist/pixi.d.ts.map +1 -0
  490. package/dist/pixi.js +2169 -0
  491. package/dist/pixi.js.map +1 -0
  492. package/dist/player.d.ts +169 -0
  493. package/dist/player.d.ts.map +1 -0
  494. package/dist/player.js +617 -0
  495. package/dist/player.js.map +1 -0
  496. package/dist/playerglobal/air/net/WebSocket.d.ts +4 -0
  497. package/dist/playerglobal/air/net/WebSocket.d.ts.map +1 -0
  498. package/dist/playerglobal/air/net/WebSocket.js +251 -0
  499. package/dist/playerglobal/air/net/WebSocket.js.map +1 -0
  500. package/dist/playerglobal/air-library.d.ts +6 -0
  501. package/dist/playerglobal/air-library.d.ts.map +1 -0
  502. package/dist/playerglobal/air-library.js +9 -0
  503. package/dist/playerglobal/air-library.js.map +1 -0
  504. package/dist/playerglobal/context3d/context.d.ts +5 -0
  505. package/dist/playerglobal/context3d/context.d.ts.map +1 -0
  506. package/dist/playerglobal/context3d/context.js +472 -0
  507. package/dist/playerglobal/context3d/context.js.map +1 -0
  508. package/dist/playerglobal/context3d/errors.d.ts +11 -0
  509. package/dist/playerglobal/context3d/errors.d.ts.map +1 -0
  510. package/dist/playerglobal/context3d/errors.js +101 -0
  511. package/dist/playerglobal/context3d/errors.js.map +1 -0
  512. package/dist/playerglobal/context3d/lifecycle.d.ts +61 -0
  513. package/dist/playerglobal/context3d/lifecycle.d.ts.map +1 -0
  514. package/dist/playerglobal/context3d/lifecycle.js +342 -0
  515. package/dist/playerglobal/context3d/lifecycle.js.map +1 -0
  516. package/dist/playerglobal/context3d/readback.d.ts +21 -0
  517. package/dist/playerglobal/context3d/readback.d.ts.map +1 -0
  518. package/dist/playerglobal/context3d/readback.js +56 -0
  519. package/dist/playerglobal/context3d/readback.js.map +1 -0
  520. package/dist/playerglobal/context3d/resources.d.ts +5 -0
  521. package/dist/playerglobal/context3d/resources.d.ts.map +1 -0
  522. package/dist/playerglobal/context3d/resources.js +298 -0
  523. package/dist/playerglobal/context3d/resources.js.map +1 -0
  524. package/dist/playerglobal/context3d.d.ts +6 -0
  525. package/dist/playerglobal/context3d.d.ts.map +1 -0
  526. package/dist/playerglobal/context3d.js +96 -0
  527. package/dist/playerglobal/context3d.js.map +1 -0
  528. package/dist/playerglobal/flash/accessibility/Accessibility.d.ts +4 -0
  529. package/dist/playerglobal/flash/accessibility/Accessibility.d.ts.map +1 -0
  530. package/dist/playerglobal/flash/accessibility/Accessibility.js +22 -0
  531. package/dist/playerglobal/flash/accessibility/Accessibility.js.map +1 -0
  532. package/dist/playerglobal/flash/crypto/generateRandomBytes.d.ts +3 -0
  533. package/dist/playerglobal/flash/crypto/generateRandomBytes.d.ts.map +1 -0
  534. package/dist/playerglobal/flash/crypto/generateRandomBytes.js +33 -0
  535. package/dist/playerglobal/flash/crypto/generateRandomBytes.js.map +1 -0
  536. package/dist/playerglobal/flash/data/EncryptedLocalStore.d.ts +4 -0
  537. package/dist/playerglobal/flash/data/EncryptedLocalStore.d.ts.map +1 -0
  538. package/dist/playerglobal/flash/data/EncryptedLocalStore.js +62 -0
  539. package/dist/playerglobal/flash/data/EncryptedLocalStore.js.map +1 -0
  540. package/dist/playerglobal/flash/desktop/Clipboard.d.ts +9 -0
  541. package/dist/playerglobal/flash/desktop/Clipboard.d.ts.map +1 -0
  542. package/dist/playerglobal/flash/desktop/Clipboard.js +174 -0
  543. package/dist/playerglobal/flash/desktop/Clipboard.js.map +1 -0
  544. package/dist/playerglobal/flash/desktop/NativeApplication.d.ts +6 -0
  545. package/dist/playerglobal/flash/desktop/NativeApplication.d.ts.map +1 -0
  546. package/dist/playerglobal/flash/desktop/NativeApplication.js +180 -0
  547. package/dist/playerglobal/flash/desktop/NativeApplication.js.map +1 -0
  548. package/dist/playerglobal/flash/display/AVM1Movie.d.ts +3 -0
  549. package/dist/playerglobal/flash/display/AVM1Movie.d.ts.map +1 -0
  550. package/dist/playerglobal/flash/display/AVM1Movie.js +20 -0
  551. package/dist/playerglobal/flash/display/AVM1Movie.js.map +1 -0
  552. package/dist/playerglobal/flash/display/Bitmap.d.ts +4 -0
  553. package/dist/playerglobal/flash/display/Bitmap.d.ts.map +1 -0
  554. package/dist/playerglobal/flash/display/Bitmap.js +59 -0
  555. package/dist/playerglobal/flash/display/Bitmap.js.map +1 -0
  556. package/dist/playerglobal/flash/display/BitmapData.d.ts +10 -0
  557. package/dist/playerglobal/flash/display/BitmapData.d.ts.map +1 -0
  558. package/dist/playerglobal/flash/display/BitmapData.js +634 -0
  559. package/dist/playerglobal/flash/display/BitmapData.js.map +1 -0
  560. package/dist/playerglobal/flash/display/DisplayObject.d.ts +8 -0
  561. package/dist/playerglobal/flash/display/DisplayObject.d.ts.map +1 -0
  562. package/dist/playerglobal/flash/display/DisplayObject.js +615 -0
  563. package/dist/playerglobal/flash/display/DisplayObject.js.map +1 -0
  564. package/dist/playerglobal/flash/display/DisplayObjectContainer.d.ts +4 -0
  565. package/dist/playerglobal/flash/display/DisplayObjectContainer.d.ts.map +1 -0
  566. package/dist/playerglobal/flash/display/DisplayObjectContainer.js +225 -0
  567. package/dist/playerglobal/flash/display/DisplayObjectContainer.js.map +1 -0
  568. package/dist/playerglobal/flash/display/Graphics.d.ts +8 -0
  569. package/dist/playerglobal/flash/display/Graphics.d.ts.map +1 -0
  570. package/dist/playerglobal/flash/display/Graphics.js +346 -0
  571. package/dist/playerglobal/flash/display/Graphics.js.map +1 -0
  572. package/dist/playerglobal/flash/display/InteractiveObject.d.ts +12 -0
  573. package/dist/playerglobal/flash/display/InteractiveObject.d.ts.map +1 -0
  574. package/dist/playerglobal/flash/display/InteractiveObject.js +88 -0
  575. package/dist/playerglobal/flash/display/InteractiveObject.js.map +1 -0
  576. package/dist/playerglobal/flash/display/Loader.d.ts +4 -0
  577. package/dist/playerglobal/flash/display/Loader.d.ts.map +1 -0
  578. package/dist/playerglobal/flash/display/Loader.js +80 -0
  579. package/dist/playerglobal/flash/display/Loader.js.map +1 -0
  580. package/dist/playerglobal/flash/display/LoaderInfo.d.ts +8 -0
  581. package/dist/playerglobal/flash/display/LoaderInfo.d.ts.map +1 -0
  582. package/dist/playerglobal/flash/display/LoaderInfo.js +129 -0
  583. package/dist/playerglobal/flash/display/LoaderInfo.js.map +1 -0
  584. package/dist/playerglobal/flash/display/MovieClip.d.ts +4 -0
  585. package/dist/playerglobal/flash/display/MovieClip.d.ts.map +1 -0
  586. package/dist/playerglobal/flash/display/MovieClip.js +195 -0
  587. package/dist/playerglobal/flash/display/MovieClip.js.map +1 -0
  588. package/dist/playerglobal/flash/display/NativeWindow.d.ts +8 -0
  589. package/dist/playerglobal/flash/display/NativeWindow.d.ts.map +1 -0
  590. package/dist/playerglobal/flash/display/NativeWindow.js +246 -0
  591. package/dist/playerglobal/flash/display/NativeWindow.js.map +1 -0
  592. package/dist/playerglobal/flash/display/Shader.d.ts +4 -0
  593. package/dist/playerglobal/flash/display/Shader.d.ts.map +1 -0
  594. package/dist/playerglobal/flash/display/Shader.js +27 -0
  595. package/dist/playerglobal/flash/display/Shader.js.map +1 -0
  596. package/dist/playerglobal/flash/display/ShaderData.d.ts +7 -0
  597. package/dist/playerglobal/flash/display/ShaderData.d.ts.map +1 -0
  598. package/dist/playerglobal/flash/display/ShaderData.js +86 -0
  599. package/dist/playerglobal/flash/display/ShaderData.js.map +1 -0
  600. package/dist/playerglobal/flash/display/ShaderInput.d.ts +20 -0
  601. package/dist/playerglobal/flash/display/ShaderInput.d.ts.map +1 -0
  602. package/dist/playerglobal/flash/display/ShaderInput.js +65 -0
  603. package/dist/playerglobal/flash/display/ShaderInput.js.map +1 -0
  604. package/dist/playerglobal/flash/display/ShaderJob.d.ts +4 -0
  605. package/dist/playerglobal/flash/display/ShaderJob.d.ts.map +1 -0
  606. package/dist/playerglobal/flash/display/ShaderJob.js +182 -0
  607. package/dist/playerglobal/flash/display/ShaderJob.js.map +1 -0
  608. package/dist/playerglobal/flash/display/ShaderParameter.d.ts +4 -0
  609. package/dist/playerglobal/flash/display/ShaderParameter.d.ts.map +1 -0
  610. package/dist/playerglobal/flash/display/ShaderParameter.js +24 -0
  611. package/dist/playerglobal/flash/display/ShaderParameter.js.map +1 -0
  612. package/dist/playerglobal/flash/display/Shape.d.ts +4 -0
  613. package/dist/playerglobal/flash/display/Shape.d.ts.map +1 -0
  614. package/dist/playerglobal/flash/display/Shape.js +14 -0
  615. package/dist/playerglobal/flash/display/Shape.js.map +1 -0
  616. package/dist/playerglobal/flash/display/SimpleButton.d.ts +4 -0
  617. package/dist/playerglobal/flash/display/SimpleButton.d.ts.map +1 -0
  618. package/dist/playerglobal/flash/display/SimpleButton.js +104 -0
  619. package/dist/playerglobal/flash/display/SimpleButton.js.map +1 -0
  620. package/dist/playerglobal/flash/display/Sprite.d.ts +4 -0
  621. package/dist/playerglobal/flash/display/Sprite.d.ts.map +1 -0
  622. package/dist/playerglobal/flash/display/Sprite.js +85 -0
  623. package/dist/playerglobal/flash/display/Sprite.js.map +1 -0
  624. package/dist/playerglobal/flash/display/Stage.d.ts +4 -0
  625. package/dist/playerglobal/flash/display/Stage.d.ts.map +1 -0
  626. package/dist/playerglobal/flash/display/Stage.js +232 -0
  627. package/dist/playerglobal/flash/display/Stage.js.map +1 -0
  628. package/dist/playerglobal/flash/display/Stage3D.d.ts +4 -0
  629. package/dist/playerglobal/flash/display/Stage3D.d.ts.map +1 -0
  630. package/dist/playerglobal/flash/display/Stage3D.js +55 -0
  631. package/dist/playerglobal/flash/display/Stage3D.js.map +1 -0
  632. package/dist/playerglobal/flash/display/shaders.d.ts +45 -0
  633. package/dist/playerglobal/flash/display/shaders.d.ts.map +1 -0
  634. package/dist/playerglobal/flash/display/shaders.js +229 -0
  635. package/dist/playerglobal/flash/display/shaders.js.map +1 -0
  636. package/dist/playerglobal/flash/events/Event.d.ts +4 -0
  637. package/dist/playerglobal/flash/events/Event.d.ts.map +1 -0
  638. package/dist/playerglobal/flash/events/Event.js +59 -0
  639. package/dist/playerglobal/flash/events/Event.js.map +1 -0
  640. package/dist/playerglobal/flash/events/EventDispatcher.d.ts +11 -0
  641. package/dist/playerglobal/flash/events/EventDispatcher.d.ts.map +1 -0
  642. package/dist/playerglobal/flash/events/EventDispatcher.js +104 -0
  643. package/dist/playerglobal/flash/events/EventDispatcher.js.map +1 -0
  644. package/dist/playerglobal/flash/events/GestureEvent.d.ts +4 -0
  645. package/dist/playerglobal/flash/events/GestureEvent.d.ts.map +1 -0
  646. package/dist/playerglobal/flash/events/GestureEvent.js +35 -0
  647. package/dist/playerglobal/flash/events/GestureEvent.js.map +1 -0
  648. package/dist/playerglobal/flash/events/HTTPStatusEvent.d.ts +3 -0
  649. package/dist/playerglobal/flash/events/HTTPStatusEvent.d.ts.map +1 -0
  650. package/dist/playerglobal/flash/events/HTTPStatusEvent.js +9 -0
  651. package/dist/playerglobal/flash/events/HTTPStatusEvent.js.map +1 -0
  652. package/dist/playerglobal/flash/events/KeyboardEvent.d.ts +4 -0
  653. package/dist/playerglobal/flash/events/KeyboardEvent.d.ts.map +1 -0
  654. package/dist/playerglobal/flash/events/KeyboardEvent.js +52 -0
  655. package/dist/playerglobal/flash/events/KeyboardEvent.js.map +1 -0
  656. package/dist/playerglobal/flash/events/MouseEvent.d.ts +11 -0
  657. package/dist/playerglobal/flash/events/MouseEvent.d.ts.map +1 -0
  658. package/dist/playerglobal/flash/events/MouseEvent.js +60 -0
  659. package/dist/playerglobal/flash/events/MouseEvent.js.map +1 -0
  660. package/dist/playerglobal/flash/events/PressAndTapGestureEvent.d.ts +4 -0
  661. package/dist/playerglobal/flash/events/PressAndTapGestureEvent.d.ts.map +1 -0
  662. package/dist/playerglobal/flash/events/PressAndTapGestureEvent.js +31 -0
  663. package/dist/playerglobal/flash/events/PressAndTapGestureEvent.js.map +1 -0
  664. package/dist/playerglobal/flash/events/TimerEvent.d.ts +4 -0
  665. package/dist/playerglobal/flash/events/TimerEvent.d.ts.map +1 -0
  666. package/dist/playerglobal/flash/events/TimerEvent.js +17 -0
  667. package/dist/playerglobal/flash/events/TimerEvent.js.map +1 -0
  668. package/dist/playerglobal/flash/events/TouchEvent.d.ts +4 -0
  669. package/dist/playerglobal/flash/events/TouchEvent.d.ts.map +1 -0
  670. package/dist/playerglobal/flash/events/TouchEvent.js +46 -0
  671. package/dist/playerglobal/flash/events/TouchEvent.js.map +1 -0
  672. package/dist/playerglobal/flash/external/ExternalInterface.d.ts +4 -0
  673. package/dist/playerglobal/flash/external/ExternalInterface.d.ts.map +1 -0
  674. package/dist/playerglobal/flash/external/ExternalInterface.js +74 -0
  675. package/dist/playerglobal/flash/external/ExternalInterface.js.map +1 -0
  676. package/dist/playerglobal/flash/filesystem/File.d.ts +22 -0
  677. package/dist/playerglobal/flash/filesystem/File.d.ts.map +1 -0
  678. package/dist/playerglobal/flash/filesystem/File.js +341 -0
  679. package/dist/playerglobal/flash/filesystem/File.js.map +1 -0
  680. package/dist/playerglobal/flash/filesystem/FileStream.d.ts +4 -0
  681. package/dist/playerglobal/flash/filesystem/FileStream.d.ts.map +1 -0
  682. package/dist/playerglobal/flash/filesystem/FileStream.js +454 -0
  683. package/dist/playerglobal/flash/filesystem/FileStream.js.map +1 -0
  684. package/dist/playerglobal/flash/filesystem/paths.d.ts +43 -0
  685. package/dist/playerglobal/flash/filesystem/paths.d.ts.map +1 -0
  686. package/dist/playerglobal/flash/filesystem/paths.js +157 -0
  687. package/dist/playerglobal/flash/filesystem/paths.js.map +1 -0
  688. package/dist/playerglobal/flash/filesystem/writes.d.ts +36 -0
  689. package/dist/playerglobal/flash/filesystem/writes.d.ts.map +1 -0
  690. package/dist/playerglobal/flash/filesystem/writes.js +144 -0
  691. package/dist/playerglobal/flash/filesystem/writes.js.map +1 -0
  692. package/dist/playerglobal/flash/filters/BevelFilter.d.ts +4 -0
  693. package/dist/playerglobal/flash/filters/BevelFilter.d.ts.map +1 -0
  694. package/dist/playerglobal/flash/filters/BevelFilter.js +5 -0
  695. package/dist/playerglobal/flash/filters/BevelFilter.js.map +1 -0
  696. package/dist/playerglobal/flash/filters/BitmapFilter.d.ts +33 -0
  697. package/dist/playerglobal/flash/filters/BitmapFilter.d.ts.map +1 -0
  698. package/dist/playerglobal/flash/filters/BitmapFilter.js +206 -0
  699. package/dist/playerglobal/flash/filters/BitmapFilter.js.map +1 -0
  700. package/dist/playerglobal/flash/filters/BlurFilter.d.ts +4 -0
  701. package/dist/playerglobal/flash/filters/BlurFilter.d.ts.map +1 -0
  702. package/dist/playerglobal/flash/filters/BlurFilter.js +5 -0
  703. package/dist/playerglobal/flash/filters/BlurFilter.js.map +1 -0
  704. package/dist/playerglobal/flash/filters/ColorMatrixFilter.d.ts +4 -0
  705. package/dist/playerglobal/flash/filters/ColorMatrixFilter.d.ts.map +1 -0
  706. package/dist/playerglobal/flash/filters/ColorMatrixFilter.js +12 -0
  707. package/dist/playerglobal/flash/filters/ColorMatrixFilter.js.map +1 -0
  708. package/dist/playerglobal/flash/filters/ConvolutionFilter.d.ts +4 -0
  709. package/dist/playerglobal/flash/filters/ConvolutionFilter.d.ts.map +1 -0
  710. package/dist/playerglobal/flash/filters/ConvolutionFilter.js +27 -0
  711. package/dist/playerglobal/flash/filters/ConvolutionFilter.js.map +1 -0
  712. package/dist/playerglobal/flash/filters/DisplacementMapFilter.d.ts +12 -0
  713. package/dist/playerglobal/flash/filters/DisplacementMapFilter.d.ts.map +1 -0
  714. package/dist/playerglobal/flash/filters/DisplacementMapFilter.js +52 -0
  715. package/dist/playerglobal/flash/filters/DisplacementMapFilter.js.map +1 -0
  716. package/dist/playerglobal/flash/filters/DropShadowFilter.d.ts +4 -0
  717. package/dist/playerglobal/flash/filters/DropShadowFilter.d.ts.map +1 -0
  718. package/dist/playerglobal/flash/filters/DropShadowFilter.js +5 -0
  719. package/dist/playerglobal/flash/filters/DropShadowFilter.js.map +1 -0
  720. package/dist/playerglobal/flash/filters/GlowFilter.d.ts +4 -0
  721. package/dist/playerglobal/flash/filters/GlowFilter.d.ts.map +1 -0
  722. package/dist/playerglobal/flash/filters/GlowFilter.js +5 -0
  723. package/dist/playerglobal/flash/filters/GlowFilter.js.map +1 -0
  724. package/dist/playerglobal/flash/filters/GradientBevelFilter.d.ts +4 -0
  725. package/dist/playerglobal/flash/filters/GradientBevelFilter.d.ts.map +1 -0
  726. package/dist/playerglobal/flash/filters/GradientBevelFilter.js +5 -0
  727. package/dist/playerglobal/flash/filters/GradientBevelFilter.js.map +1 -0
  728. package/dist/playerglobal/flash/filters/GradientGlowFilter.d.ts +4 -0
  729. package/dist/playerglobal/flash/filters/GradientGlowFilter.d.ts.map +1 -0
  730. package/dist/playerglobal/flash/filters/GradientGlowFilter.js +5 -0
  731. package/dist/playerglobal/flash/filters/GradientGlowFilter.js.map +1 -0
  732. package/dist/playerglobal/flash/filters/ShaderFilter.d.ts +4 -0
  733. package/dist/playerglobal/flash/filters/ShaderFilter.d.ts.map +1 -0
  734. package/dist/playerglobal/flash/filters/ShaderFilter.js +54 -0
  735. package/dist/playerglobal/flash/filters/ShaderFilter.js.map +1 -0
  736. package/dist/playerglobal/flash/filters/filters.d.ts +26 -0
  737. package/dist/playerglobal/flash/filters/filters.d.ts.map +1 -0
  738. package/dist/playerglobal/flash/filters/filters.js +287 -0
  739. package/dist/playerglobal/flash/filters/filters.js.map +1 -0
  740. package/dist/playerglobal/flash/geom/Matrix3D.d.ts +4 -0
  741. package/dist/playerglobal/flash/geom/Matrix3D.d.ts.map +1 -0
  742. package/dist/playerglobal/flash/geom/Matrix3D.js +362 -0
  743. package/dist/playerglobal/flash/geom/Matrix3D.js.map +1 -0
  744. package/dist/playerglobal/flash/geom/PerspectiveProjection.d.ts +13 -0
  745. package/dist/playerglobal/flash/geom/PerspectiveProjection.d.ts.map +1 -0
  746. package/dist/playerglobal/flash/geom/PerspectiveProjection.js +123 -0
  747. package/dist/playerglobal/flash/geom/PerspectiveProjection.js.map +1 -0
  748. package/dist/playerglobal/flash/geom/Transform.d.ts +13 -0
  749. package/dist/playerglobal/flash/geom/Transform.d.ts.map +1 -0
  750. package/dist/playerglobal/flash/geom/Transform.js +246 -0
  751. package/dist/playerglobal/flash/geom/Transform.js.map +1 -0
  752. package/dist/playerglobal/flash/geom/Utils3D.d.ts +4 -0
  753. package/dist/playerglobal/flash/geom/Utils3D.d.ts.map +1 -0
  754. package/dist/playerglobal/flash/geom/Utils3D.js +86 -0
  755. package/dist/playerglobal/flash/geom/Utils3D.js.map +1 -0
  756. package/dist/playerglobal/flash/globalization/Collator.d.ts +4 -0
  757. package/dist/playerglobal/flash/globalization/Collator.d.ts.map +1 -0
  758. package/dist/playerglobal/flash/globalization/Collator.js +150 -0
  759. package/dist/playerglobal/flash/globalization/Collator.js.map +1 -0
  760. package/dist/playerglobal/flash/globalization/CurrencyFormatter.d.ts +4 -0
  761. package/dist/playerglobal/flash/globalization/CurrencyFormatter.d.ts.map +1 -0
  762. package/dist/playerglobal/flash/globalization/CurrencyFormatter.js +273 -0
  763. package/dist/playerglobal/flash/globalization/CurrencyFormatter.js.map +1 -0
  764. package/dist/playerglobal/flash/globalization/CurrencyParseResult.d.ts +4 -0
  765. package/dist/playerglobal/flash/globalization/CurrencyParseResult.d.ts.map +1 -0
  766. package/dist/playerglobal/flash/globalization/CurrencyParseResult.js +22 -0
  767. package/dist/playerglobal/flash/globalization/CurrencyParseResult.js.map +1 -0
  768. package/dist/playerglobal/flash/globalization/DateTimeFormatter.d.ts +4 -0
  769. package/dist/playerglobal/flash/globalization/DateTimeFormatter.d.ts.map +1 -0
  770. package/dist/playerglobal/flash/globalization/DateTimeFormatter.js +464 -0
  771. package/dist/playerglobal/flash/globalization/DateTimeFormatter.js.map +1 -0
  772. package/dist/playerglobal/flash/globalization/LocaleID.d.ts +4 -0
  773. package/dist/playerglobal/flash/globalization/LocaleID.d.ts.map +1 -0
  774. package/dist/playerglobal/flash/globalization/LocaleID.js +145 -0
  775. package/dist/playerglobal/flash/globalization/LocaleID.js.map +1 -0
  776. package/dist/playerglobal/flash/globalization/NumberFormatter.d.ts +67 -0
  777. package/dist/playerglobal/flash/globalization/NumberFormatter.d.ts.map +1 -0
  778. package/dist/playerglobal/flash/globalization/NumberFormatter.js +445 -0
  779. package/dist/playerglobal/flash/globalization/NumberFormatter.js.map +1 -0
  780. package/dist/playerglobal/flash/globalization/NumberParseResult.d.ts +3 -0
  781. package/dist/playerglobal/flash/globalization/NumberParseResult.d.ts.map +1 -0
  782. package/dist/playerglobal/flash/globalization/NumberParseResult.js +23 -0
  783. package/dist/playerglobal/flash/globalization/NumberParseResult.js.map +1 -0
  784. package/dist/playerglobal/flash/globalization/StringTools.d.ts +4 -0
  785. package/dist/playerglobal/flash/globalization/StringTools.d.ts.map +1 -0
  786. package/dist/playerglobal/flash/globalization/StringTools.js +60 -0
  787. package/dist/playerglobal/flash/globalization/StringTools.js.map +1 -0
  788. package/dist/playerglobal/flash/globalization/locale.d.ts +62 -0
  789. package/dist/playerglobal/flash/globalization/locale.d.ts.map +1 -0
  790. package/dist/playerglobal/flash/globalization/locale.js +191 -0
  791. package/dist/playerglobal/flash/globalization/locale.js.map +1 -0
  792. package/dist/playerglobal/flash/media/Camera.d.ts +4 -0
  793. package/dist/playerglobal/flash/media/Camera.d.ts.map +1 -0
  794. package/dist/playerglobal/flash/media/Camera.js +90 -0
  795. package/dist/playerglobal/flash/media/Camera.js.map +1 -0
  796. package/dist/playerglobal/flash/media/Microphone.d.ts +4 -0
  797. package/dist/playerglobal/flash/media/Microphone.d.ts.map +1 -0
  798. package/dist/playerglobal/flash/media/Microphone.js +127 -0
  799. package/dist/playerglobal/flash/media/Microphone.js.map +1 -0
  800. package/dist/playerglobal/flash/media/Sound.d.ts +16 -0
  801. package/dist/playerglobal/flash/media/Sound.d.ts.map +1 -0
  802. package/dist/playerglobal/flash/media/Sound.js +544 -0
  803. package/dist/playerglobal/flash/media/Sound.js.map +1 -0
  804. package/dist/playerglobal/flash/media/SoundMixer.d.ts +4 -0
  805. package/dist/playerglobal/flash/media/SoundMixer.d.ts.map +1 -0
  806. package/dist/playerglobal/flash/media/SoundMixer.js +75 -0
  807. package/dist/playerglobal/flash/media/SoundMixer.js.map +1 -0
  808. package/dist/playerglobal/flash/media/SoundTransform.d.ts +4 -0
  809. package/dist/playerglobal/flash/media/SoundTransform.d.ts.map +1 -0
  810. package/dist/playerglobal/flash/media/SoundTransform.js +41 -0
  811. package/dist/playerglobal/flash/media/SoundTransform.js.map +1 -0
  812. package/dist/playerglobal/flash/media/Video.d.ts +4 -0
  813. package/dist/playerglobal/flash/media/Video.d.ts.map +1 -0
  814. package/dist/playerglobal/flash/media/Video.js +44 -0
  815. package/dist/playerglobal/flash/media/Video.js.map +1 -0
  816. package/dist/playerglobal/flash/net/FileFilter.d.ts +4 -0
  817. package/dist/playerglobal/flash/net/FileFilter.d.ts.map +1 -0
  818. package/dist/playerglobal/flash/net/FileFilter.js +28 -0
  819. package/dist/playerglobal/flash/net/FileFilter.js.map +1 -0
  820. package/dist/playerglobal/flash/net/FileReference.d.ts +4 -0
  821. package/dist/playerglobal/flash/net/FileReference.d.ts.map +1 -0
  822. package/dist/playerglobal/flash/net/FileReference.js +198 -0
  823. package/dist/playerglobal/flash/net/FileReference.js.map +1 -0
  824. package/dist/playerglobal/flash/net/LocalConnection.d.ts +5 -0
  825. package/dist/playerglobal/flash/net/LocalConnection.d.ts.map +1 -0
  826. package/dist/playerglobal/flash/net/LocalConnection.js +168 -0
  827. package/dist/playerglobal/flash/net/LocalConnection.js.map +1 -0
  828. package/dist/playerglobal/flash/net/NetConnection.d.ts +4 -0
  829. package/dist/playerglobal/flash/net/NetConnection.d.ts.map +1 -0
  830. package/dist/playerglobal/flash/net/NetConnection.js +156 -0
  831. package/dist/playerglobal/flash/net/NetConnection.js.map +1 -0
  832. package/dist/playerglobal/flash/net/SharedObject.d.ts +4 -0
  833. package/dist/playerglobal/flash/net/SharedObject.d.ts.map +1 -0
  834. package/dist/playerglobal/flash/net/SharedObject.js +300 -0
  835. package/dist/playerglobal/flash/net/SharedObject.js.map +1 -0
  836. package/dist/playerglobal/flash/net/Socket.d.ts +4 -0
  837. package/dist/playerglobal/flash/net/Socket.d.ts.map +1 -0
  838. package/dist/playerglobal/flash/net/Socket.js +283 -0
  839. package/dist/playerglobal/flash/net/Socket.js.map +1 -0
  840. package/dist/playerglobal/flash/net/URLRequest.d.ts +4 -0
  841. package/dist/playerglobal/flash/net/URLRequest.d.ts.map +1 -0
  842. package/dist/playerglobal/flash/net/URLRequest.js +94 -0
  843. package/dist/playerglobal/flash/net/URLRequest.js.map +1 -0
  844. package/dist/playerglobal/flash/net/URLStream.d.ts +4 -0
  845. package/dist/playerglobal/flash/net/URLStream.d.ts.map +1 -0
  846. package/dist/playerglobal/flash/net/URLStream.js +147 -0
  847. package/dist/playerglobal/flash/net/URLStream.js.map +1 -0
  848. package/dist/playerglobal/flash/net/XMLSocket.d.ts +4 -0
  849. package/dist/playerglobal/flash/net/XMLSocket.d.ts.map +1 -0
  850. package/dist/playerglobal/flash/net/XMLSocket.js +15 -0
  851. package/dist/playerglobal/flash/net/XMLSocket.js.map +1 -0
  852. package/dist/playerglobal/flash/net/local-modern.d.ts +4 -0
  853. package/dist/playerglobal/flash/net/local-modern.d.ts.map +1 -0
  854. package/dist/playerglobal/flash/net/local-modern.js +143 -0
  855. package/dist/playerglobal/flash/net/local-modern.js.map +1 -0
  856. package/dist/playerglobal/flash/net/local-values.d.ts +6 -0
  857. package/dist/playerglobal/flash/net/local-values.d.ts.map +1 -0
  858. package/dist/playerglobal/flash/net/local-values.js +218 -0
  859. package/dist/playerglobal/flash/net/local-values.js.map +1 -0
  860. package/dist/playerglobal/flash/net/navigateToURL.d.ts +4 -0
  861. package/dist/playerglobal/flash/net/navigateToURL.d.ts.map +1 -0
  862. package/dist/playerglobal/flash/net/navigateToURL.js +30 -0
  863. package/dist/playerglobal/flash/net/navigateToURL.js.map +1 -0
  864. package/dist/playerglobal/flash/profiler/Telemetry.d.ts +3 -0
  865. package/dist/playerglobal/flash/profiler/Telemetry.d.ts.map +1 -0
  866. package/dist/playerglobal/flash/profiler/Telemetry.js +26 -0
  867. package/dist/playerglobal/flash/profiler/Telemetry.js.map +1 -0
  868. package/dist/playerglobal/flash/sensors/Accelerometer.d.ts +3 -0
  869. package/dist/playerglobal/flash/sensors/Accelerometer.d.ts.map +1 -0
  870. package/dist/playerglobal/flash/sensors/Accelerometer.js +13 -0
  871. package/dist/playerglobal/flash/sensors/Accelerometer.js.map +1 -0
  872. package/dist/playerglobal/flash/system/ApplicationDomain.d.ts +4 -0
  873. package/dist/playerglobal/flash/system/ApplicationDomain.d.ts.map +1 -0
  874. package/dist/playerglobal/flash/system/ApplicationDomain.js +70 -0
  875. package/dist/playerglobal/flash/system/ApplicationDomain.js.map +1 -0
  876. package/dist/playerglobal/flash/system/Capabilities.d.ts +4 -0
  877. package/dist/playerglobal/flash/system/Capabilities.d.ts.map +1 -0
  878. package/dist/playerglobal/flash/system/Capabilities.js +164 -0
  879. package/dist/playerglobal/flash/system/Capabilities.js.map +1 -0
  880. package/dist/playerglobal/flash/system/FSCommand.d.ts +4 -0
  881. package/dist/playerglobal/flash/system/FSCommand.d.ts.map +1 -0
  882. package/dist/playerglobal/flash/system/FSCommand.js +18 -0
  883. package/dist/playerglobal/flash/system/FSCommand.js.map +1 -0
  884. package/dist/playerglobal/flash/system/FSCommandHost.d.ts +4 -0
  885. package/dist/playerglobal/flash/system/FSCommandHost.d.ts.map +1 -0
  886. package/dist/playerglobal/flash/system/FSCommandHost.js +18 -0
  887. package/dist/playerglobal/flash/system/FSCommandHost.js.map +1 -0
  888. package/dist/playerglobal/flash/system/Security.d.ts +4 -0
  889. package/dist/playerglobal/flash/system/Security.d.ts.map +1 -0
  890. package/dist/playerglobal/flash/system/Security.js +47 -0
  891. package/dist/playerglobal/flash/system/Security.js.map +1 -0
  892. package/dist/playerglobal/flash/system/SecurityDomain.d.ts +4 -0
  893. package/dist/playerglobal/flash/system/SecurityDomain.d.ts.map +1 -0
  894. package/dist/playerglobal/flash/system/SecurityDomain.js +22 -0
  895. package/dist/playerglobal/flash/system/SecurityDomain.js.map +1 -0
  896. package/dist/playerglobal/flash/system/System.d.ts +4 -0
  897. package/dist/playerglobal/flash/system/System.d.ts.map +1 -0
  898. package/dist/playerglobal/flash/system/System.js +74 -0
  899. package/dist/playerglobal/flash/system/System.js.map +1 -0
  900. package/dist/playerglobal/flash/system/Worker.d.ts +6 -0
  901. package/dist/playerglobal/flash/system/Worker.d.ts.map +1 -0
  902. package/dist/playerglobal/flash/system/Worker.js +113 -0
  903. package/dist/playerglobal/flash/system/Worker.js.map +1 -0
  904. package/dist/playerglobal/flash/text/Font.d.ts +8 -0
  905. package/dist/playerglobal/flash/text/Font.d.ts.map +1 -0
  906. package/dist/playerglobal/flash/text/Font.js +96 -0
  907. package/dist/playerglobal/flash/text/Font.js.map +1 -0
  908. package/dist/playerglobal/flash/text/StaticText.d.ts +3 -0
  909. package/dist/playerglobal/flash/text/StaticText.d.ts.map +1 -0
  910. package/dist/playerglobal/flash/text/StaticText.js +17 -0
  911. package/dist/playerglobal/flash/text/StaticText.js.map +1 -0
  912. package/dist/playerglobal/flash/text/StyleSheet.d.ts +9 -0
  913. package/dist/playerglobal/flash/text/StyleSheet.d.ts.map +1 -0
  914. package/dist/playerglobal/flash/text/StyleSheet.js +66 -0
  915. package/dist/playerglobal/flash/text/StyleSheet.js.map +1 -0
  916. package/dist/playerglobal/flash/text/TextField.d.ts +4 -0
  917. package/dist/playerglobal/flash/text/TextField.d.ts.map +1 -0
  918. package/dist/playerglobal/flash/text/TextField.js +708 -0
  919. package/dist/playerglobal/flash/text/TextField.js.map +1 -0
  920. package/dist/playerglobal/flash/text/TextRenderer.d.ts +4 -0
  921. package/dist/playerglobal/flash/text/TextRenderer.d.ts.map +1 -0
  922. package/dist/playerglobal/flash/text/TextRenderer.js +78 -0
  923. package/dist/playerglobal/flash/text/TextRenderer.js.map +1 -0
  924. package/dist/playerglobal/flash/text/engine/FontDescription.d.ts +4 -0
  925. package/dist/playerglobal/flash/text/engine/FontDescription.d.ts.map +1 -0
  926. package/dist/playerglobal/flash/text/engine/FontDescription.js +142 -0
  927. package/dist/playerglobal/flash/text/engine/FontDescription.js.map +1 -0
  928. package/dist/playerglobal/flash/text/engine/TabStop.d.ts +4 -0
  929. package/dist/playerglobal/flash/text/engine/TabStop.d.ts.map +1 -0
  930. package/dist/playerglobal/flash/text/engine/TabStop.js +47 -0
  931. package/dist/playerglobal/flash/text/engine/TabStop.js.map +1 -0
  932. package/dist/playerglobal/flash/trace/Trace.d.ts +3 -0
  933. package/dist/playerglobal/flash/trace/Trace.d.ts.map +1 -0
  934. package/dist/playerglobal/flash/trace/Trace.js +18 -0
  935. package/dist/playerglobal/flash/trace/Trace.js.map +1 -0
  936. package/dist/playerglobal/flash/ui/ContextMenu.d.ts +4 -0
  937. package/dist/playerglobal/flash/ui/ContextMenu.d.ts.map +1 -0
  938. package/dist/playerglobal/flash/ui/ContextMenu.js +18 -0
  939. package/dist/playerglobal/flash/ui/ContextMenu.js.map +1 -0
  940. package/dist/playerglobal/flash/ui/GameInput.d.ts +4 -0
  941. package/dist/playerglobal/flash/ui/GameInput.d.ts.map +1 -0
  942. package/dist/playerglobal/flash/ui/GameInput.js +20 -0
  943. package/dist/playerglobal/flash/ui/GameInput.js.map +1 -0
  944. package/dist/playerglobal/flash/ui/Keyboard.d.ts +3 -0
  945. package/dist/playerglobal/flash/ui/Keyboard.d.ts.map +1 -0
  946. package/dist/playerglobal/flash/ui/Keyboard.js +28 -0
  947. package/dist/playerglobal/flash/ui/Keyboard.js.map +1 -0
  948. package/dist/playerglobal/flash/ui/Mouse.d.ts +4 -0
  949. package/dist/playerglobal/flash/ui/Mouse.d.ts.map +1 -0
  950. package/dist/playerglobal/flash/ui/Mouse.js +128 -0
  951. package/dist/playerglobal/flash/ui/Mouse.js.map +1 -0
  952. package/dist/playerglobal/flash/ui/Multitouch.d.ts +4 -0
  953. package/dist/playerglobal/flash/ui/Multitouch.d.ts.map +1 -0
  954. package/dist/playerglobal/flash/ui/Multitouch.js +47 -0
  955. package/dist/playerglobal/flash/ui/Multitouch.js.map +1 -0
  956. package/dist/playerglobal/flash/utils/ByteArray.d.ts +5 -0
  957. package/dist/playerglobal/flash/utils/ByteArray.d.ts.map +1 -0
  958. package/dist/playerglobal/flash/utils/ByteArray.js +156 -0
  959. package/dist/playerglobal/flash/utils/ByteArray.js.map +1 -0
  960. package/dist/playerglobal/flash/utils/Timer.d.ts +4 -0
  961. package/dist/playerglobal/flash/utils/Timer.d.ts.map +1 -0
  962. package/dist/playerglobal/flash/utils/Timer.js +26 -0
  963. package/dist/playerglobal/flash/utils/Timer.js.map +1 -0
  964. package/dist/playerglobal/flash/xml/XMLDocument.d.ts +4 -0
  965. package/dist/playerglobal/flash/xml/XMLDocument.d.ts.map +1 -0
  966. package/dist/playerglobal/flash/xml/XMLDocument.js +75 -0
  967. package/dist/playerglobal/flash/xml/XMLDocument.js.map +1 -0
  968. package/dist/playerglobal/index.d.ts +6 -0
  969. package/dist/playerglobal/index.d.ts.map +1 -0
  970. package/dist/playerglobal/index.js +225 -0
  971. package/dist/playerglobal/index.js.map +1 -0
  972. package/dist/playerglobal/libraries.d.ts +5 -0
  973. package/dist/playerglobal/libraries.d.ts.map +1 -0
  974. package/dist/playerglobal/libraries.js +11 -0
  975. package/dist/playerglobal/libraries.js.map +1 -0
  976. package/dist/playerglobal/natives.d.ts +10 -0
  977. package/dist/playerglobal/natives.d.ts.map +1 -0
  978. package/dist/playerglobal/natives.js +53 -0
  979. package/dist/playerglobal/natives.js.map +1 -0
  980. package/dist/playerglobal/playerglobal-library.d.ts +3 -0
  981. package/dist/playerglobal/playerglobal-library.d.ts.map +1 -0
  982. package/dist/playerglobal/playerglobal-library.js +23 -0
  983. package/dist/playerglobal/playerglobal-library.js.map +1 -0
  984. package/dist/playerglobal/toplevel.d.ts +14 -0
  985. package/dist/playerglobal/toplevel.d.ts.map +1 -0
  986. package/dist/playerglobal/toplevel.js +123 -0
  987. package/dist/playerglobal/toplevel.js.map +1 -0
  988. package/dist/png.d.ts +4 -0
  989. package/dist/png.d.ts.map +1 -0
  990. package/dist/png.js +140 -0
  991. package/dist/png.js.map +1 -0
  992. package/dist/render/art.d.ts +148 -0
  993. package/dist/render/art.d.ts.map +1 -0
  994. package/dist/render/art.js +575 -0
  995. package/dist/render/art.js.map +1 -0
  996. package/dist/render/batchers.d.ts +23 -0
  997. package/dist/render/batchers.d.ts.map +1 -0
  998. package/dist/render/batchers.js +52 -0
  999. package/dist/render/batchers.js.map +1 -0
  1000. package/dist/render/bitmaps.d.ts +117 -0
  1001. package/dist/render/bitmaps.d.ts.map +1 -0
  1002. package/dist/render/bitmaps.js +422 -0
  1003. package/dist/render/bitmaps.js.map +1 -0
  1004. package/dist/render/blend.d.ts +37 -0
  1005. package/dist/render/blend.d.ts.map +1 -0
  1006. package/dist/render/blend.js +195 -0
  1007. package/dist/render/blend.js.map +1 -0
  1008. package/dist/render/color.d.ts +111 -0
  1009. package/dist/render/color.d.ts.map +1 -0
  1010. package/dist/render/color.js +533 -0
  1011. package/dist/render/color.js.map +1 -0
  1012. package/dist/render/compositing.d.ts +77 -0
  1013. package/dist/render/compositing.d.ts.map +1 -0
  1014. package/dist/render/compositing.js +188 -0
  1015. package/dist/render/compositing.js.map +1 -0
  1016. package/dist/render/filters.d.ts +98 -0
  1017. package/dist/render/filters.d.ts.map +1 -0
  1018. package/dist/render/filters.js +1326 -0
  1019. package/dist/render/filters.js.map +1 -0
  1020. package/dist/render/hooks.d.ts +4 -0
  1021. package/dist/render/hooks.d.ts.map +1 -0
  1022. package/dist/render/hooks.js +48 -0
  1023. package/dist/render/hooks.js.map +1 -0
  1024. package/dist/render/node.d.ts +139 -0
  1025. package/dist/render/node.d.ts.map +1 -0
  1026. package/dist/render/node.js +59 -0
  1027. package/dist/render/node.js.map +1 -0
  1028. package/dist/render/patches.d.ts +54 -0
  1029. package/dist/render/patches.d.ts.map +1 -0
  1030. package/dist/render/patches.js +154 -0
  1031. package/dist/render/patches.js.map +1 -0
  1032. package/dist/render/planes.d.ts +74 -0
  1033. package/dist/render/planes.d.ts.map +1 -0
  1034. package/dist/render/planes.js +267 -0
  1035. package/dist/render/planes.js.map +1 -0
  1036. package/dist/render/pointer.d.ts +5 -0
  1037. package/dist/render/pointer.d.ts.map +1 -0
  1038. package/dist/render/pointer.js +279 -0
  1039. package/dist/render/pointer.js.map +1 -0
  1040. package/dist/render/pools.d.ts +122 -0
  1041. package/dist/render/pools.d.ts.map +1 -0
  1042. package/dist/render/pools.js +238 -0
  1043. package/dist/render/pools.js.map +1 -0
  1044. package/dist/render/resolve.d.ts +4 -0
  1045. package/dist/render/resolve.d.ts.map +1 -0
  1046. package/dist/render/resolve.js +76 -0
  1047. package/dist/render/resolve.js.map +1 -0
  1048. package/dist/render/saffron.d.ts +135 -0
  1049. package/dist/render/saffron.d.ts.map +1 -0
  1050. package/dist/render/saffron.js +725 -0
  1051. package/dist/render/saffron.js.map +1 -0
  1052. package/dist/render/settle.d.ts +60 -0
  1053. package/dist/render/settle.d.ts.map +1 -0
  1054. package/dist/render/settle.js +128 -0
  1055. package/dist/render/settle.js.map +1 -0
  1056. package/dist/render/shared.d.ts +25 -0
  1057. package/dist/render/shared.d.ts.map +1 -0
  1058. package/dist/render/shared.js +33 -0
  1059. package/dist/render/shared.js.map +1 -0
  1060. package/dist/render/snapshot.d.ts +21 -0
  1061. package/dist/render/snapshot.d.ts.map +1 -0
  1062. package/dist/render/snapshot.js +91 -0
  1063. package/dist/render/snapshot.js.map +1 -0
  1064. package/dist/render/spares.d.ts +56 -0
  1065. package/dist/render/spares.d.ts.map +1 -0
  1066. package/dist/render/spares.js +160 -0
  1067. package/dist/render/spares.js.map +1 -0
  1068. package/dist/render/strokes.d.ts +107 -0
  1069. package/dist/render/strokes.d.ts.map +1 -0
  1070. package/dist/render/strokes.js +448 -0
  1071. package/dist/render/strokes.js.map +1 -0
  1072. package/dist/render/table.d.ts +213 -0
  1073. package/dist/render/table.d.ts.map +1 -0
  1074. package/dist/render/table.js +795 -0
  1075. package/dist/render/table.js.map +1 -0
  1076. package/dist/render/tessellate.d.ts +89 -0
  1077. package/dist/render/tessellate.d.ts.map +1 -0
  1078. package/dist/render/tessellate.js +386 -0
  1079. package/dist/render/tessellate.js.map +1 -0
  1080. package/dist/render/text.d.ts +40 -0
  1081. package/dist/render/text.d.ts.map +1 -0
  1082. package/dist/render/text.js +309 -0
  1083. package/dist/render/text.js.map +1 -0
  1084. package/dist/render/three.d.ts +83 -0
  1085. package/dist/render/three.d.ts.map +1 -0
  1086. package/dist/render/three.js +511 -0
  1087. package/dist/render/three.js.map +1 -0
  1088. package/dist/render/triangles.d.ts +28 -0
  1089. package/dist/render/triangles.d.ts.map +1 -0
  1090. package/dist/render/triangles.js +189 -0
  1091. package/dist/render/triangles.js.map +1 -0
  1092. package/dist/render/view.d.ts +238 -0
  1093. package/dist/render/view.d.ts.map +1 -0
  1094. package/dist/render/view.js +1173 -0
  1095. package/dist/render/view.js.map +1 -0
  1096. package/dist/render/worker/bitmaps.d.ts +43 -0
  1097. package/dist/render/worker/bitmaps.d.ts.map +1 -0
  1098. package/dist/render/worker/bitmaps.js +151 -0
  1099. package/dist/render/worker/bitmaps.js.map +1 -0
  1100. package/dist/render/worker/drawing.d.ts +21 -0
  1101. package/dist/render/worker/drawing.d.ts.map +1 -0
  1102. package/dist/render/worker/drawing.js +356 -0
  1103. package/dist/render/worker/drawing.js.map +1 -0
  1104. package/dist/render/worker/filters.d.ts +7 -0
  1105. package/dist/render/worker/filters.d.ts.map +1 -0
  1106. package/dist/render/worker/filters.js +125 -0
  1107. package/dist/render/worker/filters.js.map +1 -0
  1108. package/dist/render/worker/frames.d.ts +32 -0
  1109. package/dist/render/worker/frames.d.ts.map +1 -0
  1110. package/dist/render/worker/frames.js +124 -0
  1111. package/dist/render/worker/frames.js.map +1 -0
  1112. package/dist/render/worker/host.d.ts +60 -0
  1113. package/dist/render/worker/host.d.ts.map +1 -0
  1114. package/dist/render/worker/host.js +297 -0
  1115. package/dist/render/worker/host.js.map +1 -0
  1116. package/dist/render/worker/libraries.d.ts +36 -0
  1117. package/dist/render/worker/libraries.d.ts.map +1 -0
  1118. package/dist/render/worker/libraries.js +153 -0
  1119. package/dist/render/worker/libraries.js.map +1 -0
  1120. package/dist/render/worker/presentation.d.ts +18 -0
  1121. package/dist/render/worker/presentation.d.ts.map +1 -0
  1122. package/dist/render/worker/presentation.js +47 -0
  1123. package/dist/render/worker/presentation.js.map +1 -0
  1124. package/dist/render/worker/renderer.d.ts +4 -0
  1125. package/dist/render/worker/renderer.d.ts.map +1 -0
  1126. package/dist/render/worker/renderer.js +21 -0
  1127. package/dist/render/worker/renderer.js.map +1 -0
  1128. package/dist/render/worker/scene.d.ts +32 -0
  1129. package/dist/render/worker/scene.d.ts.map +1 -0
  1130. package/dist/render/worker/scene.js +611 -0
  1131. package/dist/render/worker/scene.js.map +1 -0
  1132. package/dist/render/worker/text.d.ts +47 -0
  1133. package/dist/render/worker/text.d.ts.map +1 -0
  1134. package/dist/render/worker/text.js +261 -0
  1135. package/dist/render/worker/text.js.map +1 -0
  1136. package/dist/render/worker/thread.d.ts +23 -0
  1137. package/dist/render/worker/thread.d.ts.map +1 -0
  1138. package/dist/render/worker/thread.js +107 -0
  1139. package/dist/render/worker/thread.js.map +1 -0
  1140. package/dist/render/worker/values.d.ts +18 -0
  1141. package/dist/render/worker/values.d.ts.map +1 -0
  1142. package/dist/render/worker/values.js +64 -0
  1143. package/dist/render/worker/values.js.map +1 -0
  1144. package/dist/scene/advanced.d.ts +28 -0
  1145. package/dist/scene/advanced.d.ts.map +1 -0
  1146. package/dist/scene/advanced.js +182 -0
  1147. package/dist/scene/advanced.js.map +1 -0
  1148. package/dist/scene/context-menu.d.ts +16 -0
  1149. package/dist/scene/context-menu.d.ts.map +1 -0
  1150. package/dist/scene/context-menu.js +230 -0
  1151. package/dist/scene/context-menu.js.map +1 -0
  1152. package/dist/scene/fills.d.ts +45 -0
  1153. package/dist/scene/fills.d.ts.map +1 -0
  1154. package/dist/scene/fills.js +39 -0
  1155. package/dist/scene/fills.js.map +1 -0
  1156. package/dist/scene/filter-layers.d.ts +99 -0
  1157. package/dist/scene/filter-layers.d.ts.map +1 -0
  1158. package/dist/scene/filter-layers.js +352 -0
  1159. package/dist/scene/filter-layers.js.map +1 -0
  1160. package/dist/scene/filters.d.ts +47 -0
  1161. package/dist/scene/filters.d.ts.map +1 -0
  1162. package/dist/scene/filters.js +314 -0
  1163. package/dist/scene/filters.js.map +1 -0
  1164. package/dist/scene/hidden.d.ts +8 -0
  1165. package/dist/scene/hidden.d.ts.map +1 -0
  1166. package/dist/scene/hidden.js +33 -0
  1167. package/dist/scene/hidden.js.map +1 -0
  1168. package/dist/scene/lines.d.ts +87 -0
  1169. package/dist/scene/lines.d.ts.map +1 -0
  1170. package/dist/scene/lines.js +242 -0
  1171. package/dist/scene/lines.js.map +1 -0
  1172. package/dist/scene/masks.d.ts +32 -0
  1173. package/dist/scene/masks.d.ts.map +1 -0
  1174. package/dist/scene/masks.js +136 -0
  1175. package/dist/scene/masks.js.map +1 -0
  1176. package/dist/scene/paints.d.ts +86 -0
  1177. package/dist/scene/paints.d.ts.map +1 -0
  1178. package/dist/scene/paints.js +282 -0
  1179. package/dist/scene/paints.js.map +1 -0
  1180. package/dist/scene/parts.d.ts +57 -0
  1181. package/dist/scene/parts.d.ts.map +1 -0
  1182. package/dist/scene/parts.js +156 -0
  1183. package/dist/scene/parts.js.map +1 -0
  1184. package/dist/scene/pixel-bender-glsl.d.ts +32 -0
  1185. package/dist/scene/pixel-bender-glsl.d.ts.map +1 -0
  1186. package/dist/scene/pixel-bender-glsl.js +618 -0
  1187. package/dist/scene/pixel-bender-glsl.js.map +1 -0
  1188. package/dist/scene/planes.d.ts +89 -0
  1189. package/dist/scene/planes.d.ts.map +1 -0
  1190. package/dist/scene/planes.js +177 -0
  1191. package/dist/scene/planes.js.map +1 -0
  1192. package/dist/scene/pointer.d.ts +18 -0
  1193. package/dist/scene/pointer.d.ts.map +1 -0
  1194. package/dist/scene/pointer.js +245 -0
  1195. package/dist/scene/pointer.js.map +1 -0
  1196. package/dist/scene/shapes.d.ts +56 -0
  1197. package/dist/scene/shapes.d.ts.map +1 -0
  1198. package/dist/scene/shapes.js +300 -0
  1199. package/dist/scene/shapes.js.map +1 -0
  1200. package/dist/scene/stale-shapes.d.ts +18 -0
  1201. package/dist/scene/stale-shapes.d.ts.map +1 -0
  1202. package/dist/scene/stale-shapes.js +39 -0
  1203. package/dist/scene/stale-shapes.js.map +1 -0
  1204. package/dist/scene/strokes.d.ts +20 -0
  1205. package/dist/scene/strokes.d.ts.map +1 -0
  1206. package/dist/scene/strokes.js +111 -0
  1207. package/dist/scene/strokes.js.map +1 -0
  1208. package/dist/scene/text-items.d.ts +48 -0
  1209. package/dist/scene/text-items.d.ts.map +1 -0
  1210. package/dist/scene/text-items.js +206 -0
  1211. package/dist/scene/text-items.js.map +1 -0
  1212. package/dist/scene/text.d.ts +98 -0
  1213. package/dist/scene/text.d.ts.map +1 -0
  1214. package/dist/scene/text.js +249 -0
  1215. package/dist/scene/text.js.map +1 -0
  1216. package/dist/scene/view.d.ts +277 -0
  1217. package/dist/scene/view.d.ts.map +1 -0
  1218. package/dist/scene/view.js +1185 -0
  1219. package/dist/scene/view.js.map +1 -0
  1220. package/dist/scripting/clipboard.d.ts +61 -0
  1221. package/dist/scripting/clipboard.d.ts.map +1 -0
  1222. package/dist/scripting/clipboard.js +147 -0
  1223. package/dist/scripting/clipboard.js.map +1 -0
  1224. package/dist/scripting/code.d.ts +294 -0
  1225. package/dist/scripting/code.d.ts.map +1 -0
  1226. package/dist/scripting/code.js +901 -0
  1227. package/dist/scripting/code.js.map +1 -0
  1228. package/dist/scripting/evaluate.d.ts +38 -0
  1229. package/dist/scripting/evaluate.d.ts.map +1 -0
  1230. package/dist/scripting/evaluate.js +145 -0
  1231. package/dist/scripting/evaluate.js.map +1 -0
  1232. package/dist/scripting/events.d.ts +69 -0
  1233. package/dist/scripting/events.d.ts.map +1 -0
  1234. package/dist/scripting/events.js +173 -0
  1235. package/dist/scripting/events.js.map +1 -0
  1236. package/dist/scripting/handover.d.ts +76 -0
  1237. package/dist/scripting/handover.d.ts.map +1 -0
  1238. package/dist/scripting/handover.js +183 -0
  1239. package/dist/scripting/handover.js.map +1 -0
  1240. package/dist/scripting/lazy.d.ts +9 -0
  1241. package/dist/scripting/lazy.d.ts.map +1 -0
  1242. package/dist/scripting/lazy.js +39 -0
  1243. package/dist/scripting/lazy.js.map +1 -0
  1244. package/dist/scripting/lifecycle.d.ts +90 -0
  1245. package/dist/scripting/lifecycle.d.ts.map +1 -0
  1246. package/dist/scripting/lifecycle.js +273 -0
  1247. package/dist/scripting/lifecycle.js.map +1 -0
  1248. package/dist/scripting/loads.d.ts +220 -0
  1249. package/dist/scripting/loads.d.ts.map +1 -0
  1250. package/dist/scripting/loads.js +861 -0
  1251. package/dist/scripting/loads.js.map +1 -0
  1252. package/dist/scripting/sha256.d.ts +5 -0
  1253. package/dist/scripting/sha256.d.ts.map +1 -0
  1254. package/dist/scripting/sha256.js +96 -0
  1255. package/dist/scripting/sha256.js.map +1 -0
  1256. package/dist/scripting/symbols.d.ts +74 -0
  1257. package/dist/scripting/symbols.d.ts.map +1 -0
  1258. package/dist/scripting/symbols.js +349 -0
  1259. package/dist/scripting/symbols.js.map +1 -0
  1260. package/dist/scripting/timers.d.ts +145 -0
  1261. package/dist/scripting/timers.d.ts.map +1 -0
  1262. package/dist/scripting/timers.js +435 -0
  1263. package/dist/scripting/timers.js.map +1 -0
  1264. package/dist/scripting/workers.d.ts +138 -0
  1265. package/dist/scripting/workers.d.ts.map +1 -0
  1266. package/dist/scripting/workers.js +924 -0
  1267. package/dist/scripting/workers.js.map +1 -0
  1268. package/dist/scripting.d.ts +486 -0
  1269. package/dist/scripting.d.ts.map +1 -0
  1270. package/dist/scripting.js +1019 -0
  1271. package/dist/scripting.js.map +1 -0
  1272. package/dist/sha256.d.ts +5 -0
  1273. package/dist/sha256.d.ts.map +1 -0
  1274. package/dist/sha256.js +96 -0
  1275. package/dist/sha256.js.map +1 -0
  1276. package/dist/shapes.d.ts +71 -0
  1277. package/dist/shapes.d.ts.map +1 -0
  1278. package/dist/shapes.js +340 -0
  1279. package/dist/shapes.js.map +1 -0
  1280. package/dist/stage.d.ts +3 -0
  1281. package/dist/stage.d.ts.map +1 -0
  1282. package/dist/stage.js +5 -0
  1283. package/dist/stage.js.map +1 -0
  1284. package/dist/static-text.d.ts +33 -0
  1285. package/dist/static-text.d.ts.map +1 -0
  1286. package/dist/static-text.js +105 -0
  1287. package/dist/static-text.js.map +1 -0
  1288. package/dist/text/csm.d.ts +34 -0
  1289. package/dist/text/csm.d.ts.map +1 -0
  1290. package/dist/text/csm.js +114 -0
  1291. package/dist/text/csm.js.map +1 -0
  1292. package/dist/text/css.d.ts +9 -0
  1293. package/dist/text/css.d.ts.map +1 -0
  1294. package/dist/text/css.js +168 -0
  1295. package/dist/text/css.js.map +1 -0
  1296. package/dist/text/fonts.d.ts +23 -0
  1297. package/dist/text/fonts.d.ts.map +1 -0
  1298. package/dist/text/fonts.js +98 -0
  1299. package/dist/text/fonts.js.map +1 -0
  1300. package/dist/text/layout.d.ts +79 -0
  1301. package/dist/text/layout.d.ts.map +1 -0
  1302. package/dist/text/layout.js +394 -0
  1303. package/dist/text/layout.js.map +1 -0
  1304. package/dist/text/saffron.d.ts +121 -0
  1305. package/dist/text/saffron.d.ts.map +1 -0
  1306. package/dist/text/saffron.js +442 -0
  1307. package/dist/text/saffron.js.map +1 -0
  1308. package/dist/text/static.d.ts +33 -0
  1309. package/dist/text/static.d.ts.map +1 -0
  1310. package/dist/text/static.js +110 -0
  1311. package/dist/text/static.js.map +1 -0
  1312. package/dist/text/text.d.ts +69 -0
  1313. package/dist/text/text.d.ts.map +1 -0
  1314. package/dist/text/text.js +432 -0
  1315. package/dist/text/text.js.map +1 -0
  1316. package/dist/text-layout.d.ts +66 -0
  1317. package/dist/text-layout.d.ts.map +1 -0
  1318. package/dist/text-layout.js +315 -0
  1319. package/dist/text-layout.js.map +1 -0
  1320. package/dist/text.d.ts +67 -0
  1321. package/dist/text.d.ts.map +1 -0
  1322. package/dist/text.js +383 -0
  1323. package/dist/text.js.map +1 -0
  1324. package/dist/timeline.d.ts +150 -0
  1325. package/dist/timeline.d.ts.map +1 -0
  1326. package/dist/timeline.js +266 -0
  1327. package/dist/timeline.js.map +1 -0
  1328. package/dist/workers/protocol.d.ts +128 -0
  1329. package/dist/workers/protocol.d.ts.map +1 -0
  1330. package/dist/workers/protocol.js +2 -0
  1331. package/dist/workers/protocol.js.map +1 -0
  1332. package/dist/workers/thread.d.ts +15 -0
  1333. package/dist/workers/thread.d.ts.map +1 -0
  1334. package/dist/workers/thread.js +160 -0
  1335. package/dist/workers/thread.js.map +1 -0
  1336. package/dist/workers/wire.d.ts +53 -0
  1337. package/dist/workers/wire.d.ts.map +1 -0
  1338. package/dist/workers/wire.js +199 -0
  1339. package/dist/workers/wire.js.map +1 -0
  1340. package/package.json +55 -3
  1341. package/src/air-definitions.ts +129 -0
  1342. package/src/avm1/amf.ts +564 -0
  1343. package/src/avm1/avm1.ts +1652 -0
  1344. package/src/avm1/bindings.ts +257 -0
  1345. package/src/avm1/classes.ts +85 -0
  1346. package/src/avm1/clips.ts +305 -0
  1347. package/src/avm1/compile.ts +179 -0
  1348. package/src/avm1/external.ts +99 -0
  1349. package/src/avm1/focus.ts +342 -0
  1350. package/src/avm1/globals/BitmapData.ts +736 -0
  1351. package/src/avm1/globals/Button.ts +43 -0
  1352. package/src/avm1/globals/Color.ts +138 -0
  1353. package/src/avm1/globals/ExternalInterface.ts +402 -0
  1354. package/src/avm1/globals/FileReference.ts +249 -0
  1355. package/src/avm1/globals/Key.ts +102 -0
  1356. package/src/avm1/globals/LoadVars.ts +280 -0
  1357. package/src/avm1/globals/LocalConnection.ts +137 -0
  1358. package/src/avm1/globals/MovieClip.ts +1365 -0
  1359. package/src/avm1/globals/MovieClipLoader.ts +150 -0
  1360. package/src/avm1/globals/NetConnection.ts +352 -0
  1361. package/src/avm1/globals/PrintJob.ts +57 -0
  1362. package/src/avm1/globals/Selection.ts +103 -0
  1363. package/src/avm1/globals/SharedObject.ts +300 -0
  1364. package/src/avm1/globals/Sound.ts +326 -0
  1365. package/src/avm1/globals/Stage.ts +19 -0
  1366. package/src/avm1/globals/StyleSheet.ts +280 -0
  1367. package/src/avm1/globals/TextField.ts +611 -0
  1368. package/src/avm1/globals/TextFormat.ts +250 -0
  1369. package/src/avm1/globals/TextSnapshot.ts +128 -0
  1370. package/src/avm1/globals/XML.ts +521 -0
  1371. package/src/avm1/globals/XMLNode.ts +502 -0
  1372. package/src/avm1/globals/XMLSocket.ts +267 -0
  1373. package/src/avm1/globals/drawing.ts +253 -0
  1374. package/src/avm1/globals/filters.ts +782 -0
  1375. package/src/avm1/globals/geom.ts +887 -0
  1376. package/src/avm1/input.ts +556 -0
  1377. package/src/avm1/keyboard.ts +133 -0
  1378. package/src/avm1/loads.ts +461 -0
  1379. package/src/avm1/net.ts +287 -0
  1380. package/src/avm1/paths.ts +132 -0
  1381. package/src/avm1/pointer.ts +607 -0
  1382. package/src/avm1/queue.ts +335 -0
  1383. package/src/avm1/sound.ts +135 -0
  1384. package/src/avm1/swf.ts +193 -0
  1385. package/src/avm1/timers.ts +141 -0
  1386. package/src/bitmap/bitmap.ts +796 -0
  1387. package/src/bitmap/draw.ts +96 -0
  1388. package/src/bitmap/dxt.ts +20 -0
  1389. package/src/bitmap/filters.ts +810 -0
  1390. package/src/bitmap/images.ts +304 -0
  1391. package/src/bitmap/kernel.ts +77 -0
  1392. package/src/bitmap/ops.ts +1608 -0
  1393. package/src/bitmap/pixel-bender.ts +1089 -0
  1394. package/src/bitmap/png.ts +152 -0
  1395. package/src/bitmap/turbulence.ts +117 -0
  1396. package/src/clock.ts +196 -0
  1397. package/src/display/bitmapobject.ts +31 -0
  1398. package/src/display/bounds.ts +702 -0
  1399. package/src/display/buttonobject.ts +382 -0
  1400. package/src/display/color.ts +54 -0
  1401. package/src/display/container.ts +169 -0
  1402. package/src/display/display.ts +28 -0
  1403. package/src/display/displayobject.ts +823 -0
  1404. package/src/display/drawing.ts +744 -0
  1405. package/src/display/filters.ts +393 -0
  1406. package/src/display/geometry.ts +237 -0
  1407. package/src/display/gradients.ts +165 -0
  1408. package/src/display/graphicsdata.ts +745 -0
  1409. package/src/display/instantiate.ts +95 -0
  1410. package/src/display/matrix3d.ts +461 -0
  1411. package/src/display/morph.ts +275 -0
  1412. package/src/display/movieclip.ts +771 -0
  1413. package/src/display/perspective.ts +253 -0
  1414. package/src/display/plane.ts +192 -0
  1415. package/src/display/scale9.ts +321 -0
  1416. package/src/display/shapeobject.ts +160 -0
  1417. package/src/display/shapes.ts +602 -0
  1418. package/src/display/stretch.ts +217 -0
  1419. package/src/display/textobjects.ts +248 -0
  1420. package/src/display/timeline.ts +831 -0
  1421. package/src/display/value-lists.ts +50 -0
  1422. package/src/display/videoobject.ts +7 -0
  1423. package/src/display/walk.ts +169 -0
  1424. package/src/files.ts +466 -0
  1425. package/src/hosts.ts +645 -0
  1426. package/src/index.ts +66 -0
  1427. package/src/input/activation.ts +62 -0
  1428. package/src/input/avm1.ts +102 -0
  1429. package/src/input/canvas.ts +74 -0
  1430. package/src/input/context-menu.ts +105 -0
  1431. package/src/input/keyboard.ts +645 -0
  1432. package/src/input/pointer.ts +1127 -0
  1433. package/src/input/text-editor.ts +361 -0
  1434. package/src/input/touch.ts +302 -0
  1435. package/src/localconnection.ts +129 -0
  1436. package/src/media/audio.ts +484 -0
  1437. package/src/media/dynamic-sound.ts +118 -0
  1438. package/src/media/extract.ts +191 -0
  1439. package/src/media/mp3.ts +205 -0
  1440. package/src/media/sounds.ts +735 -0
  1441. package/src/media/streaming-audio.ts +150 -0
  1442. package/src/player.ts +686 -0
  1443. package/src/playerglobal/air/net/WebSocket.ts +318 -0
  1444. package/src/playerglobal/air-library.ts +14 -0
  1445. package/src/playerglobal/context3d/context.ts +672 -0
  1446. package/src/playerglobal/context3d/errors.ts +116 -0
  1447. package/src/playerglobal/context3d/lifecycle.ts +428 -0
  1448. package/src/playerglobal/context3d/readback.ts +65 -0
  1449. package/src/playerglobal/context3d/resources.ts +406 -0
  1450. package/src/playerglobal/context3d.ts +111 -0
  1451. package/src/playerglobal/flash/accessibility/Accessibility.ts +30 -0
  1452. package/src/playerglobal/flash/crypto/generateRandomBytes.ts +38 -0
  1453. package/src/playerglobal/flash/data/EncryptedLocalStore.ts +75 -0
  1454. package/src/playerglobal/flash/desktop/Clipboard.ts +217 -0
  1455. package/src/playerglobal/flash/desktop/NativeApplication.ts +241 -0
  1456. package/src/playerglobal/flash/display/AVM1Movie.ts +24 -0
  1457. package/src/playerglobal/flash/display/Bitmap.ts +76 -0
  1458. package/src/playerglobal/flash/display/BitmapData.ts +963 -0
  1459. package/src/playerglobal/flash/display/DisplayObject.ts +787 -0
  1460. package/src/playerglobal/flash/display/DisplayObjectContainer.ts +274 -0
  1461. package/src/playerglobal/flash/display/Graphics.ts +489 -0
  1462. package/src/playerglobal/flash/display/InteractiveObject.ts +124 -0
  1463. package/src/playerglobal/flash/display/Loader.ts +126 -0
  1464. package/src/playerglobal/flash/display/LoaderInfo.ts +205 -0
  1465. package/src/playerglobal/flash/display/MovieClip.ts +245 -0
  1466. package/src/playerglobal/flash/display/NativeWindow.ts +313 -0
  1467. package/src/playerglobal/flash/display/Shader.ts +39 -0
  1468. package/src/playerglobal/flash/display/ShaderData.ts +105 -0
  1469. package/src/playerglobal/flash/display/ShaderInput.ts +101 -0
  1470. package/src/playerglobal/flash/display/ShaderJob.ts +234 -0
  1471. package/src/playerglobal/flash/display/ShaderParameter.ts +36 -0
  1472. package/src/playerglobal/flash/display/Shape.ts +19 -0
  1473. package/src/playerglobal/flash/display/SimpleButton.ts +126 -0
  1474. package/src/playerglobal/flash/display/Sprite.ts +115 -0
  1475. package/src/playerglobal/flash/display/Stage.ts +298 -0
  1476. package/src/playerglobal/flash/display/Stage3D.ts +90 -0
  1477. package/src/playerglobal/flash/display/shaders.ts +296 -0
  1478. package/src/playerglobal/flash/events/Event.ts +85 -0
  1479. package/src/playerglobal/flash/events/EventDispatcher.ts +143 -0
  1480. package/src/playerglobal/flash/events/GestureEvent.ts +49 -0
  1481. package/src/playerglobal/flash/events/HTTPStatusEvent.ts +12 -0
  1482. package/src/playerglobal/flash/events/KeyboardEvent.ts +75 -0
  1483. package/src/playerglobal/flash/events/MouseEvent.ts +88 -0
  1484. package/src/playerglobal/flash/events/PressAndTapGestureEvent.ts +48 -0
  1485. package/src/playerglobal/flash/events/TimerEvent.ts +20 -0
  1486. package/src/playerglobal/flash/events/TouchEvent.ts +64 -0
  1487. package/src/playerglobal/flash/external/ExternalInterface.ts +104 -0
  1488. package/src/playerglobal/flash/filesystem/File.ts +450 -0
  1489. package/src/playerglobal/flash/filesystem/FileStream.ts +556 -0
  1490. package/src/playerglobal/flash/filesystem/paths.ts +181 -0
  1491. package/src/playerglobal/flash/filesystem/writes.ts +203 -0
  1492. package/src/playerglobal/flash/filters/BevelFilter.ts +9 -0
  1493. package/src/playerglobal/flash/filters/BitmapFilter.ts +237 -0
  1494. package/src/playerglobal/flash/filters/BlurFilter.ts +8 -0
  1495. package/src/playerglobal/flash/filters/ColorMatrixFilter.ts +15 -0
  1496. package/src/playerglobal/flash/filters/ConvolutionFilter.ts +31 -0
  1497. package/src/playerglobal/flash/filters/DisplacementMapFilter.ts +69 -0
  1498. package/src/playerglobal/flash/filters/DropShadowFilter.ts +9 -0
  1499. package/src/playerglobal/flash/filters/GlowFilter.ts +9 -0
  1500. package/src/playerglobal/flash/filters/GradientBevelFilter.ts +8 -0
  1501. package/src/playerglobal/flash/filters/GradientGlowFilter.ts +8 -0
  1502. package/src/playerglobal/flash/filters/ShaderFilter.ts +75 -0
  1503. package/src/playerglobal/flash/geom/Matrix3D.ts +468 -0
  1504. package/src/playerglobal/flash/geom/PerspectiveProjection.ts +162 -0
  1505. package/src/playerglobal/flash/geom/Transform.ts +335 -0
  1506. package/src/playerglobal/flash/geom/Utils3D.ts +132 -0
  1507. package/src/playerglobal/flash/globalization/Collator.ts +205 -0
  1508. package/src/playerglobal/flash/globalization/CurrencyFormatter.ts +365 -0
  1509. package/src/playerglobal/flash/globalization/CurrencyParseResult.ts +35 -0
  1510. package/src/playerglobal/flash/globalization/DateTimeFormatter.ts +594 -0
  1511. package/src/playerglobal/flash/globalization/LocaleID.ts +202 -0
  1512. package/src/playerglobal/flash/globalization/NumberFormatter.ts +574 -0
  1513. package/src/playerglobal/flash/globalization/NumberParseResult.ts +40 -0
  1514. package/src/playerglobal/flash/globalization/StringTools.ts +78 -0
  1515. package/src/playerglobal/flash/globalization/locale.ts +245 -0
  1516. package/src/playerglobal/flash/media/Camera.ts +122 -0
  1517. package/src/playerglobal/flash/media/Microphone.ts +177 -0
  1518. package/src/playerglobal/flash/media/Sound.ts +714 -0
  1519. package/src/playerglobal/flash/media/SoundMixer.ts +97 -0
  1520. package/src/playerglobal/flash/media/SoundTransform.ts +61 -0
  1521. package/src/playerglobal/flash/media/Video.ts +64 -0
  1522. package/src/playerglobal/flash/net/FileFilter.ts +42 -0
  1523. package/src/playerglobal/flash/net/FileReference.ts +273 -0
  1524. package/src/playerglobal/flash/net/LocalConnection.ts +218 -0
  1525. package/src/playerglobal/flash/net/NetConnection.ts +219 -0
  1526. package/src/playerglobal/flash/net/SharedObject.ts +356 -0
  1527. package/src/playerglobal/flash/net/Socket.ts +360 -0
  1528. package/src/playerglobal/flash/net/URLRequest.ts +140 -0
  1529. package/src/playerglobal/flash/net/URLStream.ts +203 -0
  1530. package/src/playerglobal/flash/net/XMLSocket.ts +18 -0
  1531. package/src/playerglobal/flash/net/local-modern.ts +164 -0
  1532. package/src/playerglobal/flash/net/local-values.ts +245 -0
  1533. package/src/playerglobal/flash/net/navigateToURL.ts +42 -0
  1534. package/src/playerglobal/flash/profiler/Telemetry.ts +35 -0
  1535. package/src/playerglobal/flash/sensors/Accelerometer.ts +15 -0
  1536. package/src/playerglobal/flash/system/ApplicationDomain.ts +94 -0
  1537. package/src/playerglobal/flash/system/Capabilities.ts +203 -0
  1538. package/src/playerglobal/flash/system/FSCommandHost.ts +23 -0
  1539. package/src/playerglobal/flash/system/Security.ts +61 -0
  1540. package/src/playerglobal/flash/system/SecurityDomain.ts +27 -0
  1541. package/src/playerglobal/flash/system/System.ts +96 -0
  1542. package/src/playerglobal/flash/system/Worker.ts +147 -0
  1543. package/src/playerglobal/flash/text/Font.ts +124 -0
  1544. package/src/playerglobal/flash/text/StaticText.ts +21 -0
  1545. package/src/playerglobal/flash/text/StyleSheet.ts +87 -0
  1546. package/src/playerglobal/flash/text/TextField.ts +789 -0
  1547. package/src/playerglobal/flash/text/TextRenderer.ts +104 -0
  1548. package/src/playerglobal/flash/text/engine/FontDescription.ts +198 -0
  1549. package/src/playerglobal/flash/text/engine/TabStop.ts +70 -0
  1550. package/src/playerglobal/flash/trace/Trace.ts +25 -0
  1551. package/src/playerglobal/flash/ui/ContextMenu.ts +26 -0
  1552. package/src/playerglobal/flash/ui/GameInput.ts +27 -0
  1553. package/src/playerglobal/flash/ui/Keyboard.ts +34 -0
  1554. package/src/playerglobal/flash/ui/Mouse.ts +170 -0
  1555. package/src/playerglobal/flash/ui/Multitouch.ts +62 -0
  1556. package/src/playerglobal/flash/utils/ByteArray.ts +184 -0
  1557. package/src/playerglobal/flash/utils/Timer.ts +39 -0
  1558. package/src/playerglobal/flash/xml/XMLDocument.ts +101 -0
  1559. package/src/playerglobal/index.ts +233 -0
  1560. package/src/playerglobal/libraries.ts +12 -0
  1561. package/src/playerglobal/playerglobal-library.ts +28 -0
  1562. package/src/playerglobal/toplevel.ts +158 -0
  1563. package/src/scene/advanced.ts +282 -0
  1564. package/src/scene/context-menu.ts +270 -0
  1565. package/src/scene/fills.ts +90 -0
  1566. package/src/scene/filter-layers.ts +503 -0
  1567. package/src/scene/filters.ts +421 -0
  1568. package/src/scene/hidden.ts +37 -0
  1569. package/src/scene/lines.ts +322 -0
  1570. package/src/scene/masks.ts +195 -0
  1571. package/src/scene/paints.ts +378 -0
  1572. package/src/scene/parts.ts +205 -0
  1573. package/src/scene/pixel-bender-glsl.ts +722 -0
  1574. package/src/scene/planes.ts +260 -0
  1575. package/src/scene/pointer.ts +278 -0
  1576. package/src/scene/shapes.ts +386 -0
  1577. package/src/scene/stale-shapes.ts +56 -0
  1578. package/src/scene/strokes.ts +157 -0
  1579. package/src/scene/text-items.ts +324 -0
  1580. package/src/scene/text.ts +360 -0
  1581. package/src/scene/view.ts +1591 -0
  1582. package/src/scripting/clipboard.ts +169 -0
  1583. package/src/scripting/code.ts +1094 -0
  1584. package/src/scripting/evaluate.ts +178 -0
  1585. package/src/scripting/events.ts +236 -0
  1586. package/src/scripting/handover.ts +253 -0
  1587. package/src/scripting/lazy.ts +67 -0
  1588. package/src/scripting/lifecycle.ts +307 -0
  1589. package/src/scripting/loads.ts +1112 -0
  1590. package/src/scripting/sha256.ts +107 -0
  1591. package/src/scripting/symbols.ts +454 -0
  1592. package/src/scripting/timers.ts +504 -0
  1593. package/src/scripting/workers.ts +1144 -0
  1594. package/src/scripting.ts +1300 -0
  1595. package/src/stage.ts +7 -0
  1596. package/src/text/csm.ts +173 -0
  1597. package/src/text/css.ts +198 -0
  1598. package/src/text/fonts.ts +129 -0
  1599. package/src/text/layout.ts +525 -0
  1600. package/src/text/saffron.ts +539 -0
  1601. package/src/text/static.ts +147 -0
  1602. package/src/text/text.ts +538 -0
  1603. package/src/workers/protocol.ts +124 -0
  1604. package/src/workers/thread.ts +188 -0
  1605. package/src/workers/wire.ts +263 -0
@@ -0,0 +1,1652 @@
1
+ // A player's AVM1: a main AVM1 SWF's action blocks compiled to one module
2
+ // by codegen, and run as its timelines reach them (docs/avm1.md, "The
3
+ // frame"). Each clip, button and text field gets an AS2 face as it is made
4
+ // (globals/MovieClip.ts). The clips play in Flash's order, the newest
5
+ // first, each dispatching its load or enterFrame event and queueing the
6
+ // DoAction blocks of the frame it enters in tag order, a child placed
7
+ // before them running its first frame first; then the queue runs, its
8
+ // initialize events first, then its constructions, then the rest, and a
9
+ // goto in it queues the frames it enters, as Ruffle's
10
+ // (https://github.com/ruffle-rs/ruffle) Avm1::run_frame, ActionQueue,
11
+ // MovieClip::event_dispatch and construct_as_avm1_object have it (MIT OR
12
+ // Apache-2.0, Copyright (c) 2018-2022 Ruffle LLC and Ruffle contributors).
13
+ // Where adl parts from Ruffle, adl decides (docs/avm1.md, "Clip events").
14
+ // A root frame's DoInitAction blocks run as the root enters it, before
15
+ // its places, each sprite's once. setInterval's timers fire between
16
+ // frames by the player's clock, and scripts that run past the script
17
+ // timeout have the movie's actions disabled.
18
+ //
19
+ // Avm1 coordinates the frame; what changes for other reasons is in files
20
+ // of its own, each a part the movie owns: the action queue (queue.ts),
21
+ // the clock and timers (timers.ts), loadMovie's loads (loads.ts), what
22
+ // scripts make and remove (clips.ts), registered classes (classes.ts),
23
+ // the keys and pointer (input.ts), the focus (focus.ts), Sound
24
+ // (sound.ts) and calls out to the page (external.ts); a SWF's own record
25
+ // is swf.ts's.
26
+
27
+ import type { Codegen } from "@swf2es/codegen";
28
+ import { type ActionList, ClipEvent, isAs3, type Place, type Swf } from "@swf2es/format";
29
+ import { avm1 } from "@swf2es/runtime";
30
+ import { BitmapStore } from "../bitmap/bitmap.js";
31
+ import { decodeInBrowser, type ImageDecode } from "../bitmap/images.js";
32
+ import {
33
+ BitmapObject,
34
+ ButtonObject,
35
+ Container,
36
+ type DisplayObject,
37
+ EMPTY_TIMELINE,
38
+ MovieClip,
39
+ TextObject,
40
+ VideoObject,
41
+ } from "../display/display.js";
42
+ import type { Library } from "../display/timeline.js";
43
+ import { browserFileHost, type FileHost } from "../files.js";
44
+ import {
45
+ browserNavigate,
46
+ type Drawer,
47
+ defaultStorage,
48
+ type ExternalInterfaceHost,
49
+ type FetchRequest,
50
+ type FetchResult,
51
+ type Navigate,
52
+ type SharedObjectStorage,
53
+ type SocketHost,
54
+ } from "../hosts.js";
55
+ import { LocalConnections } from "../localconnection.js";
56
+ import { type AudioHost, browserAudioHost } from "../media/audio.js";
57
+ import {
58
+ finishTimelineSounds,
59
+ type SoundHost,
60
+ stopTimelineSounds,
61
+ timelineSoundsOf,
62
+ } from "../media/sounds.js";
63
+ import { type BindingHost, VariableBindings } from "./bindings.js";
64
+ import { RegisteredClasses } from "./classes.js";
65
+ import { constructBlocks, ScriptClips } from "./clips.js";
66
+ import { lazyBlocks } from "./compile.js";
67
+ import { ExternalCalls } from "./external.js";
68
+ import { FocusTracker } from "./focus.js";
69
+ import { type BitmapHost, bitmapDataClass, bitmapObject, storeOf } from "./globals/BitmapData.js";
70
+ import { buttonClass } from "./globals/Button.js";
71
+ import { colorClass } from "./globals/Color.js";
72
+ import { externalInterfaceClass } from "./globals/ExternalInterface.js";
73
+ import { fileReferenceClasses } from "./globals/FileReference.js";
74
+ import { type FilterFaces, filtersPackage } from "./globals/filters.js";
75
+ import { flashPackage } from "./globals/geom.js";
76
+ import { keyObject, mouseObject } from "./globals/Key.js";
77
+ import { formRequest, loadVarsClass, parseForm } from "./globals/LoadVars.js";
78
+ import { localConnectionClass } from "./globals/LocalConnection.js";
79
+ import {
80
+ ClipNative,
81
+ DEPTH_BIAS,
82
+ type Movie,
83
+ movieClipClass,
84
+ nativeOf,
85
+ targetOf,
86
+ } from "./globals/MovieClip.js";
87
+ import { movieClipLoaderClass } from "./globals/MovieClipLoader.js";
88
+ import { netConnectionClass, Remoting } from "./globals/NetConnection.js";
89
+ import { printJobClass } from "./globals/PrintJob.js";
90
+ import { type FocusState, selectionObject } from "./globals/Selection.js";
91
+ import { sharedObjectClass } from "./globals/SharedObject.js";
92
+ import { soundClass } from "./globals/Sound.js";
93
+ import { type StageSize, stageObject } from "./globals/Stage.js";
94
+ import { styleSheetClass } from "./globals/StyleSheet.js";
95
+ import { textFieldClass } from "./globals/TextField.js";
96
+ import { textFormatClass } from "./globals/TextFormat.js";
97
+ import { textSnapshotClass } from "./globals/TextSnapshot.js";
98
+ import { xmlClass } from "./globals/XML.js";
99
+ import { type XmlNodes, xmlNodeClass, serialize as xmlString } from "./globals/XMLNode.js";
100
+ import { xmlSocketClass } from "./globals/XMLSocket.js";
101
+ import { Avm1Input } from "./input.js";
102
+ import { MovieLoads } from "./loads.js";
103
+ import { Avm1Net, textFor } from "./net.js";
104
+ import { asciiLower, atPath, childByName, pathOf, under } from "./paths.js";
105
+ import {
106
+ ActionQueue,
107
+ BLOCK,
108
+ CONSTRUCT,
109
+ CONSTRUCTION,
110
+ FRAME,
111
+ HALT,
112
+ INIT,
113
+ INITIALIZE,
114
+ METHOD,
115
+ NORMAL,
116
+ Queued,
117
+ } from "./queue.js";
118
+ import { Avm1Sounds } from "./sound.js";
119
+ import { Avm1Swf, handlersOf, NO_HANDLERS, readRootFrames, stopOf } from "./swf.js";
120
+ import { defaultClock, Timers } from "./timers.js";
121
+
122
+ type Value = avm1.Value;
123
+
124
+ export interface Avm1Options {
125
+ /** The LocalConnection registry shared with other VMs of this player. */
126
+ localConnections?: LocalConnections;
127
+ /**
128
+ * Where trace's text goes, as it is, the console's log by default: a
129
+ * "\r" in it breaks Flash's log's line as a "\n" does.
130
+ */
131
+ print?: (line: string) => void;
132
+ /** An error a block threw that nothing caught: the console's by default. The SWF plays on. */
133
+ onUncaught?: (error: unknown) => void;
134
+ /** The SWF's URL, which `_url` gives. */
135
+ url?: string;
136
+ /**
137
+ * The real clock, in ms, getTimer's and the timers' time: performance's
138
+ * by default. With null they go by the frames, each a frame's duration
139
+ * on, as the tests have them.
140
+ */
141
+ realTime?: (() => number) | null;
142
+ /** The script timeout in seconds where the SWF sets none: Flash's 15 by default. */
143
+ scriptTimeout?: number;
144
+ /** Where SharedObject keeps its .sol files: the browser's localStorage by default, AS3's own. */
145
+ storage?: SharedObjectStorage;
146
+ /** What plays the timeline's sounds and Sound's: the browser's Web Audio by default; null for none. */
147
+ audio?: AudioHost | null;
148
+ /**
149
+ * fscommand's commands, as a plug-in passed them to its page. Without
150
+ * one, "quit" stops the SWF after its frame, as a projector quits and
151
+ * as Ruffle's test harness ends a test, and the rest are dropped.
152
+ * `callers` is the calling SWF's URL, or every URL of a SWF that has had
153
+ * code where the caller cannot be told, as Scripting's: a host that
154
+ * checks them lets the command through only if all pass.
155
+ */
156
+ fsCommand?: (command: string, args: string, callers: string[]) => void;
157
+ /**
158
+ * Opens getURL's pages: the browser's navigation by default (hosts.ts's
159
+ * browserNavigate), null for none.
160
+ */
161
+ navigate?: Avm1Navigate | null;
162
+ fileHost?: FileHost | null;
163
+ /**
164
+ * What XML, LoadVars and loadVariables load by, the same fetch AS3's
165
+ * URLLoader goes through; without one, every load fails as a missing
166
+ * file does.
167
+ */
168
+ fetch?: (request: FetchRequest, signal: AbortSignal) => Promise<FetchResult>;
169
+ /** XMLSocket's TCP, AS3's Socket's host; without one, every connect fails with onConnect(false). */
170
+ socket?: SocketHost;
171
+ /** Where relative URLs resolve, as a page's `base` parameter has it: the SWF's URL by default. */
172
+ base?: string;
173
+ /**
174
+ * Whether XML.send, which sends without a window, sends: true by
175
+ * default; false refuses it, as allowNetworking "internal" refuses AS3's
176
+ * sendToURL.
177
+ */
178
+ sendToUrl?: boolean;
179
+ /**
180
+ * What decodes the images loadMovie brings, and those in the SWFs it
181
+ * loads: the browser's by default.
182
+ */
183
+ decodeImage?: ImageDecode | null;
184
+ /**
185
+ * The page's ExternalInterface, as AS3's Scripting takes it; without
186
+ * one, ExternalInterface is unavailable. AVM1's callbacks answer the
187
+ * page's XML invocations whatever arguments come with them.
188
+ */
189
+ externalInterface?: ExternalInterfaceHost;
190
+ }
191
+
192
+ /**
193
+ * getURL's page: the URL as the SWF gave it, the window or frame named,
194
+ * and with a method, the variables the SWF sends.
195
+ */
196
+ export type Avm1Navigate = (url: string, window: string, form: avm1.UrlForm | null) => void;
197
+
198
+ /**
199
+ * `navigate` as getURL's: the URL resolved against the SWF's, a GET's
200
+ * variables in its query and a POST's in its body as a form's, as Ruffle's
201
+ * object_into_request has them; an empty URL opens nothing, as Ruffle's
202
+ * navigators ignore it.
203
+ */
204
+ export function getUrlNavigate(navigate: Navigate | null, swfUrl: string): Avm1Navigate | null {
205
+ if (navigate === null) {
206
+ return null;
207
+ }
208
+
209
+ return (url, window, form) => {
210
+ if (url === "") {
211
+ return;
212
+ }
213
+
214
+ let resolved = url;
215
+ try {
216
+ resolved = new URL(url, swfUrl).href;
217
+ } catch {
218
+ // Against a relative SWF URL, or none: the host resolves it against its page.
219
+ }
220
+
221
+ const query = form === null ? "" : new URLSearchParams(form.vars).toString();
222
+ if (form?.method === "POST") {
223
+ const headers: [string, string][] = [["Content-Type", "application/x-www-form-urlencoded"]];
224
+ const body = new TextEncoder().encode(query);
225
+ navigate({ url: resolved, method: "POST", headers, body }, window);
226
+ } else {
227
+ const sent = form === null ? resolved : `${resolved}${url.includes("?") ? "&" : "?"}${query}`;
228
+ navigate({ url: sent, method: "GET", headers: [], body: null }, window);
229
+ }
230
+ };
231
+ }
232
+
233
+ /** The AS2 methods a clip's events call from SWF 6, by the event's bit. */
234
+ const METHODS = new Map<number, string>([
235
+ [ClipEvent.load, "onLoad"],
236
+ [ClipEvent.enterFrame, "onEnterFrame"],
237
+ [ClipEvent.unload, "onUnload"],
238
+ [ClipEvent.mouseMove, "onMouseMove"],
239
+ [ClipEvent.mouseDown, "onMouseDown"],
240
+ [ClipEvent.mouseUp, "onMouseUp"],
241
+ [ClipEvent.keyDown, "onKeyDown"],
242
+ [ClipEvent.keyUp, "onKeyUp"],
243
+ [ClipEvent.press, "onPress"],
244
+ [ClipEvent.release, "onRelease"],
245
+ [ClipEvent.releaseOutside, "onReleaseOutside"],
246
+ [ClipEvent.rollOver, "onRollOver"],
247
+ [ClipEvent.rollOut, "onRollOut"],
248
+ [ClipEvent.dragOver, "onDragOver"],
249
+ [ClipEvent.dragOut, "onDragOut"],
250
+ ]);
251
+
252
+ export class Avm1 implements Movie, FocusState, BitmapHost, BindingHost {
253
+ readonly rt = new avm1.Runtime();
254
+ /** Whether the SWF has stopped for good at what Flash cannot read: nothing plays or runs after. */
255
+ halted = false;
256
+ /**
257
+ * The main SWF, the one the player plays, and each SWF by its library,
258
+ * loaded ones among them.
259
+ */
260
+ private main = new Avm1Swf(null, null, 0, "", 0);
261
+ /**
262
+ * The bytes of each SWF whose blocks it compiled, by its blocks, which
263
+ * codegen may keep a copy of to compile their units, to let go as the
264
+ * SWF goes; and those still here.
265
+ */
266
+ private readonly codeBytes = new WeakMap<avm1.Blocks, Uint8Array>();
267
+ private readonly codeLive = new Set<Uint8Array>();
268
+ private readonly swfs = new WeakMap<Library, Avm1Swf>();
269
+ /** The levels, the main SWF's root level 0, by number, and each one's number. */
270
+ private readonly levels = new Map<number, MovieClip>();
271
+ private readonly levelNumbers = new WeakMap<DisplayObject, number>();
272
+ /** Object.registerClass's classes, which clips of their symbols are constructed as. */
273
+ readonly classes = new RegisteredClasses(this);
274
+ /** What scripts make, duplicate and remove on the display list. */
275
+ readonly scriptClips = new ScriptClips(this);
276
+ /** What each clip a load filled shows, the SWF's root it plays, by the clip. */
277
+ readonly contents = new WeakMap<MovieClip, Avm1Swf>();
278
+ /** loadMovie's and MovieClipLoader's loads, until they are done with. */
279
+ private readonly loads: MovieLoads;
280
+ /** The page's ExternalInterface, and which SWFs call it and fscommand. */
281
+ readonly external: ExternalCalls;
282
+ /** The operand stack, which every activation of a frame's actions shares. */
283
+ private readonly st: avm1.Value[] = [];
284
+ /** Whether the SWF stops as the next frame comes, at a clip's enterFrame. */
285
+ private stopNext = false;
286
+ /** The clips, in the order they were made, which play the newest first. */
287
+ clips: MovieClip[] = [];
288
+ /** What the frame, events and scripts queue, and what runs it. */
289
+ readonly queue = new ActionQueue(this);
290
+ /** Whether the module is loaded: until it is, the first frame's actions wait in the queue. */
291
+ loaded = false;
292
+ /** Each clip's latest frame entry, which its queued blocks are of. */
293
+ private readonly entries = new WeakMap<MovieClip, number>();
294
+ private entryCount = 0;
295
+ /** What names the next object without a name of its own: instance1, instance2... */
296
+ private instances = 0;
297
+ private movieRoot: MovieClip | null = null;
298
+ private swfVersion = 0;
299
+ private swfLength = 0;
300
+ private rate = 24;
301
+ private readonly host: avm1.Host;
302
+ readonly onUncaught: (error: unknown) => void;
303
+ private readonly timelines = new WeakMap<MovieClip, avm1.Timeline>();
304
+ private clipProto: avm1.Avm1Object | null = null;
305
+ private buttonProto: avm1.Avm1Object | null = null;
306
+ private textFieldProto: avm1.Avm1Object | null = null;
307
+ /** The places of display objects being placed, until they are made. */
308
+ private readonly places = new WeakMap<DisplayObject, Place>();
309
+ /** The clips removed with an unload handler, kept until the next frame. */
310
+ private pending: DisplayObject[] = [];
311
+ /** The player's clock, the scripts' timeout and setInterval's timers. */
312
+ readonly timers: Timers;
313
+
314
+ quality = "HIGH";
315
+ focusRect = true;
316
+ soundBufferTime = 5;
317
+ newInvalidBounds = false;
318
+ /** XMLNode's nodes, once the class is made: what a remoting call writes as XML. */
319
+ private xmlNodes: XmlNodes | null = null;
320
+ /** NetConnection's connections, whose calls go at each frame's end. */
321
+ readonly remoting = new Remoting(this);
322
+ /** The filter objects a display object's `filters` reads, once flash.filters is made. */
323
+ filterFaces: FilterFaces | null = null;
324
+ /** Where the pointer last was, in the stage's coordinates (avm1/pointer.ts). */
325
+ mouseX = 0;
326
+ mouseY = 0;
327
+ /** The screen's pixels to a stage pixel, as the host shows the stage; `_xmouse` is in them. */
328
+ pixelRatio = 1;
329
+ /** The pointer, where the host gives one: what drags a clip, and shows or hides itself. */
330
+ pointer: {
331
+ startDrag(d: DisplayObject, lockCenter: boolean, bounds: number[] | null): void;
332
+ stopDrag(): void;
333
+ updateCursor(): void;
334
+ } | null = null;
335
+ /** A dragged clip's `_droptarget`: what is under the pointer as it was last dragged. */
336
+ readonly dropTargets = new WeakMap<DisplayObject, DisplayObject | null>();
337
+ /** The keys, the pointer's buttons and Key's and Mouse's listeners. */
338
+ readonly input = new Avm1Input(this);
339
+ /** The focus, what Tab moves it through and Selection's listeners. */
340
+ readonly focusTracker = new FocusTracker(this);
341
+ readonly url: string;
342
+ readonly storage: SharedObjectStorage;
343
+ /** SharedObject's writes of what its scripts changed, as the player goes: none before attach. */
344
+ private sharedObjects: { flush(version: number): void } | null = null;
345
+ readonly audio: AudioHost | null;
346
+ /** What the timeline's sounds, and Sound's, play by. */
347
+ readonly sounds: SoundHost;
348
+ /** Sound's side: its transforms, the sounds it decodes and those that ended. */
349
+ private readonly media: Avm1Sounds;
350
+ /** What XML, LoadVars, loadVariables and XMLSocket ask of the network, and its answers for the next frame. */
351
+ readonly net: Avm1Net;
352
+ readonly localConnections: LocalConnections;
353
+ readonly fileHost: FileHost | null;
354
+ readonly fileLifetime = new AbortController();
355
+
356
+ get frameRate(): number {
357
+ return this.rate;
358
+ }
359
+
360
+ constructor(
361
+ readonly codegen: Codegen,
362
+ options: Avm1Options = {},
363
+ ) {
364
+ const print = options.print ?? ((line: string) => console.log(line));
365
+ this.onUncaught = options.onUncaught ?? ((error) => console.error(error));
366
+ this.fileHost = options.fileHost === undefined ? browserFileHost() : options.fileHost;
367
+ this.url = options.url ?? "";
368
+ this.localConnections = options.localConnections ?? new LocalConnections();
369
+ this.storage = options.storage ?? defaultStorage();
370
+ this.net = new Avm1Net(
371
+ options.fetch ?? null,
372
+ options.socket ?? null,
373
+ options.base ?? this.url,
374
+ options.sendToUrl ?? true,
375
+ );
376
+ this.audio = options.audio === undefined ? browserAudioHost() : options.audio;
377
+ this.loads = new MovieLoads(
378
+ this,
379
+ options.decodeImage === undefined ? decodeInBrowser : options.decodeImage,
380
+ );
381
+ this.external = new ExternalCalls(this, options.externalInterface ?? null);
382
+ this.media = new Avm1Sounds(this, this.audio);
383
+ this.sounds = this.media.sounds;
384
+ this.timers = new Timers(
385
+ this,
386
+ options.realTime === undefined ? defaultClock() : options.realTime,
387
+ );
388
+ if (options.scriptTimeout !== undefined) {
389
+ this.rt.scriptTimeout = options.scriptTimeout;
390
+ }
391
+
392
+ const face = (d: DisplayObject | null | undefined) => d?.avm1 ?? undefined;
393
+ const display = (object: object) =>
394
+ object instanceof avm1.Avm1Object && object.display !== null
395
+ ? (object.display.target as DisplayObject)
396
+ : undefined;
397
+ this.host = {
398
+ trace: print,
399
+ play: (target) => {
400
+ if (target instanceof MovieClip) {
401
+ target.playing = true;
402
+ }
403
+ },
404
+ stop: (target) => {
405
+ if (target instanceof MovieClip) {
406
+ target.playing = false;
407
+ }
408
+ },
409
+ halt: () => {
410
+ this.halted = true;
411
+ },
412
+ root: (base) => face(this.rootOf(base as DisplayObject)),
413
+ level: (level) => face(this.levels.get(level)),
414
+ parent: (object) => {
415
+ const d = display(object);
416
+ return d === undefined || this.levelNumbers.has(d) ? undefined : face(d.parent);
417
+ },
418
+ child: (object, name, caseSensitive) => {
419
+ const d = display(object);
420
+ const child = d === undefined ? null : childByName(d, name, caseSensitive);
421
+ // An object without an AVM1 object of its own, a shape's, is its parent's.
422
+ return child === null ? undefined : (face(child) ?? face(d));
423
+ },
424
+ clipOf: display,
425
+ objectOf: (target) => (target as DisplayObject).avm1 ?? this.rt.newObject(),
426
+ removed: (target) => this.removed(target as DisplayObject),
427
+ timeline: (target) => (target instanceof MovieClip ? this.timeline(target) : null),
428
+ toggleQuality: () => {
429
+ this.quality = this.quality === "HIGH" || this.quality === "BEST" ? "LOW" : "HIGH";
430
+ },
431
+ time: () => this.timers.getTime(),
432
+ duplicate: (target, name, depth) => {
433
+ this.duplicate(target as DisplayObject, name, depth, null);
434
+ },
435
+ remove: (target) => this.remove(target as DisplayObject),
436
+ startDrag: (target, lockCenter, bounds) =>
437
+ this.startDrag(target as DisplayObject, lockCenter, bounds),
438
+ stopDrag: () => this.stopDrag(),
439
+ returned: () => this.queue.returned(),
440
+ stopSounds: () => stopTimelineSounds(this.sounds),
441
+ loadVariables: (into, url, form) => this.loadVariables(into as DisplayObject, url, form),
442
+ loadMovie: (into, url, form) =>
443
+ this.loadMovie(typeof into === "number" ? into : (into as DisplayObject), url, form),
444
+ fsCommand: (command, args) => {
445
+ if (options.fsCommand === undefined) {
446
+ this.fsCommand(command);
447
+ } else {
448
+ options.fsCommand(command, args, this.external.callerUrls());
449
+ }
450
+ },
451
+ navigate:
452
+ (options.navigate === undefined
453
+ ? getUrlNavigate(browserNavigate(), this.url)
454
+ : options.navigate) ?? undefined,
455
+ };
456
+ }
457
+
458
+ /** fscommand without a host's handler: "quit" stops the SWF after its frame, as a projector quits. */
459
+ private fsCommand(command: string): void {
460
+ if (asciiLower(command) === "quit") {
461
+ this.stopNext = true;
462
+ }
463
+ }
464
+
465
+ get root(): MovieClip {
466
+ return this.movieRoot as MovieClip;
467
+ }
468
+
469
+ get realm(): avm1.Realm {
470
+ return this.rt.realm;
471
+ }
472
+
473
+ get version(): number {
474
+ return this.swfVersion;
475
+ }
476
+
477
+ get length(): number {
478
+ return this.swfLength;
479
+ }
480
+
481
+ /**
482
+ * Take the SWF's timelines, before the root enters its first frame: their
483
+ * clips are made and play through this from now on.
484
+ */
485
+ attach(
486
+ swf: Swf,
487
+ library: Library,
488
+ root: MovieClip,
489
+ size = swf.header.fileLength,
490
+ frameRate = swf.frameRate,
491
+ stageSize: StageSize = {
492
+ stageWidth: Math.round((swf.frameSize.xMax - swf.frameSize.xMin) / 20),
493
+ stageHeight: Math.round((swf.frameSize.yMax - swf.frameSize.yMin) / 20),
494
+ },
495
+ ): void {
496
+ this.movieRoot = root;
497
+ this.swfVersion = swf.header.version;
498
+ this.swfLength = swf.header.fileLength;
499
+ this.rate = frameRate;
500
+ this.levels.set(0, root);
501
+ this.levelNumbers.set(root, 0);
502
+ if (isAs3(swf) || !library.actions) {
503
+ return;
504
+ }
505
+
506
+ root.avm1Root = true;
507
+ const main = new Avm1Swf(
508
+ library,
509
+ library.actions,
510
+ swf.header.version,
511
+ this.url,
512
+ swf.header.fileLength,
513
+ size,
514
+ );
515
+ this.main = main;
516
+ main.root = root;
517
+ readRootFrames(swf, main);
518
+
519
+ const clip = movieClipClass(this);
520
+ this.clipProto = clip.proto;
521
+ const realm = this.rt.realm;
522
+ realm.global.define("MovieClip", clip.constr, avm1.DONT_ENUM);
523
+ const button = buttonClass(this);
524
+ this.buttonProto = button.proto;
525
+ realm.global.define("Button", button.constr, avm1.DONT_ENUM);
526
+ const textField = textFieldClass(this);
527
+ this.textFieldProto = textField.proto;
528
+ realm.global.define("TextField", textField.constr, avm1.DONT_ENUM);
529
+ textField.constr.define("StyleSheet", styleSheetClass(this), avm1.DONT_ENUM | avm1.VERSION_7);
530
+ realm.global.define("TextFormat", textFormatClass(this).constr, avm1.DONT_ENUM);
531
+ this.input.keyFace = keyObject(realm, this.input, this.swfVersion);
532
+ realm.global.define("Key", this.input.keyFace, avm1.DONT_ENUM);
533
+ this.input.mouseFace = mouseObject(realm, this.input, this.swfVersion);
534
+ realm.global.define("Mouse", this.input.mouseFace, avm1.DONT_ENUM);
535
+ realm.global.define("Stage", stageObject(realm, stageSize), avm1.DONT_ENUM);
536
+ this.focusTracker.selectionFace = selectionObject(realm, this, this.swfVersion);
537
+ realm.global.define("Selection", this.focusTracker.selectionFace, avm1.DONT_ENUM);
538
+ realm.global.define("Color", colorClass(this), avm1.DONT_ENUM);
539
+ const sharedObjects = sharedObjectClass(this);
540
+ this.sharedObjects = sharedObjects;
541
+ realm.global.define("SharedObject", sharedObjects.constr, avm1.DONT_ENUM);
542
+ realm.global.define("Sound", soundClass(this.media), avm1.DONT_ENUM);
543
+ const xmlNodes = xmlNodeClass(this);
544
+ this.xmlNodes = xmlNodes;
545
+ realm.global.define("XMLNode", xmlNodes.constr, avm1.DONT_ENUM);
546
+ const xml = xmlClass(this, xmlNodes);
547
+ realm.global.define("XML", xml, avm1.DONT_ENUM);
548
+ realm.global.define(
549
+ "LocalConnection",
550
+ localConnectionClass(this, xml, xmlNodes),
551
+ avm1.DONT_ENUM | avm1.VERSION_6,
552
+ );
553
+ realm.global.define("LoadVars", loadVarsClass(this), avm1.DONT_ENUM);
554
+ realm.global.define("XMLSocket", xmlSocketClass(this, xml), avm1.DONT_ENUM);
555
+ realm.global.define("NetConnection", netConnectionClass(this, this.remoting), avm1.DONT_ENUM);
556
+ const flash = flashPackage(this);
557
+ flash.define("net", fileReferenceClasses(this), 0);
558
+ const external = new avm1.Avm1Object(realm.objectProto);
559
+ external.define("ExternalInterface", externalInterfaceClass(this.external), 0);
560
+ flash.define("external", external, 0);
561
+ const display = avm1.get(flash, "display", this.swfVersion);
562
+ const bitmapData = bitmapDataClass(this);
563
+ if (display instanceof avm1.Avm1Object) {
564
+ display.define("BitmapData", bitmapData, 0);
565
+ }
566
+
567
+ const bitmapProto = bitmapData.own("prototype", this.swfVersion)?.value;
568
+ const filters = new avm1.Avm1Object(realm.objectProto);
569
+ flash.define("filters", filters, 0);
570
+ this.filterFaces = filtersPackage(
571
+ { realm, bitmapObject: (store) => bitmapObject(bitmapProto, store), storeOf },
572
+ filters,
573
+ );
574
+ realm.Object.define(
575
+ "registerClass",
576
+ realm.method((_, args, version) => this.classes.registerClass(args, version)),
577
+ avm1.DONT_ENUM | avm1.DONT_DELETE | avm1.READ_ONLY,
578
+ );
579
+ realm.global.define(
580
+ "MovieClipLoader",
581
+ movieClipLoaderClass(this, this.swfVersion),
582
+ avm1.DONT_ENUM,
583
+ );
584
+ realm.global.define("PrintJob", printJobClass(realm), avm1.DONT_ENUM);
585
+ // Last, as Flash defines it: _global's names are enumerated from the last defined.
586
+ realm.global.define("TextSnapshot", textSnapshotClass(realm), avm1.DONT_ENUM);
587
+ this.adopt(main);
588
+ this.made(root);
589
+ }
590
+
591
+ /** A SWF's timelines told to this: their clips are made and play through it from now on. */
592
+ adopt(swf: Avm1Swf): void {
593
+ const library = swf.library;
594
+ if (library === null) {
595
+ return;
596
+ }
597
+
598
+ this.swfs.set(library, swf);
599
+ library.avm1 = {
600
+ placing: (display, place) => this.places.set(display, place),
601
+ made: (display) => this.made(display),
602
+ entered: (clip, frame) => this.entered(clip, frame),
603
+ skipped: (clip, first, last) => {
604
+ const swf = this.swfOf(clip);
605
+ if (clip === swf.root) {
606
+ for (let frame = first; frame <= last; frame++) {
607
+ this.frameDefinitions(clip, swf, frame);
608
+ }
609
+ }
610
+ },
611
+ actions: (clip, tag) => this.queueTag(clip, tag),
612
+ occupied: (depth) => this.host.trace(`Warning: Failed to place object at depth ${depth}.`),
613
+ keeps: (display) => this.keeps(display),
614
+ };
615
+ library.removing = (display) => this.removing(display);
616
+ library.sounds = timelineSoundsOf(this.sounds);
617
+ }
618
+
619
+ /**
620
+ * The SWF whose timeline `d` is in: its clip's, or the nearest clip's
621
+ * above it; the main one's for none.
622
+ */
623
+ swfOf(d: DisplayObject | null): Avm1Swf {
624
+ for (let o = d; o !== null; o = o.parent) {
625
+ const filled = o instanceof MovieClip ? this.contents.get(o) : undefined;
626
+ if (filled !== undefined) {
627
+ return filled;
628
+ }
629
+
630
+ if (o instanceof Container && o.library !== null) {
631
+ const swf = this.swfs.get(o.library);
632
+ if (swf !== undefined) {
633
+ return swf;
634
+ }
635
+ }
636
+ }
637
+
638
+ return this.main;
639
+ }
640
+
641
+ /** The SWF of the code running now, by its clip; the main one's outside any. */
642
+ currentSwf(): Avm1Swf {
643
+ const base = this.realm.current?.base as DisplayObject | undefined;
644
+ return this.swfOf(base ?? null);
645
+ }
646
+
647
+ /**
648
+ * Prepare the SWF's lazy blocks, then run what the
649
+ * first frame queued. An ActionScript 3 SWF's blocks are left, as Flash
650
+ * runs none of them.
651
+ */
652
+ async load(swf: Swf): Promise<void> {
653
+ this.startScripts(swf);
654
+ }
655
+
656
+ /** Start synchronously when an AS3 Loader delivers an AVM1 movie on the player thread. */
657
+ startScripts(swf: Swf): void {
658
+ // Prepared here, not by compile(), which would put a tick more between the
659
+ // first frame and its actions than the timeline's sounds have.
660
+ const list = this.main.list;
661
+ if (list !== null && list.blocks.length > 0) {
662
+ this.main.blocks = this.lazyBlocks(swf.bytes, list);
663
+ this.external.ownCode(this.main);
664
+ }
665
+
666
+ this.loaded = true;
667
+ if (this.halted) {
668
+ return;
669
+ }
670
+
671
+ this.frameStart();
672
+ this.timers.begin();
673
+ try {
674
+ // The main movie's root gets its load once its first frame's actions
675
+ // have run: an onLoad they set is called (the corpus's root_onload).
676
+ if (this.movieRoot !== null) {
677
+ this.method(this.movieRoot, ClipEvent.load, false);
678
+ }
679
+
680
+ this.queue.run();
681
+ this.timers.afterFrame(this.rate);
682
+ // The first frame's remoting calls go now, as a later frame's do at its end:
683
+ // before anything the network delivers on the next.
684
+ this.remoting.flush();
685
+ } finally {
686
+ this.timers.end();
687
+ }
688
+ }
689
+
690
+ /** A loaded SWF's blocks, ready to compile as they first run. */
691
+ async compile(swf: Swf, list: ActionList | null): Promise<avm1.Blocks> {
692
+ if (list === null || list.blocks.length === 0) {
693
+ return [];
694
+ }
695
+
696
+ return this.lazyBlocks(swf.bytes, list);
697
+ }
698
+
699
+ private lazyBlocks(bytes: Uint8Array, list: ActionList): avm1.Blocks {
700
+ const blocks = lazyBlocks(this.codegen, bytes, list, this.rt);
701
+ this.codeBytes.set(blocks, bytes);
702
+ this.codeLive.add(bytes);
703
+ return blocks;
704
+ }
705
+
706
+ /** `swf` gone: what codegen keeps of it to compile its units goes too. */
707
+ releaseCode(swf: Avm1Swf): void {
708
+ const bytes = this.codeBytes.get(swf.blocks);
709
+ if (bytes !== undefined && this.codeLive.delete(bytes)) {
710
+ this.codegen.releaseActions(bytes);
711
+ }
712
+ }
713
+
714
+ /**
715
+ * The next frame: the clips play, the newest first, those a clip before
716
+ * them took off the display list left out, each dispatching its
717
+ * enterFrame and queueing the actions of the frame it enters; then the
718
+ * queue runs, and the timers due by the next frame fire.
719
+ */
720
+ tick(frameRate = this.rate): void {
721
+ this.rate = frameRate;
722
+ // A clip's enterFrame comes whether the root moved or not.
723
+ if (this.stopNext) {
724
+ this.halted = true;
725
+ }
726
+
727
+ if (this.halted) {
728
+ this.fileLifetime.abort();
729
+ this.net.destroy();
730
+ this.localConnections.destroy(this);
731
+ return;
732
+ }
733
+
734
+ this.timers.begin();
735
+ try {
736
+ this.frameStart();
737
+ this.dropPending();
738
+ // Sounds whose time has run are over before the clips play on, as AS3's are: a stream
739
+ // starts again at its first block, a NoMultiple may start again.
740
+ this.media.frames++;
741
+ // What the network answered since the last frame, before the clips play on.
742
+ if (this.netDelivered()) {
743
+ this.queue.run();
744
+ }
745
+
746
+ finishTimelineSounds(this.sounds);
747
+ const clips = this.clips;
748
+ for (let i = clips.length - 1; i >= 0; i--) {
749
+ const clip = clips[i];
750
+ if (this.removed(clip)) {
751
+ continue;
752
+ }
753
+
754
+ // A clip a load has just filled enters its first frame, its load event its first;
755
+ // one of no frames, unloaded or in error, stays before it.
756
+ if (clip.currentFrame === 0) {
757
+ if (clip.totalFrames > 0) {
758
+ clip.enterFirstFrame();
759
+ }
760
+ } else {
761
+ this.dispatch(clip, ClipEvent.enterFrame);
762
+ clip.advance();
763
+ }
764
+
765
+ if (this.halted) {
766
+ return;
767
+ }
768
+ }
769
+
770
+ this.clips = clips.filter((clip) => !this.removed(clip));
771
+ // A load's onLoadInit after the frame's actions of what it loaded, as Ruffle queues it.
772
+ this.loads.loadsInitialized();
773
+ this.queue.run();
774
+ // onSoundComplete runs with the frame's actions, and what it queues runs with them too.
775
+ if (this.media.soundsCompleted()) {
776
+ this.queue.run();
777
+ }
778
+
779
+ this.timers.afterFrame(this.rate);
780
+ // The frame's remoting calls go, a packet for each connection.
781
+ this.remoting.flush();
782
+ } finally {
783
+ this.timers.end();
784
+ }
785
+ }
786
+
787
+ /** Between frames: what the network answered is delivered, and the timers due by the real clock fire. */
788
+ idle(): void {
789
+ this.network();
790
+ if (this.halted || !this.loaded || this.realm.timers.size === 0) {
791
+ return;
792
+ }
793
+
794
+ this.timers.idleStarted();
795
+ this.timers.begin();
796
+ try {
797
+ this.timers.fire();
798
+ } finally {
799
+ this.timers.end();
800
+ }
801
+ }
802
+
803
+ /**
804
+ * Whether `d` is off the display list, on no level, no longer a clip
805
+ * scripts reach but by its path.
806
+ */
807
+ removed(d: DisplayObject): boolean {
808
+ let top = d;
809
+ while (top.parent !== null && !this.levelNumbers.has(top)) {
810
+ top = top.parent;
811
+ }
812
+
813
+ return !this.levelNumbers.has(top) || this.levels.get(this.levelNumbers.get(top) ?? -1) !== top;
814
+ }
815
+
816
+ faceOf(d: DisplayObject): avm1.Avm1Object | null {
817
+ return d.avm1;
818
+ }
819
+
820
+ atPath(path: string): DisplayObject | null {
821
+ return atPath(path, (n) => this.levels.get(n) ?? null, this.swfVersion > 6);
822
+ }
823
+
824
+ /** The level `d` is, null for a display object that is none. */
825
+ levelOf(d: DisplayObject): number | null {
826
+ return this.levelNumbers.get(d) ?? null;
827
+ }
828
+
829
+ /** The levels' clips, by number, the lowest first. */
830
+ levelClips(): MovieClip[] {
831
+ return [...this.levels.entries()].sort(([a], [b]) => a - b).map(([, clip]) => clip);
832
+ }
833
+
834
+ /**
835
+ * `_root` for code of `d`'s: the first clip from it up whose `_lockroot`
836
+ * is set, else its level (Ruffle's avm1_root); level 0 for one off the
837
+ * display list.
838
+ */
839
+ rootOf(d: DisplayObject): MovieClip {
840
+ for (let o: DisplayObject | null = d; o !== null; o = o.parent) {
841
+ if (o instanceof MovieClip && (this.levelNumbers.has(o) || nativeOf(o)?.lockroot)) {
842
+ return this.removed(o) ? this.root : o;
843
+ }
844
+ }
845
+
846
+ return this.root;
847
+ }
848
+
849
+ /** What timeline actions do to `clip`. */
850
+ timeline(clip: MovieClip): avm1.Timeline {
851
+ let timeline = this.timelines.get(clip);
852
+ if (timeline === undefined) {
853
+ timeline = {
854
+ get currentFrame() {
855
+ return clip.currentFrame;
856
+ },
857
+ get totalFrames() {
858
+ return clip.totalFrames;
859
+ },
860
+ goto: (frame, play) => {
861
+ clip.playing = play;
862
+ if (frame !== clip.currentFrame) {
863
+ clip.gotoFrame(frame);
864
+ }
865
+ },
866
+ labelFrame: (label) => {
867
+ const key = asciiLower(label);
868
+ return clip.timeline.gotoLabels.find((l) => asciiLower(l.name) === key)?.frame;
869
+ },
870
+ call: (frame) => this.queue.callFrame(clip, frame),
871
+ };
872
+ this.timelines.set(clip, timeline);
873
+ }
874
+
875
+ return timeline;
876
+ }
877
+
878
+ /** attachMovie (clips.ts). */
879
+ attachMovie(
880
+ parent: MovieClip,
881
+ name: string,
882
+ instance: string,
883
+ depth: number,
884
+ init: avm1.Avm1Object | null,
885
+ ): DisplayObject | null {
886
+ return this.scriptClips.attachMovie(parent, name, instance, depth, init);
887
+ }
888
+
889
+ /** createEmptyMovieClip (clips.ts). */
890
+ createEmptyMovieClip(parent: MovieClip, instance: string, depth: number): DisplayObject {
891
+ return this.scriptClips.createEmptyMovieClip(parent, instance, depth);
892
+ }
893
+
894
+ /** createTextField (clips.ts). */
895
+ createTextField(
896
+ parent: MovieClip,
897
+ instance: string,
898
+ depth: number,
899
+ rect: [number, number, number, number],
900
+ ): DisplayObject {
901
+ return this.scriptClips.createTextField(parent, instance, depth, rect);
902
+ }
903
+
904
+ /** duplicateMovieClip and CloneSprite (clips.ts). */
905
+ duplicate(
906
+ d: DisplayObject,
907
+ name: string,
908
+ depth: number,
909
+ init: avm1.Avm1Object | null,
910
+ ): DisplayObject | null {
911
+ return this.scriptClips.duplicate(d, name, depth, init);
912
+ }
913
+
914
+ /** removeMovieClip and RemoveSprite (clips.ts). */
915
+ remove(d: DisplayObject): void {
916
+ this.scriptClips.remove(d);
917
+ }
918
+
919
+ textChanged(field: TextObject): void {
920
+ this.bindings.textChanged(field);
921
+ }
922
+
923
+ variableChanged(field: TextObject): void {
924
+ this.bindings.variableChanged(field);
925
+ }
926
+
927
+ propertyChanged(d: DisplayObject, name: string, value: avm1.Value, version: number): void {
928
+ this.bindings.propertyChanged(d, name, value, version);
929
+ }
930
+
931
+ /** The text fields bound to variables. */
932
+ private readonly bindings = new VariableBindings(this);
933
+
934
+ /** `body` run in an activation of `d`, as `d`'s code would run. */
935
+ inActivation(d: DisplayObject, body: (cx: avm1.Activation) => void): void {
936
+ const cx = this.halted ? null : this.activationOf(d);
937
+ if (cx === null) {
938
+ return;
939
+ }
940
+
941
+ this.timers.begin();
942
+ try {
943
+ this.rt.call(cx, () => body(cx));
944
+ } finally {
945
+ this.timers.end();
946
+ }
947
+ }
948
+
949
+ /** The frame's stack empty and its registers undefined, as each frame starts in Flash. */
950
+ private frameStart(): void {
951
+ this.st.length = 0;
952
+ this.rt.realm.registers.fill(undefined);
953
+ this.timers.frameStarted();
954
+ }
955
+
956
+ /**
957
+ * A display object made alive: its AS2 face, and a clip among those that
958
+ * play, with the clip actions of its place, its initialize events and its
959
+ * construction queued where the timeline placed it.
960
+ */
961
+ made(d: DisplayObject): void {
962
+ if (d.avm1 !== null) {
963
+ return;
964
+ }
965
+
966
+ // Shapes, morphs, bitmaps and static text have none: a script reaches their parent by their name.
967
+ const clip = d instanceof MovieClip;
968
+ if (
969
+ !clip &&
970
+ !(d instanceof ButtonObject) &&
971
+ !(d instanceof TextObject) &&
972
+ !(d instanceof VideoObject)
973
+ ) {
974
+ return;
975
+ }
976
+
977
+ // Flash names each clip, button, text field and video without a name of its own as it
978
+ // is made (the corpus's default_names).
979
+ if (d.name === "" && !this.levelNumbers.has(d)) {
980
+ d.name = `instance${++this.instances}`;
981
+ }
982
+
983
+ // A registered class's prototype comes as it is constructed: its initialize
984
+ // events see MovieClip's (adl; Ruffle gives the class's at once).
985
+ const face = new avm1.Avm1Object(
986
+ clip
987
+ ? this.clipProto
988
+ : d instanceof ButtonObject
989
+ ? this.buttonProto
990
+ : d instanceof TextObject
991
+ ? this.textFieldPrototype()
992
+ : this.rt.realm.objectProto,
993
+ );
994
+ const native = new ClipNative(this, d);
995
+ face.display = native;
996
+ d.avm1 = face;
997
+ if (d instanceof TextObject) {
998
+ this.madeField(d, face);
999
+ }
1000
+
1001
+ this.bindings.retry(d);
1002
+
1003
+ if (!clip) {
1004
+ return;
1005
+ }
1006
+
1007
+ this.clips.push(d);
1008
+ // The SWF that places or makes it, whose clip actions it runs: its place is in its
1009
+ // parent's timeline, of the SWF the clip's character is.
1010
+ native.swf = this.swfOf(d);
1011
+ const place = this.places.get(d);
1012
+ const source = this.scriptClips.handed.get(d);
1013
+ if (place !== undefined) {
1014
+ this.places.delete(d);
1015
+ native.corrupt = place.corrupt;
1016
+ native.handlers = handlersOf(place, native.swf);
1017
+ this.corruptPlace(d, place.corrupt);
1018
+ } else if (source !== undefined) {
1019
+ this.scriptClips.handed.delete(d);
1020
+ native.swf = source.swf;
1021
+ native.corrupt = source.corrupt;
1022
+ native.handlers = source.handlers;
1023
+ }
1024
+
1025
+ // Its initialize events wait for the queue's first pass, before its children's.
1026
+ for (const h of native.handlers ?? NO_HANDLERS) {
1027
+ if (h.events & ClipEvent.initialize) {
1028
+ this.queue.enqueue(INITIALIZE, new Queued(BLOCK, d, native.swf, h.block));
1029
+ }
1030
+ }
1031
+
1032
+ // Placed by a timeline, its class's constructor and its construct events wait too;
1033
+ // a script constructs what it makes itself.
1034
+ if (d === this.scriptClips.scripted) {
1035
+ return;
1036
+ }
1037
+
1038
+ // Its class is the one registered as it is constructed: a first frame's
1039
+ // DoInitAction blocks run after its places are made, before the queue.
1040
+ const constructs = constructBlocks(native);
1041
+ if (constructs.length > 0 || this.exported(d)) {
1042
+ this.queue.enqueue(
1043
+ CONSTRUCT,
1044
+ new Queued(CONSTRUCTION, d, native.swf, 0, 0, false, "", constructs),
1045
+ );
1046
+ }
1047
+ }
1048
+
1049
+ /** `_global.TextField.prototype` as it is now, the class's own where a script took it away. */
1050
+ private textFieldPrototype(): avm1.Value {
1051
+ const version = this.swfVersion;
1052
+ const constr = avm1.get(this.rt.realm.global, "TextField", version);
1053
+ const proto = constr instanceof avm1.Avm1Object ? avm1.get(constr, "prototype", version) : null;
1054
+ return proto instanceof avm1.Avm1Object ? proto : this.textFieldProto;
1055
+ }
1056
+
1057
+ /**
1058
+ * A text field's AVM1 object made: a broadcaster, itself its first
1059
+ * listener, so that its own onChanged and onScroller come before the
1060
+ * others' (Ruffle's initialize_as_broadcaster).
1061
+ */
1062
+ private madeField(field: TextObject, face: avm1.Avm1Object): void {
1063
+ this.bindings.made(field);
1064
+
1065
+ const version = this.swfVersion;
1066
+ avm1.initializeBroadcaster(face, this.rt.realm, version);
1067
+ const listeners = avm1.get(face, "_listeners", version);
1068
+ if (listeners instanceof avm1.Avm1Object) {
1069
+ avm1.set(listeners, "0", face, version);
1070
+ }
1071
+ }
1072
+
1073
+ /** Whether `d`'s character has an export name, which a class may be registered by. */
1074
+ private exported(d: DisplayObject): boolean {
1075
+ const id = d.character?.id;
1076
+ return id !== undefined && this.swfOf(d).exportNames.has(id);
1077
+ }
1078
+
1079
+ /**
1080
+ * A place in a sprite whose clip actions Flash cannot read: the SWF stops
1081
+ * as it places the clip for load and initialize, after the frame's
1082
+ * initializations for construct, at the next frame for enterFrame. A
1083
+ * root's place stops it as the root enters the frame (`entered`).
1084
+ */
1085
+ private corruptPlace(d: DisplayObject, events: number): void {
1086
+ if (events === 0 || d.parent === this.movieRoot) {
1087
+ return;
1088
+ }
1089
+
1090
+ switch (stopOf(events)) {
1091
+ case "place":
1092
+ this.halted = true;
1093
+ break;
1094
+ case "construct":
1095
+ this.queue.enqueue(CONSTRUCT, new Queued(HALT, d));
1096
+ break;
1097
+ case "enterFrame":
1098
+ this.stopNext = true;
1099
+ break;
1100
+ }
1101
+ }
1102
+
1103
+ /** An XML node's text, as its toString gives it, which a remoting call writes; null for anything else. */
1104
+ xmlText(o: avm1.Avm1Object): string | null {
1105
+ const node = this.xmlNodes?.nodeOf(o) ?? null;
1106
+ return node === null ? null : xmlString(node, this.swfVersion);
1107
+ }
1108
+
1109
+ /** The name Object.registerClass gave `constr`, as SharedObject's AMF0 types an object; null for none. */
1110
+ registeredName(constr: Value): string | null {
1111
+ return this.classes.registeredName(constr);
1112
+ }
1113
+
1114
+ /** The player gone: SharedObject writes what its scripts changed, as Flash did as a SWF closed. */
1115
+ destroy(closeAudio = true): void {
1116
+ for (const bytes of this.codeLive) {
1117
+ this.codegen.releaseActions(bytes);
1118
+ }
1119
+ this.codeLive.clear();
1120
+ this.localConnections.destroy(this);
1121
+ this.fileLifetime.abort();
1122
+ this.net.destroy();
1123
+ this.sharedObjects?.flush(this.swfVersion);
1124
+ stopTimelineSounds(this.sounds);
1125
+ if (closeAudio) {
1126
+ this.audio?.close?.();
1127
+ }
1128
+ }
1129
+
1130
+ /** Resolves once every request the SWF has made so far has come back, for the next frame. */
1131
+ settled(): Promise<void> {
1132
+ return this.net.settled();
1133
+ }
1134
+
1135
+ /** `o[name](...args)` in the root's activation, as a network callback between frames runs it. */
1136
+ callback(o: avm1.Avm1Object, name: string, args: Value[]): void {
1137
+ const cx = this.movieRoot === null || this.halted ? null : this.activationOf(this.movieRoot);
1138
+ if (cx !== null) {
1139
+ this.rt.callMethod(cx, o, name, args, this.swfVersion);
1140
+ }
1141
+ }
1142
+
1143
+ /** LocalConnection may enter this VM from AS3, outside its own frame's script budget. */
1144
+ localInvoke(o: avm1.Avm1Object, name: string, args: Value[], fallback: Value = undefined): Value {
1145
+ const cx = this.movieRoot === null || this.halted ? null : this.activationOf(this.movieRoot);
1146
+ if (cx === null) {
1147
+ return undefined;
1148
+ }
1149
+
1150
+ let result: Value;
1151
+ this.timers.begin();
1152
+ try {
1153
+ this.rt.call(cx, () => {
1154
+ const method = avm1.get(o, name, this.version, o, false);
1155
+ result =
1156
+ method instanceof avm1.Avm1Function
1157
+ ? avm1.invoke(method, o, args, this.version)
1158
+ : fallback;
1159
+ });
1160
+ } finally {
1161
+ this.timers.end();
1162
+ }
1163
+
1164
+ return result;
1165
+ }
1166
+
1167
+ /** LoadVars.send's page, as getURL's opens it. */
1168
+ navigate(url: string, window: string, form: avm1.UrlForm): void {
1169
+ this.host.navigate?.(url, window, form);
1170
+ }
1171
+
1172
+ /**
1173
+ * Between frames: what the network has answered since delivered, its
1174
+ * callbacks run and what they queued, as Flash's come between frames.
1175
+ */
1176
+ network(): void {
1177
+ // A SWF stopped for good takes nothing more: its loads and connections end.
1178
+ if (this.halted) {
1179
+ this.fileLifetime.abort();
1180
+ this.net.destroy();
1181
+ this.localConnections.destroy(this);
1182
+ return;
1183
+ }
1184
+
1185
+ if (!this.loaded) {
1186
+ return;
1187
+ }
1188
+
1189
+ this.timers.begin();
1190
+ try {
1191
+ if (this.netDelivered()) {
1192
+ this.queue.run();
1193
+ }
1194
+ } finally {
1195
+ this.timers.end();
1196
+ }
1197
+ }
1198
+
1199
+ /**
1200
+ * The network's answers since the last frame delivered, each in the
1201
+ * root's activation as a callback runs, so that a setter or watcher it
1202
+ * sets off that throws or runs out of time ends that one alone, and an
1203
+ * error of the player's own goes to onUncaught and the rest go on:
1204
+ * whether there were any.
1205
+ */
1206
+ private netDelivered(): boolean {
1207
+ const ready = this.net.take();
1208
+ const cx = this.movieRoot === null ? null : this.activationOf(this.movieRoot);
1209
+ for (const deliver of ready) {
1210
+ if (this.halted || cx === null) {
1211
+ break;
1212
+ }
1213
+
1214
+ try {
1215
+ this.rt.call(cx, deliver);
1216
+ } catch (error) {
1217
+ this.onUncaught(error);
1218
+ }
1219
+ }
1220
+
1221
+ return ready.length > 0;
1222
+ }
1223
+
1224
+ /**
1225
+ * loadVariables and loadVariablesNum: the variables at `url` set on
1226
+ * `into` between frames, then a clip's onData and its data event, as
1227
+ * Ruffle's load_form_into_object has them. A SWF up to 5 reads the text
1228
+ * as Windows-1252, a later one as UTF-8.
1229
+ */
1230
+ loadVariables(into: DisplayObject, url: string, form: avm1.UrlForm | null): void {
1231
+ const request =
1232
+ form === null
1233
+ ? { url, method: "GET" as const, headers: [], body: null }
1234
+ : formRequest(url, form.method, form.vars);
1235
+ this.net.fetch(request, (result) => {
1236
+ const face = into.avm1;
1237
+ if (result.bytes === null || face === null || this.removed(into)) {
1238
+ return;
1239
+ }
1240
+
1241
+ const v = this.swfVersion;
1242
+ const text = new TextDecoder(v <= 5 ? "windows-1252" : "utf-8").decode(result.bytes);
1243
+ for (const [name, value] of parseForm(textFor(text, v), v)) {
1244
+ avm1.set(face, name, value, v);
1245
+ }
1246
+
1247
+ if (into instanceof MovieClip) {
1248
+ this.queue.enqueue(NORMAL, new Queued(METHOD, into, null, 0, 0, false, "onData"));
1249
+ this.dispatch(into, ClipEvent.data, false);
1250
+ }
1251
+ });
1252
+ }
1253
+
1254
+ /**
1255
+ * loadMovie and loadMovieNum: the SWF or image at `url` into a clip, or
1256
+ * into a level, which the load makes where there is none; an empty URL
1257
+ * unloads what is there.
1258
+ */
1259
+ loadMovie(into: DisplayObject | number, url: string, form: avm1.UrlForm | null): void {
1260
+ this.loads.loadMovie(into, url, form);
1261
+ }
1262
+
1263
+ /**
1264
+ * MovieClipLoader.loadClip: the SWF or image at `url` into `target`,
1265
+ * `loader`'s listeners told of it; false for a target that is no clip.
1266
+ */
1267
+ loadClip(loader: avm1.Avm1Object, target: DisplayObject, url: string): boolean {
1268
+ return this.loads.loadClip(loader, target, url);
1269
+ }
1270
+
1271
+ /** unloadMovie: what `d` shows unloaded and it left empty (loads.ts). */
1272
+ unloadMovie(d: DisplayObject): void {
1273
+ this.loads.unloadMovie(d);
1274
+ }
1275
+
1276
+ /** Level `n`'s clip, null where there is none. */
1277
+ level(n: number): MovieClip | null {
1278
+ return this.levels.get(n) ?? null;
1279
+ }
1280
+
1281
+ /** Level `n`'s clip, an empty one made where there is none. */
1282
+ levelToLoad(n: number): MovieClip {
1283
+ return this.levels.get(n) ?? this.makeLevel(n);
1284
+ }
1285
+
1286
+ /** The size of the SWF `d` is of, as it came. */
1287
+ sizeOf(d: DisplayObject): number {
1288
+ return this.swfOf(d).size;
1289
+ }
1290
+
1291
+ /**
1292
+ * A level of an empty clip, the main SWF's, on the stage at depth `n`,
1293
+ * above those below it, as a load into a level makes one before what it
1294
+ * loads arrives (Ruffle's get_or_create_level).
1295
+ */
1296
+ private makeLevel(n: number): MovieClip {
1297
+ const clip = new MovieClip(EMPTY_TIMELINE, this.root.library);
1298
+ this.levels.set(n, clip);
1299
+ this.levelNumbers.set(clip, n);
1300
+ this.root.parent?.placeAtDepth(clip, n);
1301
+ this.made(clip);
1302
+ return clip;
1303
+ }
1304
+
1305
+ /**
1306
+ * `target` made to show `swf`, as Flash keeps a clip a load fills: what
1307
+ * it showed taken off, references to it kept by their paths, and its
1308
+ * timeline the SWF's root's, before its first frame, which it enters as
1309
+ * the next frame plays; one without a library shows nothing.
1310
+ */
1311
+ fill(target: MovieClip, swf: Avm1Swf, frames = EMPTY_TIMELINE): void {
1312
+ for (const child of target.children) {
1313
+ this.markPaths(child);
1314
+ target.library.sounds?.removed(child);
1315
+ }
1316
+
1317
+ this.realm.removals++;
1318
+ target.replaceTimeline(swf.library?.root ?? frames, swf.library ?? target.library);
1319
+ // Level 0's SWF is the main one, whose version and size the movie gives; the frame rate
1320
+ // stays the first's.
1321
+ if (target === this.root) {
1322
+ this.main = swf;
1323
+ if (swf.library !== null) {
1324
+ this.swfVersion = swf.version;
1325
+ this.swfLength = swf.length;
1326
+ }
1327
+ }
1328
+
1329
+ this.contents.set(target, swf);
1330
+ swf.root = target;
1331
+ this.entries.set(target, ++this.entryCount);
1332
+ const native = nativeOf(target);
1333
+ if (native !== null) {
1334
+ native.loaded = false;
1335
+ native.unloaded = false;
1336
+ native.pending = false;
1337
+ }
1338
+ }
1339
+
1340
+ /** An activation of `d`'s code, as a frame's block has. */
1341
+ activationOf(d: DisplayObject, pool: Value[] = []): avm1.Activation | null {
1342
+ const face = d.avm1;
1343
+ return face === null ? null : this.rt.activation(this.st, pool, d, face, this.host);
1344
+ }
1345
+
1346
+ /** A display object about to leave the display list: its unload, and where it and what is in it are. */
1347
+ private removing(d: DisplayObject): void {
1348
+ const focused = this.focusTracker.focusedObject;
1349
+ if (focused !== null && (focused === d || under(focused, d))) {
1350
+ this.focus(null);
1351
+ }
1352
+
1353
+ this.markPaths(d);
1354
+ this.unload(d);
1355
+ }
1356
+
1357
+ /** The host's renderer, which BitmapData's draw of a display object draws by; null where there is none. */
1358
+ drawer: Drawer | null = null;
1359
+
1360
+ /** The library's bitmap exported as `name`, as a new transparent store, as loadBitmap makes one. */
1361
+ libraryBitmap(name: string): BitmapStore | null {
1362
+ const swf = this.currentSwf();
1363
+ const id = swf.exports.get(asciiLower(name));
1364
+ const character = id === undefined ? undefined : swf.library?.characters.get(id);
1365
+ if (character?.type !== "bitmap" || character.pixels === null) {
1366
+ return null;
1367
+ }
1368
+
1369
+ return BitmapStore.of({ ...character.pixels, transparent: true });
1370
+ }
1371
+
1372
+ /** attachBitmap: `store` shown in `parent` at AVM1 depth `depth`, as a bitmap with no AVM1 object of its own. */
1373
+ attachBitmap(parent: MovieClip, store: BitmapStore, depth: number, smoothing: boolean): void {
1374
+ const bitmap = new BitmapObject(store);
1375
+ bitmap.smoothing = smoothing;
1376
+ parent.placeAtDepth(bitmap, (depth + DEPTH_BIAS) | 0);
1377
+ }
1378
+
1379
+ /** The stage a clip is on, which flash.geom.Transform measures to. */
1380
+ stageOf(_d: DisplayObject): DisplayObject | null {
1381
+ return this.root?.parent ?? null;
1382
+ }
1383
+
1384
+ dropTargetOf(d: DisplayObject): DisplayObject | null {
1385
+ return this.dropTargets.get(d) ?? null;
1386
+ }
1387
+
1388
+ hidden(d: DisplayObject): void {
1389
+ if (this.focusTracker.focusedObject === d) {
1390
+ this.focus(null);
1391
+ }
1392
+ }
1393
+
1394
+ get focused(): DisplayObject | null {
1395
+ return this.focusTracker.focusedObject;
1396
+ }
1397
+
1398
+ /** Focus `d`, or none, telling those it concerns at once (focus.ts). */
1399
+ focus(d: DisplayObject | null): void {
1400
+ this.focusTracker.focus(d);
1401
+ }
1402
+
1403
+ /** Whether a script may focus `d` (focus.ts). */
1404
+ focusable(d: DisplayObject): boolean {
1405
+ return this.focusTracker.focusable(d);
1406
+ }
1407
+
1408
+ pathOf(d: DisplayObject): string {
1409
+ return pathOf(d, (o) => this.levelOf(o));
1410
+ }
1411
+
1412
+ resolve(value: avm1.Value, version: number): DisplayObject | null {
1413
+ const target = this.rt.realm.current?.target as DisplayObject | null | undefined;
1414
+ return targetOf(this, target ?? this.root, value, version);
1415
+ }
1416
+
1417
+ /** Where `d` and what is in it are, the paths their references keep. */
1418
+ private markPaths(d: DisplayObject): void {
1419
+ const mark = (o: DisplayObject) => {
1420
+ const native = o.avm1?.display;
1421
+ if (native instanceof ClipNative && native.removedAt === null) {
1422
+ native.removedAt = pathOf(o, (p) => this.levelOf(p));
1423
+ }
1424
+
1425
+ if (o instanceof MovieClip || o instanceof ButtonObject) {
1426
+ for (const child of o.children) {
1427
+ mark(child);
1428
+ }
1429
+ }
1430
+ };
1431
+ mark(d);
1432
+ }
1433
+
1434
+ /** `d` and what is in it unloaded, the children first, each clip's unload dispatched once. */
1435
+ unload(d: DisplayObject): void {
1436
+ // Code running on a clip in it returns after the call that removed it.
1437
+ this.realm.removals++;
1438
+ this.bindings.unloaded(d);
1439
+ if (d instanceof Container) {
1440
+ for (const child of [...d.children]) {
1441
+ this.unload(child);
1442
+ }
1443
+ }
1444
+
1445
+ const native = nativeOf(d);
1446
+ if (d instanceof MovieClip && native !== null && !native.unloaded) {
1447
+ native.unloaded = true;
1448
+ this.dispatch(d, ClipEvent.unload);
1449
+ }
1450
+ }
1451
+
1452
+ /**
1453
+ * Whether `d`, being removed, stays a frame: a clip with an unload
1454
+ * handler, a clip event's or an onUnload anywhere on its object, or one
1455
+ * with such a clip in it, as Flash keeps it to run them. Its unload and
1456
+ * theirs come now.
1457
+ */
1458
+ private keeps(d: DisplayObject): boolean {
1459
+ if (this.swfOf(d).version < 5 || nativeOf(d)?.pending || !this.delays(d)) {
1460
+ return false;
1461
+ }
1462
+
1463
+ const mark = (o: DisplayObject) => {
1464
+ const native = nativeOf(o);
1465
+ if (native !== null) {
1466
+ native.pending = true;
1467
+ }
1468
+
1469
+ if (o instanceof Container) {
1470
+ for (const child of o.children) {
1471
+ mark(child);
1472
+ }
1473
+ }
1474
+ };
1475
+ mark(d);
1476
+ this.unload(d);
1477
+ this.pending.push(d);
1478
+ return true;
1479
+ }
1480
+
1481
+ /** Whether `d` or a clip in it has an unload handler. */
1482
+ private delays(d: DisplayObject): boolean {
1483
+ const native = nativeOf(d);
1484
+ if (d instanceof MovieClip && native !== null) {
1485
+ if (native.handlers?.some((h) => h.events & ClipEvent.unload)) {
1486
+ return true;
1487
+ }
1488
+
1489
+ const face = d.avm1;
1490
+ if (face !== null && avm1.find(face, "onUnload", this.swfOf(d).version) !== undefined) {
1491
+ return true;
1492
+ }
1493
+ }
1494
+
1495
+ return d instanceof Container && d.children.some((child) => this.delays(child));
1496
+ }
1497
+
1498
+ /** The clips kept a frame for their unload handlers go, as the next frame starts. */
1499
+ private dropPending(): void {
1500
+ if (this.pending.length === 0) {
1501
+ return;
1502
+ }
1503
+
1504
+ for (const d of this.pending.splice(0)) {
1505
+ const parent = d.parent;
1506
+ if (parent instanceof Container) {
1507
+ this.markPaths(d);
1508
+ this.realm.removals++;
1509
+ parent.removeChild(d);
1510
+ parent.library?.sounds?.removed(d);
1511
+ }
1512
+ }
1513
+ }
1514
+
1515
+ /** A clip entered a frame: its load on its first; the root's frames have their exports, inits, limits and stops. */
1516
+ private entered(clip: MovieClip, frame: number): void {
1517
+ this.entries.set(clip, ++this.entryCount);
1518
+ const native = nativeOf(clip);
1519
+ if (native !== null && !native.loaded) {
1520
+ native.loaded = true;
1521
+ // The main movie's root gets its load once its first frame's actions run (`load`).
1522
+ if (clip !== this.movieRoot) {
1523
+ this.dispatch(clip, ClipEvent.load);
1524
+ }
1525
+ }
1526
+
1527
+ const swf = this.swfOf(clip);
1528
+ if (clip !== swf.root) {
1529
+ return;
1530
+ }
1531
+
1532
+ const actions = swf.frames.get(frame);
1533
+ if (actions === undefined) {
1534
+ return;
1535
+ }
1536
+
1537
+ if (actions.stop === "place") {
1538
+ this.halted = true;
1539
+ return;
1540
+ }
1541
+
1542
+ if (actions.limits !== null) {
1543
+ [this.rt.maxRecursion, this.rt.scriptTimeout] = actions.limits;
1544
+ }
1545
+
1546
+ this.frameDefinitions(clip, swf, frame);
1547
+
1548
+ if (actions.stop === "construct") {
1549
+ this.queue.enqueue(CONSTRUCT, new Queued(HALT, clip));
1550
+ }
1551
+
1552
+ this.stopNext ||= actions.stop === "enterFrame";
1553
+ }
1554
+
1555
+ /** A skipped root frame still registers its exports and queues its #initclip (adl). */
1556
+ private frameDefinitions(clip: MovieClip, swf: Avm1Swf, frame: number): void {
1557
+ const actions = swf.frames.get(frame);
1558
+ if (actions === undefined) {
1559
+ return;
1560
+ }
1561
+
1562
+ for (const { id, name } of actions.exports) {
1563
+ swf.exports.set(asciiLower(name), id);
1564
+ swf.exportNames.set(id, name);
1565
+ }
1566
+
1567
+ for (const { sprite, block } of actions.inits) {
1568
+ if (!swf.initialized.has(sprite)) {
1569
+ swf.initialized.add(sprite);
1570
+ this.queue.enqueue(INIT, new Queued(BLOCK, clip, swf, block));
1571
+ }
1572
+ }
1573
+ }
1574
+
1575
+ /**
1576
+ * An event of `clip`'s: from SWF 5 its clip actions for it queued, an
1577
+ * initialize's among the initializations, and from SWF 6 the AS2
1578
+ * method it calls after them. One whose place's clip actions Flash
1579
+ * cannot read stops the SWF instead.
1580
+ */
1581
+ dispatch(clip: MovieClip, event: number, methods = true): void {
1582
+ const native = nativeOf(clip);
1583
+ // Its clip actions are the SWF's that placed it, whatever a load put in it since.
1584
+ if (native === null || (native.swf ?? this.swfOf(clip)).version < 5) {
1585
+ return;
1586
+ }
1587
+
1588
+ if (native.corrupt & event) {
1589
+ this.halted = true;
1590
+ return;
1591
+ }
1592
+
1593
+ const unload = event === ClipEvent.unload;
1594
+ for (const h of native.handlers ?? NO_HANDLERS) {
1595
+ if (h.events & event) {
1596
+ this.queue.enqueue(
1597
+ event === ClipEvent.initialize ? INITIALIZE : NORMAL,
1598
+ new Queued(BLOCK, clip, native.swf, h.block, 0, unload),
1599
+ );
1600
+ }
1601
+ }
1602
+
1603
+ if (methods) {
1604
+ this.method(clip, event, unload);
1605
+ }
1606
+ }
1607
+
1608
+ /**
1609
+ * The version that decides whether a clip's AS2 event methods run: the
1610
+ * SWF it shows (Ruffle's movie version), but where a load left an image,
1611
+ * the error state or nothing, which have none, the SWF that made it.
1612
+ */
1613
+ private methodVersion(clip: DisplayObject): number {
1614
+ const shown = this.swfOf(clip);
1615
+ const made = nativeOf(clip)?.swf ?? null;
1616
+ return shown.library === null && made !== null ? made.version : shown.version;
1617
+ }
1618
+
1619
+ /** From SWF 6, the AS2 method of `event` on `clip`'s object, queued. */
1620
+ method(clip: DisplayObject, event: number, unload: boolean): void {
1621
+ const name = METHODS.get(event);
1622
+ if (name !== undefined && this.methodVersion(clip) >= 6) {
1623
+ this.queue.enqueue(NORMAL, new Queued(METHOD, clip, null, 0, 0, unload, name));
1624
+ }
1625
+ }
1626
+
1627
+ startDrag(d: DisplayObject, lockCenter: boolean, bounds: number[] | null): void {
1628
+ this.pointer?.startDrag(d, lockCenter, bounds);
1629
+ }
1630
+
1631
+ stopDrag(): void {
1632
+ this.pointer?.stopDrag();
1633
+ }
1634
+
1635
+ /** Every key let go, with no event, as the player loses focus (input.ts). */
1636
+ releaseKeys(): void {
1637
+ this.input.releaseKeys();
1638
+ }
1639
+
1640
+ /** Broadcast a pointer's event (input.ts): every clip's clip actions for it, then Mouse's listeners. */
1641
+ clipEvent(event: number): void {
1642
+ this.input.clipEvent(event);
1643
+ }
1644
+
1645
+ /** A DoAction tag a clip's frame reached: its blocks wait for the queue. */
1646
+ private queueTag(clip: MovieClip, tag: number): void {
1647
+ this.queue.enqueue(
1648
+ NORMAL,
1649
+ new Queued(FRAME, clip, this.swfOf(clip), tag, this.entries.get(clip) ?? 0),
1650
+ );
1651
+ }
1652
+ }