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