@afterswf/playerglobal 0.0.0-stage → 0.2.460
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/.eslintrc +101 -0
- package/.gitattributes +1 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +29 -0
- package/.prettierrc +8 -0
- package/LICENSE +201 -0
- package/README.md +1 -3
- package/bundle/awayfl-playerglobal.umd.js +2 -0
- package/bundle/awayfl-playerglobal.umd.js.map +1 -0
- package/copyVersionToIndex.js +24 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/lib/ILoader.d.ts +10 -0
- package/dist/lib/ILoader.d.ts.map +1 -0
- package/dist/lib/ILoader.js +1 -0
- package/dist/lib/PlayerGlobal.d.ts +28 -0
- package/dist/lib/PlayerGlobal.d.ts.map +1 -0
- package/dist/lib/PlayerGlobal.js +223 -0
- package/dist/lib/SecurityDomain.d.ts +195 -0
- package/dist/lib/SecurityDomain.d.ts.map +1 -0
- package/dist/lib/SecurityDomain.js +205 -0
- package/dist/lib/Settings.d.ts +5 -0
- package/dist/lib/Settings.d.ts.map +1 -0
- package/dist/lib/Settings.js +7 -0
- package/dist/lib/desktop/Clipboard.d.ts +251 -0
- package/dist/lib/desktop/Clipboard.d.ts.map +1 -0
- package/dist/lib/desktop/Clipboard.js +289 -0
- package/dist/lib/desktop/ClipboardFormats.d.ts +43 -0
- package/dist/lib/desktop/ClipboardFormats.d.ts.map +1 -0
- package/dist/lib/desktop/ClipboardFormats.js +45 -0
- package/dist/lib/display/Bitmap.d.ts +91 -0
- package/dist/lib/display/Bitmap.d.ts.map +1 -0
- package/dist/lib/display/Bitmap.js +168 -0
- package/dist/lib/display/BitmapData.d.ts +63 -0
- package/dist/lib/display/BitmapData.d.ts.map +1 -0
- package/dist/lib/display/BitmapData.js +315 -0
- package/dist/lib/display/BitmapDataChannel.d.ts +12 -0
- package/dist/lib/display/BitmapDataChannel.d.ts.map +1 -0
- package/dist/lib/display/BitmapDataChannel.js +21 -0
- package/dist/lib/display/DisplayObject.d.ts +986 -0
- package/dist/lib/display/DisplayObject.d.ts.map +1 -0
- package/dist/lib/display/DisplayObject.js +1553 -0
- package/dist/lib/display/DisplayObjectContainer.d.ts +327 -0
- package/dist/lib/display/DisplayObjectContainer.d.ts.map +1 -0
- package/dist/lib/display/DisplayObjectContainer.js +599 -0
- package/dist/lib/display/FrameLabel.d.ts +11 -0
- package/dist/lib/display/FrameLabel.d.ts.map +1 -0
- package/dist/lib/display/FrameLabel.js +34 -0
- package/dist/lib/display/Graphics.d.ts +94 -0
- package/dist/lib/display/Graphics.d.ts.map +1 -0
- package/dist/lib/display/Graphics.js +473 -0
- package/dist/lib/display/GraphicsBitmapFill.d.ts +13 -0
- package/dist/lib/display/GraphicsBitmapFill.d.ts.map +1 -0
- package/dist/lib/display/GraphicsBitmapFill.js +36 -0
- package/dist/lib/display/GraphicsEndFill.d.ts +7 -0
- package/dist/lib/display/GraphicsEndFill.d.ts.map +1 -0
- package/dist/lib/display/GraphicsEndFill.js +11 -0
- package/dist/lib/display/GraphicsGradientFill.d.ts +16 -0
- package/dist/lib/display/GraphicsGradientFill.d.ts.map +1 -0
- package/dist/lib/display/GraphicsGradientFill.js +28 -0
- package/dist/lib/display/GraphicsPath.d.ts +22 -0
- package/dist/lib/display/GraphicsPath.d.ts.map +1 -0
- package/dist/lib/display/GraphicsPath.js +63 -0
- package/dist/lib/display/GraphicsSolidFill.d.ts +9 -0
- package/dist/lib/display/GraphicsSolidFill.d.ts.map +1 -0
- package/dist/lib/display/GraphicsSolidFill.js +16 -0
- package/dist/lib/display/GraphicsStroke.d.ts +14 -0
- package/dist/lib/display/GraphicsStroke.d.ts.map +1 -0
- package/dist/lib/display/GraphicsStroke.js +26 -0
- package/dist/lib/display/GraphicsTrianglePath.d.ts +11 -0
- package/dist/lib/display/GraphicsTrianglePath.d.ts.map +1 -0
- package/dist/lib/display/GraphicsTrianglePath.js +20 -0
- package/dist/lib/display/IBitmapDataOwner.d.ts +6 -0
- package/dist/lib/display/IBitmapDataOwner.d.ts.map +1 -0
- package/dist/lib/display/IBitmapDataOwner.js +1 -0
- package/dist/lib/display/IBitmapDrawable.d.ts +10 -0
- package/dist/lib/display/IBitmapDrawable.d.ts.map +1 -0
- package/dist/lib/display/IBitmapDrawable.js +1 -0
- package/dist/lib/display/IGraphicsData.d.ts +13 -0
- package/dist/lib/display/IGraphicsData.d.ts.map +1 -0
- package/dist/lib/display/IGraphicsData.js +1 -0
- package/dist/lib/display/IVirtualSceneGraphItem.d.ts +9 -0
- package/dist/lib/display/IVirtualSceneGraphItem.d.ts.map +1 -0
- package/dist/lib/display/IVirtualSceneGraphItem.js +1 -0
- package/dist/lib/display/InteractiveObject.d.ts +502 -0
- package/dist/lib/display/InteractiveObject.d.ts.map +1 -0
- package/dist/lib/display/InteractiveObject.js +927 -0
- package/dist/lib/display/Loader.d.ts +492 -0
- package/dist/lib/display/Loader.d.ts.map +1 -0
- package/dist/lib/display/Loader.js +704 -0
- package/dist/lib/display/LoaderInfo.d.ts +480 -0
- package/dist/lib/display/LoaderInfo.d.ts.map +1 -0
- package/dist/lib/display/LoaderInfo.js +765 -0
- package/dist/lib/display/MovieClip.d.ts +201 -0
- package/dist/lib/display/MovieClip.d.ts.map +1 -0
- package/dist/lib/display/MovieClip.js +540 -0
- package/dist/lib/display/NativeMenu.d.ts +8 -0
- package/dist/lib/display/NativeMenu.d.ts.map +1 -0
- package/dist/lib/display/NativeMenu.js +13 -0
- package/dist/lib/display/NativeMenuItem.d.ts +11 -0
- package/dist/lib/display/NativeMenuItem.d.ts.map +1 -0
- package/dist/lib/display/NativeMenuItem.js +35 -0
- package/dist/lib/display/Scene.d.ts +23 -0
- package/dist/lib/display/Scene.d.ts.map +1 -0
- package/dist/lib/display/Scene.js +70 -0
- package/dist/lib/display/Shape.d.ts +38 -0
- package/dist/lib/display/Shape.d.ts.map +1 -0
- package/dist/lib/display/Shape.js +80 -0
- package/dist/lib/display/SimpleButton.d.ts +175 -0
- package/dist/lib/display/SimpleButton.d.ts.map +1 -0
- package/dist/lib/display/SimpleButton.js +522 -0
- package/dist/lib/display/Sprite.d.ts +204 -0
- package/dist/lib/display/Sprite.d.ts.map +1 -0
- package/dist/lib/display/Sprite.js +671 -0
- package/dist/lib/display/Stage.d.ts +723 -0
- package/dist/lib/display/Stage.d.ts.map +1 -0
- package/dist/lib/display/Stage.js +1298 -0
- package/dist/lib/errors/EOFError.d.ts +8 -0
- package/dist/lib/errors/EOFError.d.ts.map +1 -0
- package/dist/lib/errors/EOFError.js +18 -0
- package/dist/lib/errors/IOError.d.ts +8 -0
- package/dist/lib/errors/IOError.d.ts.map +1 -0
- package/dist/lib/errors/IOError.js +18 -0
- package/dist/lib/errors/IllegalOperationError.d.ts +8 -0
- package/dist/lib/errors/IllegalOperationError.d.ts.map +1 -0
- package/dist/lib/errors/IllegalOperationError.js +18 -0
- package/dist/lib/errors/InvalidSWFError.d.ts +8 -0
- package/dist/lib/errors/InvalidSWFError.d.ts.map +1 -0
- package/dist/lib/errors/InvalidSWFError.js +18 -0
- package/dist/lib/errors/MemoryError.d.ts +8 -0
- package/dist/lib/errors/MemoryError.d.ts.map +1 -0
- package/dist/lib/errors/MemoryError.js +18 -0
- package/dist/lib/errors/ScriptTimeoutError.d.ts +8 -0
- package/dist/lib/errors/ScriptTimeoutError.d.ts.map +1 -0
- package/dist/lib/errors/ScriptTimeoutError.js +18 -0
- package/dist/lib/errors/StackOverflowError.d.ts +8 -0
- package/dist/lib/errors/StackOverflowError.d.ts.map +1 -0
- package/dist/lib/errors/StackOverflowError.js +18 -0
- package/dist/lib/events/AccelerometerEvent.d.ts +13 -0
- package/dist/lib/events/AccelerometerEvent.d.ts.map +1 -0
- package/dist/lib/events/AccelerometerEvent.js +26 -0
- package/dist/lib/events/ActivityEvent.d.ts +10 -0
- package/dist/lib/events/ActivityEvent.d.ts.map +1 -0
- package/dist/lib/events/ActivityEvent.js +20 -0
- package/dist/lib/events/AsyncErrorEvent.d.ts +13 -0
- package/dist/lib/events/AsyncErrorEvent.d.ts.map +1 -0
- package/dist/lib/events/AsyncErrorEvent.js +31 -0
- package/dist/lib/events/ContextMenuEvent.d.ts +13 -0
- package/dist/lib/events/ContextMenuEvent.d.ts.map +1 -0
- package/dist/lib/events/ContextMenuEvent.js +24 -0
- package/dist/lib/events/DataEvent.d.ts +10 -0
- package/dist/lib/events/DataEvent.d.ts.map +1 -0
- package/dist/lib/events/DataEvent.js +19 -0
- package/dist/lib/events/ErrorEvent.d.ts +30 -0
- package/dist/lib/events/ErrorEvent.d.ts.map +1 -0
- package/dist/lib/events/ErrorEvent.js +53 -0
- package/dist/lib/events/Event.d.ts +87 -0
- package/dist/lib/events/Event.d.ts.map +1 -0
- package/dist/lib/events/Event.js +213 -0
- package/dist/lib/events/EventDispatcher.d.ts +57 -0
- package/dist/lib/events/EventDispatcher.d.ts.map +1 -0
- package/dist/lib/events/EventDispatcher.js +233 -0
- package/dist/lib/events/EventDispatcherBase.d.ts +61 -0
- package/dist/lib/events/EventDispatcherBase.d.ts.map +1 -0
- package/dist/lib/events/EventDispatcherBase.js +258 -0
- package/dist/lib/events/EventPhase.d.ts +26 -0
- package/dist/lib/events/EventPhase.d.ts.map +1 -0
- package/dist/lib/events/EventPhase.js +33 -0
- package/dist/lib/events/FocusEvent.d.ts +50 -0
- package/dist/lib/events/FocusEvent.d.ts.map +1 -0
- package/dist/lib/events/FocusEvent.js +102 -0
- package/dist/lib/events/FullScreenEvent.d.ts +12 -0
- package/dist/lib/events/FullScreenEvent.d.ts.map +1 -0
- package/dist/lib/events/FullScreenEvent.js +23 -0
- package/dist/lib/events/GameInputEvent.d.ts +27 -0
- package/dist/lib/events/GameInputEvent.d.ts.map +1 -0
- package/dist/lib/events/GameInputEvent.js +38 -0
- package/dist/lib/events/GeolocationEvent.d.ts +9 -0
- package/dist/lib/events/GeolocationEvent.d.ts.map +1 -0
- package/dist/lib/events/GeolocationEvent.js +25 -0
- package/dist/lib/events/GestureEvent.d.ts +33 -0
- package/dist/lib/events/GestureEvent.d.ts.map +1 -0
- package/dist/lib/events/GestureEvent.js +121 -0
- package/dist/lib/events/GesturePhase.d.ts +12 -0
- package/dist/lib/events/GesturePhase.d.ts.map +1 -0
- package/dist/lib/events/GesturePhase.js +18 -0
- package/dist/lib/events/HTTPStatusEvent.d.ts +40 -0
- package/dist/lib/events/HTTPStatusEvent.d.ts.map +1 -0
- package/dist/lib/events/HTTPStatusEvent.js +88 -0
- package/dist/lib/events/IEventMapper.d.ts +7 -0
- package/dist/lib/events/IEventMapper.d.ts.map +1 -0
- package/dist/lib/events/IEventMapper.js +1 -0
- package/dist/lib/events/IMEEvent.d.ts +11 -0
- package/dist/lib/events/IMEEvent.d.ts.map +1 -0
- package/dist/lib/events/IMEEvent.js +23 -0
- package/dist/lib/events/IOErrorEvent.d.ts +30 -0
- package/dist/lib/events/IOErrorEvent.d.ts.map +1 -0
- package/dist/lib/events/IOErrorEvent.js +46 -0
- package/dist/lib/events/KeyboardEvent.d.ts +46 -0
- package/dist/lib/events/KeyboardEvent.d.ts.map +1 -0
- package/dist/lib/events/KeyboardEvent.js +115 -0
- package/dist/lib/events/MouseEvent.d.ts +88 -0
- package/dist/lib/events/MouseEvent.d.ts.map +1 -0
- package/dist/lib/events/MouseEvent.js +267 -0
- package/dist/lib/events/NetDataEvent.d.ts +12 -0
- package/dist/lib/events/NetDataEvent.d.ts.map +1 -0
- package/dist/lib/events/NetDataEvent.js +22 -0
- package/dist/lib/events/NetStatusEvent.d.ts +29 -0
- package/dist/lib/events/NetStatusEvent.d.ts.map +1 -0
- package/dist/lib/events/NetStatusEvent.js +52 -0
- package/dist/lib/events/OutputProgressEvent.d.ts +11 -0
- package/dist/lib/events/OutputProgressEvent.d.ts.map +1 -0
- package/dist/lib/events/OutputProgressEvent.js +22 -0
- package/dist/lib/events/PressAndTapGestureEvent.d.ts +11 -0
- package/dist/lib/events/PressAndTapGestureEvent.d.ts.map +1 -0
- package/dist/lib/events/PressAndTapGestureEvent.js +28 -0
- package/dist/lib/events/ProgressEvent.d.ts +33 -0
- package/dist/lib/events/ProgressEvent.d.ts.map +1 -0
- package/dist/lib/events/ProgressEvent.js +65 -0
- package/dist/lib/events/SampleDataEvent.d.ts +108 -0
- package/dist/lib/events/SampleDataEvent.d.ts.map +1 -0
- package/dist/lib/events/SampleDataEvent.js +140 -0
- package/dist/lib/events/ShaderEvent.d.ts +11 -0
- package/dist/lib/events/ShaderEvent.d.ts.map +1 -0
- package/dist/lib/events/ShaderEvent.js +20 -0
- package/dist/lib/events/SoftKeyboardEvent.d.ts +12 -0
- package/dist/lib/events/SoftKeyboardEvent.d.ts.map +1 -0
- package/dist/lib/events/SoftKeyboardEvent.js +17 -0
- package/dist/lib/events/SoftKeyboardTrigger.d.ts +10 -0
- package/dist/lib/events/SoftKeyboardTrigger.d.ts.map +1 -0
- package/dist/lib/events/SoftKeyboardTrigger.js +16 -0
- package/dist/lib/events/StageVideoAvailabilityEvent.d.ts +10 -0
- package/dist/lib/events/StageVideoAvailabilityEvent.d.ts.map +1 -0
- package/dist/lib/events/StageVideoAvailabilityEvent.js +21 -0
- package/dist/lib/events/StageVideoEvent.d.ts +14 -0
- package/dist/lib/events/StageVideoEvent.d.ts.map +1 -0
- package/dist/lib/events/StageVideoEvent.js +26 -0
- package/dist/lib/events/StaticEvents.d.ts +4 -0
- package/dist/lib/events/StaticEvents.d.ts.map +1 -0
- package/dist/lib/events/StaticEvents.js +7 -0
- package/dist/lib/events/StatusEvent.d.ts +15 -0
- package/dist/lib/events/StatusEvent.d.ts.map +1 -0
- package/dist/lib/events/StatusEvent.js +46 -0
- package/dist/lib/events/SyncEvent.d.ts +10 -0
- package/dist/lib/events/SyncEvent.d.ts.map +1 -0
- package/dist/lib/events/SyncEvent.js +21 -0
- package/dist/lib/events/TextEvent.d.ts +31 -0
- package/dist/lib/events/TextEvent.d.ts.map +1 -0
- package/dist/lib/events/TextEvent.js +55 -0
- package/dist/lib/events/ThrottleEvent.d.ts +11 -0
- package/dist/lib/events/ThrottleEvent.d.ts.map +1 -0
- package/dist/lib/events/ThrottleEvent.js +23 -0
- package/dist/lib/events/ThrottleType.d.ts +11 -0
- package/dist/lib/events/ThrottleType.d.ts.map +1 -0
- package/dist/lib/events/ThrottleType.js +17 -0
- package/dist/lib/events/TimerEvent.d.ts +13 -0
- package/dist/lib/events/TimerEvent.d.ts.map +1 -0
- package/dist/lib/events/TimerEvent.js +26 -0
- package/dist/lib/events/TouchEvent.d.ts +430 -0
- package/dist/lib/events/TouchEvent.d.ts.map +1 -0
- package/dist/lib/events/TouchEvent.js +550 -0
- package/dist/lib/events/TransformGestureEvent.d.ts +12 -0
- package/dist/lib/events/TransformGestureEvent.d.ts.map +1 -0
- package/dist/lib/events/TransformGestureEvent.js +31 -0
- package/dist/lib/events/UncaughtErrorEvent.d.ts +9 -0
- package/dist/lib/events/UncaughtErrorEvent.d.ts.map +1 -0
- package/dist/lib/events/UncaughtErrorEvent.js +19 -0
- package/dist/lib/events/UncaughtErrorEvents.d.ts +23 -0
- package/dist/lib/events/UncaughtErrorEvents.d.ts.map +1 -0
- package/dist/lib/events/UncaughtErrorEvents.js +29 -0
- package/dist/lib/events/VideoEvent.d.ts +13 -0
- package/dist/lib/events/VideoEvent.d.ts.map +1 -0
- package/dist/lib/events/VideoEvent.js +24 -0
- package/dist/lib/external/ExternalInterface.d.ts +27 -0
- package/dist/lib/external/ExternalInterface.d.ts.map +1 -0
- package/dist/lib/external/ExternalInterface.js +298 -0
- package/dist/lib/factories/FlashSceneGraphFactory.d.ts +33 -0
- package/dist/lib/factories/FlashSceneGraphFactory.d.ts.map +1 -0
- package/dist/lib/factories/FlashSceneGraphFactory.js +175 -0
- package/dist/lib/filters/BevelFilter.d.ts +66 -0
- package/dist/lib/filters/BevelFilter.d.ts.map +1 -0
- package/dist/lib/filters/BevelFilter.js +207 -0
- package/dist/lib/filters/BitmapFilter.d.ts +27 -0
- package/dist/lib/filters/BitmapFilter.d.ts.map +1 -0
- package/dist/lib/filters/BitmapFilter.js +116 -0
- package/dist/lib/filters/BitmapFilterType.d.ts +26 -0
- package/dist/lib/filters/BitmapFilterType.d.ts.map +1 -0
- package/dist/lib/filters/BitmapFilterType.js +36 -0
- package/dist/lib/filters/BlurFilter.d.ts +23 -0
- package/dist/lib/filters/BlurFilter.d.ts.map +1 -0
- package/dist/lib/filters/BlurFilter.js +64 -0
- package/dist/lib/filters/ColorMatrixFilter.d.ts +39 -0
- package/dist/lib/filters/ColorMatrixFilter.d.ts.map +1 -0
- package/dist/lib/filters/ColorMatrixFilter.js +69 -0
- package/dist/lib/filters/ConvolutionFilter.d.ts +54 -0
- package/dist/lib/filters/ConvolutionFilter.d.ts.map +1 -0
- package/dist/lib/filters/ConvolutionFilter.js +180 -0
- package/dist/lib/filters/DisplacementMapFilter.d.ts +57 -0
- package/dist/lib/filters/DisplacementMapFilter.d.ts.map +1 -0
- package/dist/lib/filters/DisplacementMapFilter.js +159 -0
- package/dist/lib/filters/DropShadowFilter.d.ts +63 -0
- package/dist/lib/filters/DropShadowFilter.d.ts.map +1 -0
- package/dist/lib/filters/DropShadowFilter.js +185 -0
- package/dist/lib/filters/FilterBuilder.d.ts +6 -0
- package/dist/lib/filters/FilterBuilder.d.ts.map +1 -0
- package/dist/lib/filters/FilterBuilder.js +33 -0
- package/dist/lib/filters/GlowFilter.d.ts +53 -0
- package/dist/lib/filters/GlowFilter.d.ts.map +1 -0
- package/dist/lib/filters/GlowFilter.js +145 -0
- package/dist/lib/filters/GradientBevelFilter.d.ts +68 -0
- package/dist/lib/filters/GradientBevelFilter.d.ts.map +1 -0
- package/dist/lib/filters/GradientBevelFilter.js +228 -0
- package/dist/lib/filters/GradientGlowFilter.d.ts +59 -0
- package/dist/lib/filters/GradientGlowFilter.d.ts.map +1 -0
- package/dist/lib/filters/GradientGlowFilter.js +223 -0
- package/dist/lib/geom/ColorTransform.d.ts +91 -0
- package/dist/lib/geom/ColorTransform.d.ts.map +1 -0
- package/dist/lib/geom/ColorTransform.js +259 -0
- package/dist/lib/geom/Matrix.d.ts +288 -0
- package/dist/lib/geom/Matrix.d.ts.map +1 -0
- package/dist/lib/geom/Matrix.js +414 -0
- package/dist/lib/geom/Matrix3D.d.ts +45 -0
- package/dist/lib/geom/Matrix3D.d.ts.map +1 -0
- package/dist/lib/geom/Matrix3D.js +213 -0
- package/dist/lib/geom/PerspectiveProjection.d.ts +2 -0
- package/dist/lib/geom/PerspectiveProjection.d.ts.map +1 -0
- package/dist/lib/geom/PerspectiveProjection.js +1 -0
- package/dist/lib/geom/Point.d.ts +123 -0
- package/dist/lib/geom/Point.d.ts.map +1 -0
- package/dist/lib/geom/Point.js +196 -0
- package/dist/lib/geom/Rectangle.d.ts +310 -0
- package/dist/lib/geom/Rectangle.d.ts.map +1 -0
- package/dist/lib/geom/Rectangle.js +478 -0
- package/dist/lib/geom/Transform.d.ts +42 -0
- package/dist/lib/geom/Transform.d.ts.map +1 -0
- package/dist/lib/geom/Transform.js +112 -0
- package/dist/lib/geom/Vector3D.d.ts +324 -0
- package/dist/lib/geom/Vector3D.d.ts.map +1 -0
- package/dist/lib/geom/Vector3D.js +434 -0
- package/dist/lib/globalization/LocaleID.d.ts +38 -0
- package/dist/lib/globalization/LocaleID.d.ts.map +1 -0
- package/dist/lib/globalization/LocaleID.js +92 -0
- package/dist/lib/globalization/NumberFormatter.d.ts +391 -0
- package/dist/lib/globalization/NumberFormatter.d.ts.map +1 -0
- package/dist/lib/globalization/NumberFormatter.js +555 -0
- package/dist/lib/link.d.ts +2 -0
- package/dist/lib/link.d.ts.map +1 -0
- package/dist/lib/link.js +619 -0
- package/dist/lib/media/ID3Info.d.ts +60 -0
- package/dist/lib/media/ID3Info.d.ts.map +1 -0
- package/dist/lib/media/ID3Info.js +13 -0
- package/dist/lib/media/Sound.d.ts +353 -0
- package/dist/lib/media/Sound.d.ts.map +1 -0
- package/dist/lib/media/Sound.js +496 -0
- package/dist/lib/media/SoundChannel.d.ts +65 -0
- package/dist/lib/media/SoundChannel.d.ts.map +1 -0
- package/dist/lib/media/SoundChannel.js +152 -0
- package/dist/lib/media/SoundLoaderContext.d.ts +99 -0
- package/dist/lib/media/SoundLoaderContext.d.ts.map +1 -0
- package/dist/lib/media/SoundLoaderContext.js +21 -0
- package/dist/lib/media/SoundMixer.d.ts +49 -0
- package/dist/lib/media/SoundMixer.d.ts.map +1 -0
- package/dist/lib/media/SoundMixer.js +126 -0
- package/dist/lib/media/SoundTransform.d.ts +64 -0
- package/dist/lib/media/SoundTransform.d.ts.map +1 -0
- package/dist/lib/media/SoundTransform.js +146 -0
- package/dist/lib/net/FileFilter.d.ts +13 -0
- package/dist/lib/net/FileFilter.d.ts.map +1 -0
- package/dist/lib/net/FileFilter.js +40 -0
- package/dist/lib/net/FileReference.d.ts +49 -0
- package/dist/lib/net/FileReference.d.ts.map +1 -0
- package/dist/lib/net/FileReference.js +271 -0
- package/dist/lib/net/LocalConnection.d.ts +26 -0
- package/dist/lib/net/LocalConnection.d.ts.map +1 -0
- package/dist/lib/net/LocalConnection.js +251 -0
- package/dist/lib/net/NetConnection.d.ts +80 -0
- package/dist/lib/net/NetConnection.d.ts.map +1 -0
- package/dist/lib/net/NetConnection.js +447 -0
- package/dist/lib/net/Responder.d.ts +30 -0
- package/dist/lib/net/Responder.d.ts.map +1 -0
- package/dist/lib/net/Responder.js +49 -0
- package/dist/lib/net/SharedObject.d.ts +66 -0
- package/dist/lib/net/SharedObject.d.ts.map +1 -0
- package/dist/lib/net/SharedObject.js +323 -0
- package/dist/lib/net/Socket.d.ts +66 -0
- package/dist/lib/net/Socket.d.ts.map +1 -0
- package/dist/lib/net/Socket.js +248 -0
- package/dist/lib/net/URLLoader.d.ts +26 -0
- package/dist/lib/net/URLLoader.d.ts.map +1 -0
- package/dist/lib/net/URLLoader.js +116 -0
- package/dist/lib/net/URLLoaderDataFormat.d.ts +2 -0
- package/dist/lib/net/URLLoaderDataFormat.d.ts.map +1 -0
- package/dist/lib/net/URLLoaderDataFormat.js +1 -0
- package/dist/lib/net/URLRequest.d.ts +43 -0
- package/dist/lib/net/URLRequest.d.ts.map +1 -0
- package/dist/lib/net/URLRequest.js +141 -0
- package/dist/lib/net/URLVariables.d.ts +12 -0
- package/dist/lib/net/URLVariables.d.ts.map +1 -0
- package/dist/lib/net/URLVariables.js +67 -0
- package/dist/lib/system/ApplicationDomain.d.ts +104 -0
- package/dist/lib/system/ApplicationDomain.d.ts.map +1 -0
- package/dist/lib/system/ApplicationDomain.js +269 -0
- package/dist/lib/system/Capabilities.d.ts +58 -0
- package/dist/lib/system/Capabilities.d.ts.map +1 -0
- package/dist/lib/system/Capabilities.js +361 -0
- package/dist/lib/system/FSCommand.d.ts +5 -0
- package/dist/lib/system/FSCommand.d.ts.map +1 -0
- package/dist/lib/system/FSCommand.js +14 -0
- package/dist/lib/system/IME.d.ts +125 -0
- package/dist/lib/system/IME.d.ts.map +1 -0
- package/dist/lib/system/IME.js +163 -0
- package/dist/lib/system/LoaderContext.d.ts +421 -0
- package/dist/lib/system/LoaderContext.d.ts.map +1 -0
- package/dist/lib/system/LoaderContext.js +62 -0
- package/dist/lib/system/Security.d.ts +45 -0
- package/dist/lib/system/Security.d.ts.map +1 -0
- package/dist/lib/system/Security.js +107 -0
- package/dist/lib/system/SecurityDomain.d.ts +5 -0
- package/dist/lib/system/SecurityDomain.d.ts.map +1 -0
- package/dist/lib/system/SecurityDomain.js +18 -0
- package/dist/lib/system/System.d.ts +150 -0
- package/dist/lib/system/System.d.ts.map +1 -0
- package/dist/lib/system/System.js +238 -0
- package/dist/lib/system/TouchscreenType.d.ts +26 -0
- package/dist/lib/system/TouchscreenType.d.ts.map +1 -0
- package/dist/lib/system/TouchscreenType.js +35 -0
- package/dist/lib/text/CSMSettings.d.ts +11 -0
- package/dist/lib/text/CSMSettings.d.ts.map +1 -0
- package/dist/lib/text/CSMSettings.js +20 -0
- package/dist/lib/text/Font.d.ts +18 -0
- package/dist/lib/text/Font.d.ts.map +1 -0
- package/dist/lib/text/Font.js +70 -0
- package/dist/lib/text/FontType.d.ts +11 -0
- package/dist/lib/text/FontType.d.ts.map +1 -0
- package/dist/lib/text/FontType.js +17 -0
- package/dist/lib/text/StaticText.d.ts +13 -0
- package/dist/lib/text/StaticText.d.ts.map +1 -0
- package/dist/lib/text/StaticText.js +41 -0
- package/dist/lib/text/StyleSheet.d.ts +168 -0
- package/dist/lib/text/StyleSheet.d.ts.map +1 -0
- package/dist/lib/text/StyleSheet.js +198 -0
- package/dist/lib/text/TextColorType.d.ts +10 -0
- package/dist/lib/text/TextColorType.d.ts.map +1 -0
- package/dist/lib/text/TextColorType.js +15 -0
- package/dist/lib/text/TextDisplayMode.d.ts +11 -0
- package/dist/lib/text/TextDisplayMode.d.ts.map +1 -0
- package/dist/lib/text/TextDisplayMode.js +16 -0
- package/dist/lib/text/TextExtent.d.ts +11 -0
- package/dist/lib/text/TextExtent.d.ts.map +1 -0
- package/dist/lib/text/TextExtent.js +20 -0
- package/dist/lib/text/TextField.d.ts +911 -0
- package/dist/lib/text/TextField.d.ts.map +1 -0
- package/dist/lib/text/TextField.js +1398 -0
- package/dist/lib/text/TextFormat.d.ts +61 -0
- package/dist/lib/text/TextFormat.d.ts.map +1 -0
- package/dist/lib/text/TextFormat.js +266 -0
- package/dist/lib/text/TextFormatDisplay.d.ts +10 -0
- package/dist/lib/text/TextFormatDisplay.d.ts.map +1 -0
- package/dist/lib/text/TextFormatDisplay.js +19 -0
- package/dist/lib/text/TextLineMetrics.d.ts +57 -0
- package/dist/lib/text/TextLineMetrics.d.ts.map +1 -0
- package/dist/lib/text/TextLineMetrics.js +38 -0
- package/dist/lib/text/TextRenderer.d.ts +15 -0
- package/dist/lib/text/TextRenderer.d.ts.map +1 -0
- package/dist/lib/text/TextRenderer.js +71 -0
- package/dist/lib/text/TextRun.d.ts +19 -0
- package/dist/lib/text/TextRun.d.ts.map +1 -0
- package/dist/lib/text/TextRun.js +54 -0
- package/dist/lib/text/TextSnapshot.d.ts +15 -0
- package/dist/lib/text/TextSnapshot.d.ts.map +1 -0
- package/dist/lib/text/TextSnapshot.js +83 -0
- package/dist/lib/text/engine/BreakOpportunity.d.ts +11 -0
- package/dist/lib/text/engine/BreakOpportunity.d.ts.map +1 -0
- package/dist/lib/text/engine/BreakOpportunity.js +16 -0
- package/dist/lib/text/engine/CFFHinting.d.ts +9 -0
- package/dist/lib/text/engine/CFFHinting.d.ts.map +1 -0
- package/dist/lib/text/engine/CFFHinting.js +14 -0
- package/dist/lib/text/engine/ContentElement.d.ts +37 -0
- package/dist/lib/text/engine/ContentElement.d.ts.map +1 -0
- package/dist/lib/text/engine/ContentElement.js +123 -0
- package/dist/lib/text/engine/DigitCase.d.ts +10 -0
- package/dist/lib/text/engine/DigitCase.d.ts.map +1 -0
- package/dist/lib/text/engine/DigitCase.js +16 -0
- package/dist/lib/text/engine/DigitWidth.d.ts +10 -0
- package/dist/lib/text/engine/DigitWidth.d.ts.map +1 -0
- package/dist/lib/text/engine/DigitWidth.js +16 -0
- package/dist/lib/text/engine/EastAsianJustifier.d.ts +12 -0
- package/dist/lib/text/engine/EastAsianJustifier.d.ts.map +1 -0
- package/dist/lib/text/engine/EastAsianJustifier.js +50 -0
- package/dist/lib/text/engine/ElementFormat.d.ts +69 -0
- package/dist/lib/text/engine/ElementFormat.d.ts.map +1 -0
- package/dist/lib/text/engine/ElementFormat.js +291 -0
- package/dist/lib/text/engine/FontDescription.d.ts +31 -0
- package/dist/lib/text/engine/FontDescription.d.ts.map +1 -0
- package/dist/lib/text/engine/FontDescription.js +113 -0
- package/dist/lib/text/engine/FontLookup.d.ts +9 -0
- package/dist/lib/text/engine/FontLookup.d.ts.map +1 -0
- package/dist/lib/text/engine/FontLookup.js +15 -0
- package/dist/lib/text/engine/FontMetrics.d.ts +18 -0
- package/dist/lib/text/engine/FontMetrics.d.ts.map +1 -0
- package/dist/lib/text/engine/FontMetrics.js +24 -0
- package/dist/lib/text/engine/FontPosture.d.ts +9 -0
- package/dist/lib/text/engine/FontPosture.d.ts.map +1 -0
- package/dist/lib/text/engine/FontPosture.js +15 -0
- package/dist/lib/text/engine/FontWeight.d.ts +9 -0
- package/dist/lib/text/engine/FontWeight.d.ts.map +1 -0
- package/dist/lib/text/engine/FontWeight.js +15 -0
- package/dist/lib/text/engine/GraphicElement.d.ts +16 -0
- package/dist/lib/text/engine/GraphicElement.d.ts.map +1 -0
- package/dist/lib/text/engine/GraphicElement.js +72 -0
- package/dist/lib/text/engine/GroupElement.d.ts +23 -0
- package/dist/lib/text/engine/GroupElement.d.ts.map +1 -0
- package/dist/lib/text/engine/GroupElement.js +102 -0
- package/dist/lib/text/engine/JustificationStyle.d.ts +10 -0
- package/dist/lib/text/engine/JustificationStyle.d.ts.map +1 -0
- package/dist/lib/text/engine/JustificationStyle.js +16 -0
- package/dist/lib/text/engine/Kerning.d.ts +10 -0
- package/dist/lib/text/engine/Kerning.d.ts.map +1 -0
- package/dist/lib/text/engine/Kerning.js +16 -0
- package/dist/lib/text/engine/LigatureLevel.d.ts +12 -0
- package/dist/lib/text/engine/LigatureLevel.d.ts.map +1 -0
- package/dist/lib/text/engine/LigatureLevel.js +18 -0
- package/dist/lib/text/engine/LineJustification.d.ts +11 -0
- package/dist/lib/text/engine/LineJustification.d.ts.map +1 -0
- package/dist/lib/text/engine/LineJustification.js +17 -0
- package/dist/lib/text/engine/NativehacksForTLF.d.ts +22 -0
- package/dist/lib/text/engine/NativehacksForTLF.d.ts.map +1 -0
- package/dist/lib/text/engine/NativehacksForTLF.js +70 -0
- package/dist/lib/text/engine/RenderingMode.d.ts +9 -0
- package/dist/lib/text/engine/RenderingMode.d.ts.map +1 -0
- package/dist/lib/text/engine/RenderingMode.js +15 -0
- package/dist/lib/text/engine/SpaceJustifier.d.ts +20 -0
- package/dist/lib/text/engine/SpaceJustifier.d.ts.map +1 -0
- package/dist/lib/text/engine/SpaceJustifier.js +58 -0
- package/dist/lib/text/engine/TabAlignment.d.ts +11 -0
- package/dist/lib/text/engine/TabAlignment.d.ts.map +1 -0
- package/dist/lib/text/engine/TabAlignment.js +17 -0
- package/dist/lib/text/engine/TabStop.d.ts +13 -0
- package/dist/lib/text/engine/TabStop.d.ts.map +1 -0
- package/dist/lib/text/engine/TabStop.js +66 -0
- package/dist/lib/text/engine/TextBaseline.d.ts +14 -0
- package/dist/lib/text/engine/TextBaseline.d.ts.map +1 -0
- package/dist/lib/text/engine/TextBaseline.js +20 -0
- package/dist/lib/text/engine/TextBlock.d.ts +76 -0
- package/dist/lib/text/engine/TextBlock.d.ts.map +1 -0
- package/dist/lib/text/engine/TextBlock.js +500 -0
- package/dist/lib/text/engine/TextElement.d.ts +12 -0
- package/dist/lib/text/engine/TextElement.d.ts.map +1 -0
- package/dist/lib/text/engine/TextElement.js +45 -0
- package/dist/lib/text/engine/TextJustifier.d.ts +15 -0
- package/dist/lib/text/engine/TextJustifier.d.ts.map +1 -0
- package/dist/lib/text/engine/TextJustifier.js +46 -0
- package/dist/lib/text/engine/TextLine.d.ts +86 -0
- package/dist/lib/text/engine/TextLine.d.ts.map +1 -0
- package/dist/lib/text/engine/TextLine.js +381 -0
- package/dist/lib/text/engine/TextLineCreationResult.d.ts +11 -0
- package/dist/lib/text/engine/TextLineCreationResult.d.ts.map +1 -0
- package/dist/lib/text/engine/TextLineCreationResult.js +17 -0
- package/dist/lib/text/engine/TextLineMirrorRegion.d.ts +17 -0
- package/dist/lib/text/engine/TextLineMirrorRegion.d.ts.map +1 -0
- package/dist/lib/text/engine/TextLineMirrorRegion.js +75 -0
- package/dist/lib/text/engine/TextLineValidity.d.ts +11 -0
- package/dist/lib/text/engine/TextLineValidity.d.ts.map +1 -0
- package/dist/lib/text/engine/TextLineValidity.js +17 -0
- package/dist/lib/text/engine/TextRotation.d.ts +12 -0
- package/dist/lib/text/engine/TextRotation.d.ts.map +1 -0
- package/dist/lib/text/engine/TextRotation.js +18 -0
- package/dist/lib/text/engine/TypographicCase.d.ts +14 -0
- package/dist/lib/text/engine/TypographicCase.d.ts.map +1 -0
- package/dist/lib/text/engine/TypographicCase.js +20 -0
- package/dist/lib/text/ime/CompositionAttributeRange.d.ts +12 -0
- package/dist/lib/text/ime/CompositionAttributeRange.d.ts.map +1 -0
- package/dist/lib/text/ime/CompositionAttributeRange.js +20 -0
- package/dist/lib/ui/ContextMenu.d.ts +29 -0
- package/dist/lib/ui/ContextMenu.d.ts.map +1 -0
- package/dist/lib/ui/ContextMenu.js +128 -0
- package/dist/lib/ui/ContextMenuBuiltInItems.d.ts +31 -0
- package/dist/lib/ui/ContextMenuBuiltInItems.d.ts.map +1 -0
- package/dist/lib/ui/ContextMenuBuiltInItems.js +112 -0
- package/dist/lib/ui/ContextMenuClipboardItems.d.ts +24 -0
- package/dist/lib/ui/ContextMenuClipboardItems.d.ts.map +1 -0
- package/dist/lib/ui/ContextMenuClipboardItems.js +99 -0
- package/dist/lib/ui/ContextMenuItem.d.ts +19 -0
- package/dist/lib/ui/ContextMenuItem.d.ts.map +1 -0
- package/dist/lib/ui/ContextMenuItem.js +62 -0
- package/dist/lib/ui/GameInput.d.ts +12 -0
- package/dist/lib/ui/GameInput.d.ts.map +1 -0
- package/dist/lib/ui/GameInput.js +49 -0
- package/dist/lib/ui/GameInputControl.d.ts +17 -0
- package/dist/lib/ui/GameInputControl.d.ts.map +1 -0
- package/dist/lib/ui/GameInputControl.js +95 -0
- package/dist/lib/ui/GameInputControlType.d.ts +14 -0
- package/dist/lib/ui/GameInputControlType.d.ts.map +1 -0
- package/dist/lib/ui/GameInputControlType.js +23 -0
- package/dist/lib/ui/GameInputDevice.d.ts +21 -0
- package/dist/lib/ui/GameInputDevice.d.ts.map +1 -0
- package/dist/lib/ui/GameInputDevice.js +105 -0
- package/dist/lib/ui/GameInputFinger.d.ts +12 -0
- package/dist/lib/ui/GameInputFinger.d.ts.map +1 -0
- package/dist/lib/ui/GameInputFinger.js +21 -0
- package/dist/lib/ui/GameInputHand.d.ts +11 -0
- package/dist/lib/ui/GameInputHand.d.ts.map +1 -0
- package/dist/lib/ui/GameInputHand.js +20 -0
- package/dist/lib/ui/Keyboard.d.ts +36 -0
- package/dist/lib/ui/Keyboard.d.ts.map +1 -0
- package/dist/lib/ui/Keyboard.js +383 -0
- package/dist/lib/ui/Mouse.d.ts +14 -0
- package/dist/lib/ui/Mouse.d.ts.map +1 -0
- package/dist/lib/ui/Mouse.js +78 -0
- package/dist/lib/ui/MouseCursorData.d.ts +24 -0
- package/dist/lib/ui/MouseCursorData.d.ts.map +1 -0
- package/dist/lib/ui/MouseCursorData.js +55 -0
- package/dist/lib/ui/Multitouch.d.ts +78 -0
- package/dist/lib/ui/Multitouch.d.ts.map +1 -0
- package/dist/lib/ui/Multitouch.js +135 -0
- package/dist/lib/ui/MultitouchInputMode.d.ts +26 -0
- package/dist/lib/ui/MultitouchInputMode.d.ts.map +1 -0
- package/dist/lib/ui/MultitouchInputMode.js +29 -0
- package/dist/lib/utils/ByteArray.d.ts +2 -0
- package/dist/lib/utils/ByteArray.d.ts.map +1 -0
- package/dist/lib/utils/ByteArray.js +1 -0
- package/dist/lib/utils/CompressionAlgorithm.d.ts +7 -0
- package/dist/lib/utils/CompressionAlgorithm.d.ts.map +1 -0
- package/dist/lib/utils/CompressionAlgorithm.js +13 -0
- package/dist/lib/utils/IDataInput.d.ts +175 -0
- package/dist/lib/utils/IDataInput.d.ts.map +1 -0
- package/dist/lib/utils/IDataInput.js +1 -0
- package/dist/lib/utils/IDataOutput.d.ts +131 -0
- package/dist/lib/utils/IDataOutput.d.ts.map +1 -0
- package/dist/lib/utils/IDataOutput.js +1 -0
- package/dist/lib/utils/IExternalizable.d.ts +35 -0
- package/dist/lib/utils/IExternalizable.d.ts.map +1 -0
- package/dist/lib/utils/IExternalizable.js +1 -0
- package/dist/lib/utils/Timer.d.ts +28 -0
- package/dist/lib/utils/Timer.d.ts.map +1 -0
- package/dist/lib/utils/Timer.js +115 -0
- package/index.ts +21 -0
- package/lib/ILoader.ts +14 -0
- package/lib/PlayerGlobal.ts +278 -0
- package/lib/RegisterCode.ts +10 -0
- package/lib/SecurityDomain.ts +194 -0
- package/lib/Settings.ts +15 -0
- package/lib/_shumway_flash/accessibility/Accessibility.ts +40 -0
- package/lib/_shumway_flash/accessibility/AccessibilityImplementation.ts +40 -0
- package/lib/_shumway_flash/accessibility/AccessibilityProperties.ts +29 -0
- package/lib/_shumway_flash/accessibility/ISearchableText.ts +4 -0
- package/lib/_shumway_flash/accessibility/ISimpleTextSelection.ts +4 -0
- package/lib/_shumway_flash/automation/ActionGenerator.ts +14 -0
- package/lib/_shumway_flash/automation/AutomationAction.ts +14 -0
- package/lib/_shumway_flash/automation/Configuration.ts +23 -0
- package/lib/_shumway_flash/automation/KeyboardAutomationAction.ts +16 -0
- package/lib/_shumway_flash/automation/MouseAutomationAction.ts +20 -0
- package/lib/_shumway_flash/automation/StageCapture.ts +50 -0
- package/lib/_shumway_flash/automation/StageCaptureEvent.ts +21 -0
- package/lib/_shumway_flash/desktop/ClipboardTransferMode.ts +24 -0
- package/lib/_shumway_flash/display/AVM1Movie.ts +157 -0
- package/lib/_shumway_flash/display/ActionScriptVersion.ts +21 -0
- package/lib/_shumway_flash/display/BitmapEncodingColorSpace.ts +24 -0
- package/lib/_shumway_flash/display/ColorCorrection.ts +50 -0
- package/lib/_shumway_flash/display/ColorCorrectionSupport.ts +50 -0
- package/lib/_shumway_flash/display/FocusDirection.ts +23 -0
- package/lib/_shumway_flash/display/GraphicsBitmapFill.ts +35 -0
- package/lib/_shumway_flash/display/GraphicsEndFill.ts +23 -0
- package/lib/_shumway_flash/display/GraphicsGradientFill.ts +31 -0
- package/lib/_shumway_flash/display/GraphicsShaderFill.ts +30 -0
- package/lib/_shumway_flash/display/GraphicsSolidFill.ts +28 -0
- package/lib/_shumway_flash/display/GraphicsStroke.ts +48 -0
- package/lib/_shumway_flash/display/GraphicsTrianglePath.ts +38 -0
- package/lib/_shumway_flash/display/JPEGEncoderOptions.ts +25 -0
- package/lib/_shumway_flash/display/JPEGXREncoderOptions.ts +24 -0
- package/lib/_shumway_flash/display/MorphShape.ts +70 -0
- package/lib/_shumway_flash/display/PNGEncoderOptions.ts +25 -0
- package/lib/_shumway_flash/display/SWFVersion.ts +34 -0
- package/lib/_shumway_flash/display/Shader.ts +46 -0
- package/lib/_shumway_flash/display/ShaderData.ts +20 -0
- package/lib/_shumway_flash/display/ShaderInput.ts +63 -0
- package/lib/_shumway_flash/display/ShaderJob.ts +81 -0
- package/lib/_shumway_flash/display/ShaderParameter.ts +43 -0
- package/lib/_shumway_flash/display/ShaderParameterType.ts +37 -0
- package/lib/_shumway_flash/display/ShaderPrecision.ts +24 -0
- package/lib/_shumway_flash/display/Stage3D.ts +64 -0
- package/lib/_shumway_flash/display/StageAlign.ts +69 -0
- package/lib/_shumway_flash/display/StageDisplayState.ts +50 -0
- package/lib/_shumway_flash/display/StageQuality.ts +75 -0
- package/lib/_shumway_flash/display/StageScaleMode.ts +66 -0
- package/lib/_shumway_flash/display/interfaces.ts +6 -0
- package/lib/_shumway_flash/display3D/Context3DBlendFactor.ts +50 -0
- package/lib/_shumway_flash/display3D/Context3DCompareMode.ts +48 -0
- package/lib/_shumway_flash/display3D/Context3DProfile.ts +42 -0
- package/lib/_shumway_flash/display3D/Context3DRenderMode.ts +42 -0
- package/lib/_shumway_flash/display3D/Context3DStencilAction.ts +48 -0
- package/lib/_shumway_flash/display3D/Context3DTextureFormat.ts +43 -0
- package/lib/_shumway_flash/display3D/Context3DTriangleFace.ts +44 -0
- package/lib/_shumway_flash/display3D/Context3DVertexBufferFormat.ts +45 -0
- package/lib/_shumway_flash/display3D/IndexBuffer3D.ts +53 -0
- package/lib/_shumway_flash/display3D/Program3D.ts +48 -0
- package/lib/_shumway_flash/display3D/VertexBuffer3D.ts +35 -0
- package/lib/_shumway_flash/display3D/textures/CubeTexture.ts +50 -0
- package/lib/_shumway_flash/display3D/textures/TextureBase.ts +39 -0
- package/lib/_shumway_flash/filters/BitmapFilterQuality.ts +25 -0
- package/lib/_shumway_flash/filters/DisplacementMapFilterMode.ts +25 -0
- package/lib/_shumway_flash/filters/ShaderFilter.ts +43 -0
- package/lib/_shumway_flash/globalization/Collator.ts +148 -0
- package/lib/_shumway_flash/globalization/CollatorMode.ts +37 -0
- package/lib/_shumway_flash/globalization/CurrencyFormatter.ts +232 -0
- package/lib/_shumway_flash/globalization/CurrencyParseResult.ts +57 -0
- package/lib/_shumway_flash/globalization/DateTimeFormatter.ts +110 -0
- package/lib/_shumway_flash/globalization/DateTimeNameContext.ts +42 -0
- package/lib/_shumway_flash/globalization/DateTimeNameStyle.ts +43 -0
- package/lib/_shumway_flash/globalization/DateTimeStyle.ts +45 -0
- package/lib/_shumway_flash/globalization/LastOperationStatus.ts +57 -0
- package/lib/_shumway_flash/globalization/LocaleID.ts +86 -0
- package/lib/_shumway_flash/globalization/NationalDigitsType.ts +72 -0
- package/lib/_shumway_flash/globalization/NumberParseResult.ts +63 -0
- package/lib/_shumway_flash/media/AudioDecoder.ts +44 -0
- package/lib/_shumway_flash/media/Camera.ts +167 -0
- package/lib/_shumway_flash/media/H264Level.ts +54 -0
- package/lib/_shumway_flash/media/H264Profile.ts +40 -0
- package/lib/_shumway_flash/media/H264VideoStreamSettings.ts +48 -0
- package/lib/_shumway_flash/media/Microphone.ts +217 -0
- package/lib/_shumway_flash/media/MicrophoneEnhancedMode.ts +43 -0
- package/lib/_shumway_flash/media/MicrophoneEnhancedOptions.ts +49 -0
- package/lib/_shumway_flash/media/SoundCodec.ts +42 -0
- package/lib/_shumway_flash/media/StageVideo.ts +119 -0
- package/lib/_shumway_flash/media/StageVideoAvailability.ts +40 -0
- package/lib/_shumway_flash/media/Video.ts +151 -0
- package/lib/_shumway_flash/media/VideoCodec.ts +41 -0
- package/lib/_shumway_flash/media/VideoStatus.ts +41 -0
- package/lib/_shumway_flash/media/VideoStreamSettings.ts +56 -0
- package/lib/_shumway_flash/net/DynamicPropertyOutput.ts +45 -0
- package/lib/_shumway_flash/net/FileFilter.ts +66 -0
- package/lib/_shumway_flash/net/FileReferenceList.ts +39 -0
- package/lib/_shumway_flash/net/GroupSpecifier.ts +67 -0
- package/lib/_shumway_flash/net/IDynamicPropertyOutput.ts +25 -0
- package/lib/_shumway_flash/net/IDynamicPropertyWriter.ts +28 -0
- package/lib/_shumway_flash/net/LocalConnection.ts +249 -0
- package/lib/_shumway_flash/net/NetConnection.ts +268 -0
- package/lib/_shumway_flash/net/NetGroup.ts +88 -0
- package/lib/_shumway_flash/net/NetGroupInfo.ts +54 -0
- package/lib/_shumway_flash/net/NetGroupReceiveMode.ts +37 -0
- package/lib/_shumway_flash/net/NetGroupReplicationStrategy.ts +40 -0
- package/lib/_shumway_flash/net/NetGroupSendMode.ts +37 -0
- package/lib/_shumway_flash/net/NetGroupSendResult.ts +38 -0
- package/lib/_shumway_flash/net/NetMonitor.ts +38 -0
- package/lib/_shumway_flash/net/NetStream.ts +1078 -0
- package/lib/_shumway_flash/net/NetStreamAppendBytesAction.ts +38 -0
- package/lib/_shumway_flash/net/NetStreamInfo.ts +119 -0
- package/lib/_shumway_flash/net/NetStreamMulticastInfo.ts +103 -0
- package/lib/_shumway_flash/net/NetStreamPlayOptions.ts +45 -0
- package/lib/_shumway_flash/net/NetStreamPlayTransitions.ts +45 -0
- package/lib/_shumway_flash/net/Responder.ts +40 -0
- package/lib/_shumway_flash/net/SecureSocket.ts +60 -0
- package/lib/_shumway_flash/net/SharedObjectFlushStatus.ts +37 -0
- package/lib/_shumway_flash/net/Socket.ts +230 -0
- package/lib/_shumway_flash/net/URLRequestHeader.ts +22 -0
- package/lib/_shumway_flash/net/URLStream.ts +206 -0
- package/lib/_shumway_flash/net/XMLSocket.ts +32 -0
- package/lib/_shumway_flash/printing/PrintJob.ts +42 -0
- package/lib/_shumway_flash/printing/PrintJobOptions.ts +25 -0
- package/lib/_shumway_flash/printing/PrintJobOrientation.ts +24 -0
- package/lib/_shumway_flash/profiler/Telemetry.ts +48 -0
- package/lib/_shumway_flash/sampler/ClassFactory.ts +22 -0
- package/lib/_shumway_flash/sampler/DeleteObjectSample.ts +20 -0
- package/lib/_shumway_flash/sampler/StackFrame.ts +22 -0
- package/lib/_shumway_flash/security/CertificateStatus.ts +28 -0
- package/lib/_shumway_flash/security/X500DistinguishedName.ts +56 -0
- package/lib/_shumway_flash/security/X509Certificate.ts +87 -0
- package/lib/_shumway_flash/sensors/Accelerometer.ts +35 -0
- package/lib/_shumway_flash/sensors/Geolocation.ts +33 -0
- package/lib/_shumway_flash/system/ApplicationInstaller.ts +57 -0
- package/lib/_shumway_flash/system/AuthorizedFeatures.ts +58 -0
- package/lib/_shumway_flash/system/AuthorizedFeaturesLoader.ts +49 -0
- package/lib/_shumway_flash/system/DomainMemoryWithStage3D.ts +33 -0
- package/lib/_shumway_flash/system/IMEConversionMode.ts +43 -0
- package/lib/_shumway_flash/system/ImageDecodingPolicy.ts +36 -0
- package/lib/_shumway_flash/system/JPEGLoaderContext.ts +42 -0
- package/lib/_shumway_flash/system/MessageChannel.ts +65 -0
- package/lib/_shumway_flash/system/MessageChannelState.ts +38 -0
- package/lib/_shumway_flash/system/SecurityPanel.ts +42 -0
- package/lib/_shumway_flash/system/SystemUpdater.ts +36 -0
- package/lib/_shumway_flash/system/SystemUpdaterType.ts +37 -0
- package/lib/_shumway_flash/ui/KeyLocation.ts +39 -0
- package/lib/_shumway_flash/ui/KeyboardType.ts +37 -0
- package/lib/_shumway_flash/ui/MouseCursor.ts +75 -0
- package/lib/_shumway_flash/ui/MouseCursorData.ts +72 -0
- package/lib/_shumway_flash/utils/CompressionAlgorithm.ts +20 -0
- package/lib/_shumway_flash/utils/IDataInput2.ts +9 -0
- package/lib/_shumway_flash/utils/IDataOutput2.ts +9 -0
- package/lib/_shumway_flash/utils/IExternalizable.ts +13 -0
- package/lib/_shumway_flash/utils/SetIntervalTimer.ts +20 -0
- package/lib/_shumway_flash/utils/Timer.ts +111 -0
- package/lib/desktop/Clipboard.ts +292 -0
- package/lib/desktop/ClipboardFormats.ts +51 -0
- package/lib/display/Bitmap.ts +189 -0
- package/lib/display/BitmapData.ts +496 -0
- package/lib/display/BitmapDataChannel.ts +24 -0
- package/lib/display/BlendMode.ts +1 -0
- package/lib/display/CapsStyle.ts +1 -0
- package/lib/display/DisplayObject.ts +1601 -0
- package/lib/display/DisplayObjectContainer.ts +640 -0
- package/lib/display/FrameLabel.ts +30 -0
- package/lib/display/GradientType.ts +1 -0
- package/lib/display/Graphics.ts +609 -0
- package/lib/display/GraphicsBitmapFill.ts +39 -0
- package/lib/display/GraphicsEndFill.ts +11 -0
- package/lib/display/GraphicsGradientFill.ts +31 -0
- package/lib/display/GraphicsPath.ts +75 -0
- package/lib/display/GraphicsPathCommand.ts +1 -0
- package/lib/display/GraphicsPathWinding.ts +1 -0
- package/lib/display/GraphicsSolidFill.ts +16 -0
- package/lib/display/GraphicsStroke.ts +33 -0
- package/lib/display/GraphicsTrianglePath.ts +24 -0
- package/lib/display/IBitmapDataOwner.ts +7 -0
- package/lib/display/IBitmapDrawable.ts +11 -0
- package/lib/display/IGraphicsData.ts +15 -0
- package/lib/display/IVirtualSceneGraphItem.ts +9 -0
- package/lib/display/InteractiveObject.ts +986 -0
- package/lib/display/InterpolationMethod.ts +1 -0
- package/lib/display/JointStyle.ts +1 -0
- package/lib/display/LineScaleMode.ts +1 -0
- package/lib/display/Loader.ts +777 -0
- package/lib/display/LoaderInfo.ts +743 -0
- package/lib/display/MovieClip.ts +570 -0
- package/lib/display/NativeMenu.ts +11 -0
- package/lib/display/NativeMenuItem.ts +34 -0
- package/lib/display/PixelSnapping.ts +1 -0
- package/lib/display/Scene.ts +69 -0
- package/lib/display/Shape.ts +89 -0
- package/lib/display/SimpleButton.ts +555 -0
- package/lib/display/SpreadMethod.ts +1 -0
- package/lib/display/Sprite.ts +774 -0
- package/lib/display/Stage.ts +1143 -0
- package/lib/display/TriangleCulling.ts +1 -0
- package/lib/display3D/Context3D.ts +1 -0
- package/lib/display3D/Context3DClearMask.ts +1 -0
- package/lib/display3D/Context3DProgramType.ts +1 -0
- package/lib/display3D/Texture.ts +29 -0
- package/lib/errors/EOFError.ts +17 -0
- package/lib/errors/IOError.ts +16 -0
- package/lib/errors/IllegalOperationError.ts +17 -0
- package/lib/errors/InvalidSWFError.ts +16 -0
- package/lib/errors/MemoryError.ts +16 -0
- package/lib/errors/ScriptTimeoutError.ts +16 -0
- package/lib/errors/StackOverflowError.ts +16 -0
- package/lib/events/AccelerometerEvent.ts +26 -0
- package/lib/events/ActivityEvent.ts +19 -0
- package/lib/events/AsyncErrorEvent.ts +31 -0
- package/lib/events/ContextMenuEvent.ts +26 -0
- package/lib/events/DataEvent.ts +17 -0
- package/lib/events/ErrorEvent.ts +54 -0
- package/lib/events/Event.ts +229 -0
- package/lib/events/EventDispatcher.ts +283 -0
- package/lib/events/EventDispatcherBase.ts +289 -0
- package/lib/events/EventPhase.ts +34 -0
- package/lib/events/FocusEvent.ts +97 -0
- package/lib/events/FullScreenEvent.ts +22 -0
- package/lib/events/GameInputEvent.ts +38 -0
- package/lib/events/GeolocationEvent.ts +18 -0
- package/lib/events/GestureEvent.ts +113 -0
- package/lib/events/GesturePhase.ts +18 -0
- package/lib/events/HTTPStatusEvent.ts +81 -0
- package/lib/events/IEventDispatcher.ts +1 -0
- package/lib/events/IEventMapper.ts +7 -0
- package/lib/events/IMEEvent.ts +21 -0
- package/lib/events/IOErrorEvent.ts +49 -0
- package/lib/events/KeyboardEvent.ts +114 -0
- package/lib/events/MouseEvent.ts +279 -0
- package/lib/events/NetDataEvent.ts +22 -0
- package/lib/events/NetFilterEvent.ts +20 -0
- package/lib/events/NetMonitorEvent.ts +20 -0
- package/lib/events/NetStatusEvent.ts +53 -0
- package/lib/events/OutputProgressEvent.ts +20 -0
- package/lib/events/PressAndTapGestureEvent.ts +24 -0
- package/lib/events/ProgressEvent.ts +66 -0
- package/lib/events/SampleDataEvent.ts +140 -0
- package/lib/events/SecurityErrorEvent.ts +16 -0
- package/lib/events/ShaderEvent.ts +19 -0
- package/lib/events/SoftKeyboardEvent.ts +19 -0
- package/lib/events/SoftKeyboardTrigger.ts +16 -0
- package/lib/events/StageVideoAvailabilityEvent.ts +20 -0
- package/lib/events/StageVideoEvent.ts +26 -0
- package/lib/events/StaticEvents.ts +5 -0
- package/lib/events/StatusEvent.ts +45 -0
- package/lib/events/SyncEvent.ts +19 -0
- package/lib/events/TextEvent.ts +60 -0
- package/lib/events/ThrottleEvent.ts +23 -0
- package/lib/events/ThrottleType.ts +18 -0
- package/lib/events/TimerEvent.ts +31 -0
- package/lib/events/TouchEvent.ts +548 -0
- package/lib/events/TransformGestureEvent.ts +21 -0
- package/lib/events/UncaughtErrorEvent.ts +17 -0
- package/lib/events/UncaughtErrorEvents.ts +29 -0
- package/lib/events/VideoEvent.ts +24 -0
- package/lib/external/ExternalInterface.ts +304 -0
- package/lib/factories/FlashSceneGraphFactory.ts +205 -0
- package/lib/filters/BevelFilter.ts +247 -0
- package/lib/filters/BitmapFilter.ts +123 -0
- package/lib/filters/BitmapFilterType.ts +43 -0
- package/lib/filters/BlurFilter.ts +69 -0
- package/lib/filters/ColorMatrixFilter.ts +96 -0
- package/lib/filters/ConvolutionFilter.ts +187 -0
- package/lib/filters/DisplacementMapFilter.ts +191 -0
- package/lib/filters/DropShadowFilter.ts +203 -0
- package/lib/filters/FilterBuilder.ts +34 -0
- package/lib/filters/GlowFilter.ts +162 -0
- package/lib/filters/GradientBevelFilter.ts +276 -0
- package/lib/filters/GradientGlowFilter.ts +239 -0
- package/lib/geom/ColorTransform.ts +294 -0
- package/lib/geom/Matrix.ts +428 -0
- package/lib/geom/Matrix3D.ts +228 -0
- package/lib/geom/Orientation3D.ts +43 -0
- package/lib/geom/PerspectiveProjection.ts +1 -0
- package/lib/geom/Point.ts +201 -0
- package/lib/geom/Rectangle.ts +477 -0
- package/lib/geom/Transform.ts +105 -0
- package/lib/geom/Utils3D.ts +36 -0
- package/lib/geom/Vector3D.ts +438 -0
- package/lib/globalization/LocaleID.ts +96 -0
- package/lib/globalization/NumberFormatter.ts +551 -0
- package/lib/globalization/StringTools.ts +147 -0
- package/lib/greensock/TweenLite.ts +14 -0
- package/lib/greensock/easing/Linear.ts +4 -0
- package/lib/greensock/easing/Power.ts +3 -0
- package/lib/greensock/easing/Power1.ts +2 -0
- package/lib/greensock/easing/Power2.ts +2 -0
- package/lib/greensock/easing/Power3.ts +2 -0
- package/lib/greensock/easing/Power4.ts +2 -0
- package/lib/greensock/motionPaths/RectanglePath2D.ts +1 -0
- package/lib/greensock/plugins/RoundPropsPlugin.ts +1 -0
- package/lib/link.ts +669 -0
- package/lib/media/ID3Info.ts +69 -0
- package/lib/media/Sound.ts +532 -0
- package/lib/media/SoundChannel.ts +160 -0
- package/lib/media/SoundLoaderContext.ts +104 -0
- package/lib/media/SoundMixer.ts +152 -0
- package/lib/media/SoundTransform.ts +137 -0
- package/lib/net/FileFilter.ts +32 -0
- package/lib/net/FileReference.ts +293 -0
- package/lib/net/LocalConnection.ts +267 -0
- package/lib/net/NetConnection.ts +435 -0
- package/lib/net/Responder.ts +57 -0
- package/lib/net/SharedObject.ts +365 -0
- package/lib/net/Socket.ts +251 -0
- package/lib/net/URLLoader.ts +144 -0
- package/lib/net/URLLoaderDataFormat.ts +1 -0
- package/lib/net/URLRequest.ts +135 -0
- package/lib/net/URLRequestMethod.ts +1 -0
- package/lib/net/URLVariables.ts +84 -0
- package/lib/net/navigateToURL.ts +5 -0
- package/lib/sampler/NewObjectSample.ts +40 -0
- package/lib/sampler/Sample.ts +23 -0
- package/lib/starling/core/Starling.ts +613 -0
- package/lib/starling/display/DisplayObject.ts +1 -0
- package/lib/starling/display/Image.ts +1 -0
- package/lib/starling/display/Quad.ts +7 -0
- package/lib/starling/display/Sprite.ts +1 -0
- package/lib/starling/display/Stage.ts +4 -0
- package/lib/starling/events/Event.ts +1 -0
- package/lib/starling/events/ResizeEvent.ts +5 -0
- package/lib/starling/events/Touch.ts +1 -0
- package/lib/starling/events/TouchEvent.ts +1 -0
- package/lib/starling/events/TouchPhase.ts +1 -0
- package/lib/starling/textures/RenderTexture.ts +3 -0
- package/lib/starling/textures/Texture.ts +1 -0
- package/lib/starling/utils/SystemUtil.ts +3 -0
- package/lib/system/ApplicationDomain.ts +279 -0
- package/lib/system/Capabilities.ts +265 -0
- package/lib/system/FSCommand.ts +20 -0
- package/lib/system/IME.ts +157 -0
- package/lib/system/LoaderContext.ts +449 -0
- package/lib/system/Security.ts +119 -0
- package/lib/system/SecurityDomain.ts +9 -0
- package/lib/system/System.ts +225 -0
- package/lib/system/TouchscreenType.ts +37 -0
- package/lib/text/AntiAliasType.ts +1 -0
- package/lib/text/CSMSettings.ts +25 -0
- package/lib/text/Font.ts +60 -0
- package/lib/text/FontStyle.ts +18 -0
- package/lib/text/FontType.ts +18 -0
- package/lib/text/GridFitType.ts +1 -0
- package/lib/text/StaticText.ts +41 -0
- package/lib/text/StyleSheet.ts +201 -0
- package/lib/text/TextColorType.ts +15 -0
- package/lib/text/TextDisplayMode.ts +16 -0
- package/lib/text/TextExtent.ts +25 -0
- package/lib/text/TextField.ts +1358 -0
- package/lib/text/TextFieldAutoSize.ts +1 -0
- package/lib/text/TextFieldType.ts +1 -0
- package/lib/text/TextFormat.ts +222 -0
- package/lib/text/TextFormatAlign.ts +1 -0
- package/lib/text/TextFormatDisplay.ts +19 -0
- package/lib/text/TextInteractionMode.ts +1 -0
- package/lib/text/TextLineMetrics.ts +72 -0
- package/lib/text/TextRenderer.ts +70 -0
- package/lib/text/TextRun.ts +56 -0
- package/lib/text/TextSnapshot.ts +73 -0
- package/lib/text/engine/BreakOpportunity.ts +17 -0
- package/lib/text/engine/CFFHinting.ts +15 -0
- package/lib/text/engine/ContentElement.ts +123 -0
- package/lib/text/engine/DigitCase.ts +19 -0
- package/lib/text/engine/DigitWidth.ts +19 -0
- package/lib/text/engine/EastAsianJustifier.ts +50 -0
- package/lib/text/engine/ElementFormat.ts +323 -0
- package/lib/text/engine/FontDescription.ts +114 -0
- package/lib/text/engine/FontLookup.ts +18 -0
- package/lib/text/engine/FontMetrics.ts +47 -0
- package/lib/text/engine/FontPosture.ts +18 -0
- package/lib/text/engine/FontWeight.ts +18 -0
- package/lib/text/engine/GraphicElement.ts +69 -0
- package/lib/text/engine/GroupElement.ts +123 -0
- package/lib/text/engine/JustificationStyle.ts +19 -0
- package/lib/text/engine/Kerning.ts +19 -0
- package/lib/text/engine/LigatureLevel.ts +21 -0
- package/lib/text/engine/LineJustification.ts +20 -0
- package/lib/text/engine/NativehacksForTLF.ts +58 -0
- package/lib/text/engine/RenderingMode.ts +18 -0
- package/lib/text/engine/SpaceJustifier.ts +57 -0
- package/lib/text/engine/TabAlignment.ts +20 -0
- package/lib/text/engine/TabStop.ts +61 -0
- package/lib/text/engine/TextBaseline.ts +23 -0
- package/lib/text/engine/TextBlock.ts +583 -0
- package/lib/text/engine/TextElement.ts +49 -0
- package/lib/text/engine/TextJustifier.ts +46 -0
- package/lib/text/engine/TextLine.ts +434 -0
- package/lib/text/engine/TextLineCreationResult.ts +20 -0
- package/lib/text/engine/TextLineMirrorRegion.ts +62 -0
- package/lib/text/engine/TextLineValidity.ts +20 -0
- package/lib/text/engine/TextRotation.ts +21 -0
- package/lib/text/engine/TypographicCase.ts +22 -0
- package/lib/text/ime/CompositionAttributeRange.ts +29 -0
- package/lib/text/ime/IIMEClient.ts +31 -0
- package/lib/ui/ContextMenu.ts +128 -0
- package/lib/ui/ContextMenuBuiltInItems.ts +104 -0
- package/lib/ui/ContextMenuClipboardItems.ts +93 -0
- package/lib/ui/ContextMenuItem.ts +60 -0
- package/lib/ui/GameInput.ts +49 -0
- package/lib/ui/GameInputControl.ts +76 -0
- package/lib/ui/GameInputControlType.ts +25 -0
- package/lib/ui/GameInputDevice.ts +103 -0
- package/lib/ui/GameInputFinger.ts +23 -0
- package/lib/ui/GameInputHand.ts +22 -0
- package/lib/ui/Keyboard.ts +394 -0
- package/lib/ui/Mouse.ts +70 -0
- package/lib/ui/MouseCursorData.ts +44 -0
- package/lib/ui/Multitouch.ts +117 -0
- package/lib/ui/MultitouchInputMode.ts +27 -0
- package/lib/utils/AwayDate.ts +64 -0
- package/lib/utils/ByteArray.ts +1 -0
- package/lib/utils/CompressionAlgorithm.ts +7 -0
- package/lib/utils/Dictionary.ts +1 -0
- package/lib/utils/Endian.ts +15 -0
- package/lib/utils/IDataInput.ts +194 -0
- package/lib/utils/IDataOutput.ts +147 -0
- package/lib/utils/IExternalizable.ts +37 -0
- package/lib/utils/Timer.ts +115 -0
- package/lib/utils/Trace.ts +33 -0
- package/lib/utils/clearInterval.ts +8 -0
- package/lib/utils/clearTimeout.ts +8 -0
- package/lib/utils/describeType.ts +82 -0
- package/lib/utils/escapeMultiByte.ts +29 -0
- package/lib/utils/getAliasName.ts +7 -0
- package/lib/utils/getDefinitionByName.ts +13 -0
- package/lib/utils/getQualifiedClassName.ts +14 -0
- package/lib/utils/getQualifiedSuperclassName.ts +26 -0
- package/lib/utils/getTimer.ts +20 -0
- package/lib/utils/setInterval.ts +20 -0
- package/lib/utils/setTimeout.ts +20 -0
- package/lib/utils/unescapeMultiByte.ts +27 -0
- package/lib/xml/XML.ts +115 -0
- package/lib/xml/XMLDocumentAway.ts +142 -0
- package/lib/xml/XMLList.ts +449 -0
- package/lib/xml/XMLNode.ts +326 -0
- package/lib/xml/XMLNodeType.ts +48 -0
- package/package.json +78 -4
- package/rollup.config.js +40 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awayfl-playerglobal.umd.js","sources":["../node_modules/tslib/tslib.es6.mjs","../dist/lib/events/Event.js","../dist/lib/events/EventDispatcherBase.js","../dist/lib/events/MouseEvent.js","../dist/lib/events/EventDispatcher.js","../dist/lib/filters/FilterBuilder.js","../dist/lib/events/StaticEvents.js","../dist/lib/filters/BitmapFilter.js","../dist/lib/filters/DropShadowFilter.js","../dist/lib/filters/GlowFilter.js","../dist/lib/filters/BitmapFilterType.js","../dist/lib/filters/BevelFilter.js","../dist/lib/filters/GradientGlowFilter.js","../dist/lib/filters/GradientBevelFilter.js","../dist/lib/filters/BlurFilter.js","../dist/lib/filters/ConvolutionFilter.js","../dist/lib/filters/ColorMatrixFilter.js","../dist/lib/display/DisplayObject.js","../dist/lib/events/TouchEvent.js","../dist/lib/events/KeyboardEvent.js","../dist/lib/events/FocusEvent.js","../dist/lib/display/InteractiveObject.js","../dist/lib/display/DisplayObjectContainer.js","../dist/lib/display/Sprite.js","../dist/lib/display/MovieClip.js","../dist/lib/display/Bitmap.js","../dist/lib/display/BitmapData.js","../dist/lib/factories/FlashSceneGraphFactory.js","../dist/lib/events/TextEvent.js","../dist/lib/events/ErrorEvent.js","../dist/lib/events/IOErrorEvent.js","../dist/lib/media/Sound.js","../dist/lib/system/ApplicationDomain.js","../dist/lib/system/LoaderContext.js","../dist/lib/display/Loader.js","../dist/lib/events/ProgressEvent.js","../dist/lib/display/LoaderInfo.js","../dist/lib/display/Stage.js","../dist/lib/net/URLVariables.js","../dist/lib/net/URLRequest.js","../dist/lib/desktop/Clipboard.js","../dist/lib/desktop/ClipboardFormats.js","../dist/lib/display/BitmapDataChannel.js","../dist/lib/display/FrameLabel.js","../dist/lib/display/Graphics.js","../dist/lib/display/GraphicsPath.js","../dist/lib/display/GraphicsSolidFill.js","../dist/lib/display/GraphicsEndFill.js","../dist/lib/display/GraphicsGradientFill.js","../dist/lib/display/GraphicsBitmapFill.js","../dist/lib/display/GraphicsStroke.js","../dist/lib/display/GraphicsTrianglePath.js","../dist/lib/display/NativeMenuItem.js","../dist/lib/display/Scene.js","../dist/lib/display/Shape.js","../dist/lib/display/SimpleButton.js","../dist/lib/errors/IOError.js","../dist/lib/errors/EOFError.js","../dist/lib/errors/IllegalOperationError.js","../dist/lib/errors/InvalidSWFError.js","../dist/lib/errors/MemoryError.js","../dist/lib/errors/ScriptTimeoutError.js","../dist/lib/errors/StackOverflowError.js","../dist/lib/geom/ColorTransform.js","../dist/lib/geom/Matrix.js","../dist/lib/geom/Matrix3D.js","../dist/lib/geom/Point.js","../dist/lib/geom/Rectangle.js","../dist/lib/geom/Transform.js","../dist/lib/geom/Vector3D.js","../dist/lib/globalization/LocaleID.js","../dist/lib/events/AccelerometerEvent.js","../dist/lib/events/ActivityEvent.js","../dist/lib/events/AsyncErrorEvent.js","../dist/lib/events/ContextMenuEvent.js","../dist/lib/events/DataEvent.js","../dist/lib/events/EventPhase.js","../dist/lib/events/FullScreenEvent.js","../dist/lib/events/GameInputEvent.js","../dist/lib/events/GeolocationEvent.js","../dist/lib/events/GestureEvent.js","../dist/lib/events/GesturePhase.js","../dist/lib/events/HTTPStatusEvent.js","../dist/lib/events/IMEEvent.js","../dist/lib/events/NetDataEvent.js","../dist/lib/events/NetStatusEvent.js","../dist/lib/events/OutputProgressEvent.js","../dist/lib/events/PressAndTapGestureEvent.js","../dist/lib/events/SampleDataEvent.js","../dist/lib/events/ShaderEvent.js","../dist/lib/events/SoftKeyboardEvent.js","../dist/lib/events/SoftKeyboardTrigger.js","../dist/lib/events/StageVideoAvailabilityEvent.js","../dist/lib/events/StageVideoEvent.js","../dist/lib/events/StatusEvent.js","../dist/lib/events/SyncEvent.js","../dist/lib/events/ThrottleEvent.js","../dist/lib/events/ThrottleType.js","../dist/lib/events/TimerEvent.js","../dist/lib/events/TransformGestureEvent.js","../dist/lib/events/UncaughtErrorEvent.js","../dist/lib/events/UncaughtErrorEvents.js","../dist/lib/events/VideoEvent.js","../dist/lib/external/ExternalInterface.js","../dist/lib/filters/DisplacementMapFilter.js","../dist/lib/globalization/NumberFormatter.js","../dist/lib/media/SoundTransform.js","../dist/lib/media/SoundMixer.js","../node_modules/@awayjs/core/dist/lib/events/EventDispatcher.js","../node_modules/@awayjs/core/dist/lib/events/EventBase.js","../node_modules/@awayjs/core/dist/lib/managers/BaseAudioChannel.js","../dist/lib/media/SoundChannel.js","../dist/lib/net/FileFilter.js","../dist/lib/Settings.js","../dist/lib/net/FileReference.js","../dist/lib/net/SharedObject.js","../dist/lib/net/URLLoader.js","../dist/lib/net/LocalConnection.js","../dist/lib/net/NetConnection.js","../dist/lib/net/Responder.js","../dist/lib/net/Socket.js","../dist/lib/system/SecurityDomain.js","../dist/lib/system/TouchscreenType.js","../dist/lib/system/Capabilities.js","../dist/lib/system/FSCommand.js","../dist/lib/system/Security.js","../dist/lib/system/System.js","../dist/lib/text/Font.js","../dist/lib/text/StyleSheet.js","../dist/lib/text/TextField.js","../dist/lib/text/TextFormat.js","../dist/lib/text/TextRun.js","../dist/lib/text/StaticText.js","../dist/lib/text/TextRenderer.js","../dist/lib/text/TextFormatDisplay.js","../dist/lib/text/TextExtent.js","../dist/lib/text/TextDisplayMode.js","../dist/lib/text/TextColorType.js","../dist/lib/text/FontType.js","../dist/lib/text/CSMSettings.js","../dist/lib/text/TextLineMetrics.js","../dist/lib/text/TextSnapshot.js","../dist/lib/text/ime/CompositionAttributeRange.js","../dist/lib/text/engine/BreakOpportunity.js","../dist/lib/text/engine/CFFHinting.js","../dist/lib/text/engine/ContentElement.js","../dist/lib/text/engine/DigitCase.js","../dist/lib/text/engine/DigitWidth.js","../dist/lib/text/engine/TextJustifier.js","../dist/lib/text/engine/EastAsianJustifier.js","../dist/lib/text/engine/TextBaseline.js","../dist/lib/text/engine/ElementFormat.js","../dist/lib/text/engine/FontDescription.js","../dist/lib/text/engine/FontLookup.js","../dist/lib/text/engine/FontMetrics.js","../dist/lib/text/engine/FontPosture.js","../dist/lib/text/engine/FontWeight.js","../dist/lib/text/engine/GraphicElement.js","../dist/lib/text/engine/JustificationStyle.js","../dist/lib/text/engine/Kerning.js","../dist/lib/text/engine/LigatureLevel.js","../dist/lib/text/engine/LineJustification.js","../dist/lib/text/engine/RenderingMode.js","../dist/lib/text/engine/SpaceJustifier.js","../dist/lib/text/engine/TabAlignment.js","../dist/lib/text/engine/TabStop.js","../dist/lib/text/engine/TextLineCreationResult.js","../dist/lib/text/engine/TextBlock.js","../dist/lib/text/engine/TextElement.js","../dist/lib/text/engine/TextLineValidity.js","../dist/lib/text/engine/TextLine.js","../dist/lib/text/engine/TextLineMirrorRegion.js","../dist/lib/text/engine/TextRotation.js","../dist/lib/text/engine/TypographicCase.js","../dist/lib/ui/Keyboard.js","../dist/lib/ui/ContextMenu.js","../dist/lib/display/NativeMenu.js","../dist/lib/ui/ContextMenuItem.js","../dist/lib/ui/ContextMenuBuiltInItems.js","../dist/lib/ui/ContextMenuClipboardItems.js","../dist/lib/ui/GameInput.js","../dist/lib/ui/GameInputControl.js","../dist/lib/ui/GameInputControlType.js","../dist/lib/ui/GameInputDevice.js","../dist/lib/ui/GameInputFinger.js","../dist/lib/ui/GameInputHand.js","../dist/lib/ui/Mouse.js","../dist/lib/ui/MouseCursorData.js","../dist/lib/ui/MultitouchInputMode.js","../dist/lib/ui/Multitouch.js","../dist/lib/utils/Timer.js","../dist/lib/utils/CompressionAlgorithm.js","../dist/lib/text/engine/GroupElement.js","../dist/lib/text/engine/NativehacksForTLF.js","../dist/lib/link.js","../dist/lib/SecurityDomain.js","../dist/lib/PlayerGlobal.js","../dist/index.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { release } from '@awayfl/swf-loader';\nimport { assert, axCoerceString } from '@awayjs/graphics';\nvar Event = /** @class */ (function (_super) {\n __extends(Event, _super);\n function Event(type, bubbles, cancelable) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n var _this = _super.call(this) || this;\n //\ttodo:\n //\tthese 2 only exists to prevent errors in types for now, because for some reason\n //\tsome functions use core/EventBase for type but recieve as3/Event\n _this._iAllowedToPropagate = true;\n _this._iAllowedToImmediatlyPropagate = true;\n _this._type = axCoerceString(type);\n _this._bubbles = !!bubbles;\n _this._cancelable = !!cancelable;\n _this._target = null;\n _this._currentTarget = null;\n _this._eventPhase = null; //80pro: todo: EventPhase.AT_TARGET;\n _this._stopPropagation = false;\n _this._stopImmediatePropagation = false;\n _this._isDefaultPrevented = false;\n return _this;\n }\n Event.getInstance = function (type, bubbles, cancelable) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n var instance = this._instances[type];\n if (!instance) {\n instance = new Event(type, bubbles, cancelable);\n this._instances[type] = instance;\n }\n instance._bubbles = bubbles;\n instance._cancelable = cancelable;\n return instance;\n };\n Event.getBroadcastInstance = function (type, bubbles, cancelable) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n var instance = this._instances[type];\n if (!instance) {\n instance = new Event(type, bubbles, cancelable);\n this._instances[type] = instance;\n // Some events are documented as broadcast event in the AS3 docs.\n // We can't set |_isBroadcastEvent| flag in the\n // constructor because if you create custom events with these types they do capture and bubble.\n release || assert(Event.isBroadcastEventType(type));\n }\n instance._isBroadcastEvent = true;\n instance._bubbles = bubbles;\n instance._cancelable = cancelable;\n return instance;\n };\n /**\n * http://stackoverflow.com/questions/16900176/as3enterframe-event-propagation-understanding-issue\n */\n Event.isBroadcastEventType = function (type) {\n switch (type) {\n case Event.ENTER_FRAME:\n case Event.EXIT_FRAME:\n case Event.FRAME_CONSTRUCTED:\n case Event.RENDER:\n case Event.ACTIVATE:\n case Event.DEACTIVATE:\n return true;\n }\n return false;\n };\n Object.defineProperty(Event.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"bubbles\", {\n get: function () {\n return this._bubbles;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"cancelable\", {\n get: function () {\n return this._cancelable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"target\", {\n get: function () {\n return this._target;\n },\n set: function (value) {\n this._target = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"currentTarget\", {\n get: function () {\n return this._currentTarget;\n },\n set: function (value) {\n this._currentTarget = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Event.prototype, \"eventPhase\", {\n get: function () {\n return this._eventPhase;\n },\n enumerable: false,\n configurable: true\n });\n Event.prototype.stopPropagation = function () {\n this._stopPropagation = true;\n if (this.adaptee) {\n this.adaptee.stopPropagation();\n }\n };\n Event.prototype.stopImmediatePropagation = function () {\n this._stopImmediatePropagation = this._stopPropagation = true;\n if (this.adaptee) {\n this.adaptee.stopImmediatePropagation();\n }\n };\n Event.prototype.preventDefault = function () {\n if (this._cancelable) {\n this._isDefaultPrevented = true;\n }\n };\n Event.prototype.isDefaultPrevented = function () {\n return this._isDefaultPrevented;\n };\n Event.prototype.isBroadcastEvent = function () {\n return !!this._isBroadcastEvent;\n };\n Event.prototype.clone = function () {\n return new Event(this._type, this._bubbles, this._cancelable);\n };\n Event.prototype.toString = function () {\n return this.formatToString('Event', 'type', 'bubbles', 'cancelable', 'eventPhase');\n };\n Event.prototype.formatToString = function (className) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var str = '[' + className;\n for (var i = 0; i < args.length; i++) {\n var field = args[i];\n var value = this.axGetPublicProperty(field);\n if (typeof value === 'string') {\n value = '\"' + value + '\"';\n }\n str += ' ' + field + '=' + value;\n }\n return str + ']';\n };\n Event.classInitializer = function () {\n var self = this;\n self._instances = {};\n };\n // JS -> AS Bindings\n Event.ACTIVATE = 'activate';\n Event.ADDED = 'added';\n Event.ADDED_TO_STAGE = 'addedToStage';\n Event.CANCEL = 'cancel';\n Event.CHANGE = 'change';\n Event.CLEAR = 'clear';\n Event.CLOSE = 'close';\n Event.COMPLETE = 'complete';\n Event.CONNECT = 'connect';\n Event.COPY = 'copy';\n Event.CUT = 'cut';\n Event.DEACTIVATE = 'deactivate';\n Event.ENTER_FRAME = 'enterFrame';\n Event.FRAME_CONSTRUCTED = 'frameConstructed';\n Event.EXIT_FRAME = 'exitFrame';\n Event.FRAME_LABEL = 'frameLabel';\n Event.ID3 = 'id3';\n Event.INIT = 'init';\n Event.MOUSE_LEAVE = 'mouseLeave';\n Event.OPEN = 'open';\n Event.PASTE = 'paste';\n Event.REMOVED = 'removed';\n Event.REMOVED_FROM_STAGE = 'removedFromStage';\n Event.RENDER = 'render';\n Event.RESIZE = 'resize';\n Event.SCROLL = 'scroll';\n Event.TEXT_INTERACTION_MODE_CHANGE = 'textInteractionModeChange';\n Event.SELECT = 'select';\n Event.SELECT_ALL = 'selectAll';\n Event.SOUND_COMPLETE = 'soundComplete';\n Event.TAB_CHILDREN_CHANGE = 'tabChildrenChange';\n Event.TAB_ENABLED_CHANGE = 'tabEnabledChange';\n Event.TAB_INDEX_CHANGE = 'tabIndexChange';\n Event.UNLOAD = 'unload';\n Event.FULLSCREEN = 'fullScreen';\n Event.CONTEXT3D_CREATE = 'context3DCreate';\n Event.TEXTURE_READY = 'textureReady';\n Event.VIDEO_FRAME = 'videoFrame';\n Event.SUSPEND = 'suspend';\n Event.AVM1_INIT = 'initialize';\n Event.AVM1_CONSTRUCT = 'construct';\n Event.AVM1_LOAD = 'load';\n return Event;\n}(ASObject));\nexport { Event };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * Base export class for dispatching events\n*\n* @export class away.events.EventDispatcher\n*\n*/\nvar EventDispatcherBase = /** @class */ (function (_super) {\n __extends(EventDispatcherBase, _super);\n function EventDispatcherBase(target) {\n if (target === void 0) { target = null; }\n var _this = _super.call(this) || this;\n _this._t = target || _this;\n _this._listenerObjects || (_this._listenerObjects = []);\n return _this;\n }\n EventDispatcherBase.prototype.toString = function () {\n return '';\n };\n /**\n * Add an event listener\n * @method addEventListener\n * @param {String} Name of event to add a listener for\n * @param {Function} Callback function\n */\n EventDispatcherBase.prototype.addEventListener = function (type, listener, useCapture, priority, useWeakReference) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n if (useWeakReference === void 0) { useWeakReference = false; }\n this._listenerObjects || (this._listenerObjects = []);\n var l = this._listenerObjects[type];\n if (l === undefined)\n l = this._listenerObjects[type] = new ListenerObject();\n l.addEventListener(listener, priority);\n };\n /**\n * Remove an event listener\n * @method removeEventListener\n * @param {String} Name of event to remove a listener for\n * @param {Function} Callback function\n */\n EventDispatcherBase.prototype.removeEventListener = function (type, listener) {\n this._listenerObjects || (this._listenerObjects = []);\n var l = this._listenerObjects[type];\n if (l) {\n l.removeEventListener(listener);\n if (l.numListeners == 0)\n delete this._listenerObjects[type];\n }\n };\n /**\n * Dispatch an event\n * @method dispatchEvent\n * @param {Event} Event to dispatch\n */\n EventDispatcherBase.prototype.dispatchEvent = function (event) {\n this._listenerObjects || (this._listenerObjects = []);\n var l = this._listenerObjects[event.type];\n if (l) {\n // Flash reports the aggregation target (EventDispatcher(target) constructor arg)\n // as currentTarget during dispatch — e.g. GreenSock dispatches tween events via an\n // internal aggregated dispatcher and handlers cast event.currentTarget to the tween.\n if (this._t)\n event.currentTarget = this._t;\n if (!event.target)\n event.target = this._t;\n //console.log(\"dispatchEvent\", event.type, (<any>this).adaptee?.id);\n l.dispatchEvent(event);\n }\n return true;\n };\n /**\n * check if an object has an event listener assigned to it\n * @method hasListener\n * @param {String} Name of event to remove a listener for\n * @param {Function} Callback function\n */\n EventDispatcherBase.prototype.hasEventListener = function (type, listener) {\n if (this._listenerObjects[type] === undefined)\n return false;\n if (listener != null)\n return this._listenerObjects[type].getEventListenerIndex(listener) !== -1;\n return this._listenerObjects[type].numListeners > 0;\n };\n return EventDispatcherBase;\n}(ASObject));\nexport { EventDispatcherBase };\nfunction sortListenersByPriority(a, b) {\n return a.priority < b.priority ? -1 : 1;\n}\nvar ListenerObject = /** @class */ (function () {\n function ListenerObject() {\n this._index = 0;\n this._singlePriority = 0;\n this._listeners = new Array();\n this.numListeners = 0;\n }\n ListenerObject.prototype.addEventListener = function (listener, priority) {\n // if event already exists, it will not be added again, and old priority will remain\n if (priority === void 0) { priority = 0; }\n if (!this._listenersByPriority) {\n // single priority mode:\n if (this._listeners.indexOf(listener) !== -1) {\n // the listener is already present - do nothing just return\n return;\n }\n else {\n // its a new listener\n if (this._listeners.length == 0 || priority == this._singlePriority) {\n // same priority as existing listeners. just add it and return\n this._listeners.push(listener);\n this.numListeners++;\n return;\n }\n else {\n // different priority - switch to multi-priority mode\n if (this._singlePriority < priority) {\n this._listenersByPriority = [\n {\n priority: this._singlePriority,\n listeners: this._listeners.concat()\n },\n {\n priority: priority,\n listeners: [listener]\n }\n ];\n }\n else {\n this._listenersByPriority = [\n {\n priority: priority,\n listeners: [listener]\n },\n {\n priority: this._singlePriority,\n listeners: this._listeners.concat()\n }\n ];\n }\n this.numListeners++;\n }\n return;\n }\n }\n // multi-priority mode:\n //check if a listener already exists\n for (var i = 0; i < this._listenersByPriority.length; i++) {\n if (this._listenersByPriority[i].listeners.indexOf(listener) !== -1) {\n return;\n }\n }\n // find priority item\n var priorityItem = null;\n for (var i = 0; i < this._listenersByPriority.length; i++) {\n if (this._listenersByPriority[i].priority == priority) {\n priorityItem = this._listenersByPriority[i];\n break;\n }\n }\n if (!priorityItem) {\n priorityItem = {\n priority: priority,\n listeners: []\n };\n this._listenersByPriority.push(priorityItem);\n if (this._listenersByPriority.length > 1) {\n this._listenersByPriority.sort(sortListenersByPriority);\n }\n }\n priorityItem.listeners.push(listener);\n this.numListeners++;\n };\n ListenerObject.prototype.removeEventListener = function (listener) {\n var index = -1;\n if (!this._listenersByPriority) {\n index = this._listeners.indexOf(listener);\n if (index === -1)\n return;\n this._listeners.splice(index, 1);\n this.numListeners--;\n return;\n }\n //check if listener exists\n for (var i = 0; i < this._listenersByPriority.length; i++) {\n index = this._listenersByPriority[i].listeners.indexOf(listener);\n if (index !== -1) {\n this.numListeners--;\n this._listenersByPriority[i].listeners.splice(index, 1);\n return;\n }\n }\n };\n ListenerObject.prototype.dispatchEvent = function (event) {\n // when listeners do attach/remove new listeners the new listeners will be ignored during this dispatch,\n // and listeners that got removed will still dispatch during this dispatch\n // this means we need to concat the listener-array before we iterate it\n if (!this._listenersByPriority) {\n // single-priority mode:\n var listeners = this._listeners.length > 1 ? this._listeners.concat() : this._listeners;\n var numListeners = listeners.length;\n var i = 0;\n for (i = 0; i < numListeners; i++) {\n if (listeners[i])\n listeners[i].call(listeners[i], event);\n }\n return;\n }\n // multi-priority mode:\n var p = this._listenersByPriority.length;\n //console.log(\"multi-priority mode\", p);\n while (p > 0) {\n p--;\n //console.log(\"multi-priority mode next\", p);\n var listeners = this._listenersByPriority[p].listeners.length > 1 ?\n this._listenersByPriority[p].listeners.concat() : this._listenersByPriority[p].listeners;\n var numListeners = listeners.length;\n var i = 0;\n //let len=events.length;\n //console.log(\"events\", len);\n for (i = 0; i < numListeners; i++) {\n if (listeners[i])\n listeners[i].call(listeners[i], event);\n }\n }\n if (this._listenersByPriority.length == 1) {\n // if only 1 priority exists, we can go back to single-priority-mode\n this._listeners = this._listenersByPriority[0].listeners.concat();\n this._singlePriority = this._listenersByPriority[0].priority;\n this._listenersByPriority = null;\n }\n };\n /**\n * get Event Listener Index in array. Returns -1 if no listener is added\n * @method getEventListenerIndex\n * @param {String} Name of event to remove a listener for\n * @param {Function} Callback function\n */\n ListenerObject.prototype.getEventListenerIndex = function (listener) {\n if (!this._listenersByPriority) {\n // single-priority mode:\n return this._listeners.indexOf(listener);\n }\n // multi-priority mode:\n for (var i = 0; i < this._listenersByPriority.length; i++) {\n for (var e = 0; e < this._listenersByPriority[i].listeners.length; e++) {\n if (this._listenersByPriority[i].listeners[e] == listener) {\n return i;\n }\n }\n }\n return -1;\n };\n return ListenerObject;\n}());\nexport { ListenerObject };\nexport default EventDispatcherBase;\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nimport { notImplemented } from '@awayfl/swf-loader';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: MouseEvent\nvar MouseEvent = /** @class */ (function (_super) {\n __extends(MouseEvent, _super);\n function MouseEvent(type, bubbles, cancelable, localX, localY, relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta) {\n if (bubbles === void 0) { bubbles = true; }\n if (cancelable === void 0) { cancelable = false; }\n if (localX === void 0) { localX = undefined; }\n if (localY === void 0) { localY = undefined; }\n if (relatedObject === void 0) { relatedObject = null; }\n if (ctrlKey === void 0) { ctrlKey = false; }\n if (altKey === void 0) { altKey = false; }\n if (shiftKey === void 0) { shiftKey = false; }\n if (buttonDown === void 0) { buttonDown = false; }\n if (delta === void 0) { delta = 0; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._localX = localX;\n _this._localY = localY;\n _this._relatedObject = relatedObject;\n _this._ctrlKey = ctrlKey;\n _this._altKey = altKey;\n _this._shiftKey = shiftKey;\n _this._buttonDown = buttonDown;\n _this._delta = delta;\n return _this;\n }\n /**\n * AS3 mouse event names don't match DOM even names, so map them here.\n */\n MouseEvent.typeFromDOMType = function (name) {\n switch (name) {\n case 'click':\n return MouseEvent.CLICK;\n case 'dblclick':\n return MouseEvent.DOUBLE_CLICK;\n case 'mousedown':\n return MouseEvent.MOUSE_DOWN;\n case 'mouseout':\n case 'mouseover':\n case 'mousemove':\n return MouseEvent.MOUSE_MOVE;\n case 'mouseup':\n return MouseEvent.MOUSE_UP;\n default:\n notImplemented(name);\n // return MouseEvent.RELEASE_OUTSIDE;\n // return MouseEvent.MOUSE_WHEEL;\n // return MouseEvent.ROLL_OUT;\n // return MouseEvent.ROLL_OVER;\n // return MouseEvent.MIDDLE_CLICK;\n // return MouseEvent.MIDDLE_MOUSE_DOWN;\n // return MouseEvent.MIDDLE_MOUSE_UP;\n // return MouseEvent.RIGHT_CLICK;\n // return MouseEvent.RIGHT_MOUSE_DOWN;\n // return MouseEvent.RIGHT_MOUSE_UP;\n // return MouseEvent.CONTEXT_MENU;\n }\n };\n /* added to clone events from away to as3web. */\n MouseEvent.prototype.fillFromAway = function (awayEvent) {\n //console.log(\"cloneFromAway not implemented yet in flash/MouseEvent\");\n this.adaptee = awayEvent;\n this.target = awayEvent.target.adapter || this.sec.flash.display.DisplayObject.axClass._activeStage;\n this.currentTarget = awayEvent.currentTarget.adapter || this.sec.flash.display.DisplayObject.axClass._activeStage;\n this.delta = awayEvent.delta;\n this.ctrlKey = awayEvent.ctrlKey;\n this.shiftKey = awayEvent.shiftKey;\n this.buttonDown = Boolean(awayEvent.buttons & 1 /* MouseButtons.PRIMARY_BUTTON */);\n //this._stageX = awayEvent.screenX;\n //this._stageY = awayEvent.screenY;\n //todo: translate more stuff from awayjs to as3\n //result.screenX = this.screenX;\n //result.screenY = this.screenY;\n /*\n result.view = awayEvent.view;\n result.entity = awayEvent.entity;\n result.renderable = awayEvent.renderable;\n result.material = awayEvent.material;\n result.uv = awayEvent.uv;\n result.position = awayEvent.position;\n result.normal = awayEvent.normal;\n result.elementIndex = awayEvent.elementIndex;\n*/\n //result._iParentEvent = awayEvent;\n //result._iAllowedToPropagate = awayEvent._iAllowedToPropagate;\n };\n Object.defineProperty(MouseEvent.prototype, \"localX\", {\n get: function () {\n return (this._localX / 20) | 0;\n },\n set: function (value) {\n this._localX = (value * 20) | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"localY\", {\n get: function () {\n return (this._localY / 20) | 0;\n },\n set: function (value) {\n this._localY = (value * 20) | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"stageX\", {\n get: function () {\n if (isNaN(this.localX + this.localY)) {\n return Number.NaN;\n }\n return this.target.stage.mouseX;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"stageY\", {\n get: function () {\n if (isNaN(this.localX + this.localY)) {\n return Number.NaN;\n }\n return this.target.stage.mouseY;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"movementX\", {\n get: function () {\n return this._movementX || 0;\n },\n set: function (value) {\n this._movementX = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"movementY\", {\n get: function () {\n return this._movementY || 0;\n },\n set: function (value) {\n this._movementY = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"delta\", {\n get: function () {\n return this._delta;\n },\n set: function (value) {\n this._delta = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"ctrlKey\", {\n get: function () {\n return this._ctrlKey;\n },\n set: function (value) {\n this._ctrlKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"altKey\", {\n get: function () {\n return this._altKey;\n },\n set: function (value) {\n this._altKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"shiftKey\", {\n get: function () {\n return this._shiftKey;\n },\n set: function (value) {\n this._shiftKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"buttonDown\", {\n get: function () {\n return this._buttonDown;\n },\n set: function (value) {\n this._buttonDown = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"relatedObject\", {\n get: function () {\n return this._relatedObject;\n },\n set: function (value) {\n this._relatedObject = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseEvent.prototype, \"isRelatedObjectInaccessible\", {\n get: function () {\n return this._isRelatedObjectInaccessible;\n },\n set: function (value) {\n this._isRelatedObjectInaccessible = value;\n },\n enumerable: false,\n configurable: true\n });\n MouseEvent.prototype.updateAfterEvent = function () {\n this.sec.player.requestRender();\n };\n MouseEvent.prototype.clone = function () {\n return new MouseEvent(this.type, this.bubbles, this.cancelable, this.localX, this.localY, this.relatedObject, this.ctrlKey, this.altKey, this.shiftKey, this.buttonDown, this.delta);\n };\n MouseEvent.prototype.toString = function () {\n return this.formatToString('MouseEvent', 'type', 'bubbles', 'cancelable', 'eventPhase', 'localX', 'localY', 'relatedObject', 'ctrlKey', 'altKey', 'shiftKey', 'buttonDown', 'delta');\n };\n MouseEvent.classInitializer = null;\n MouseEvent.classSymbols = null;\n MouseEvent.instanceSymbols = null;\n // JS -> AS Bindings\n MouseEvent.CLICK = 'click';\n MouseEvent.DOUBLE_CLICK = 'doubleClick';\n MouseEvent.MOUSE_DOWN = 'mouseDown';\n MouseEvent.MOUSE_MOVE = 'mouseMove';\n MouseEvent.MOUSE_OUT = 'mouseOut';\n MouseEvent.MOUSE_OVER = 'mouseOver';\n MouseEvent.MOUSE_UP = 'mouseUp';\n MouseEvent.RELEASE_OUTSIDE = 'releaseOutside';\n MouseEvent.MOUSE_WHEEL = 'mouseWheel';\n MouseEvent.ROLL_OUT = 'rollOut';\n MouseEvent.ROLL_OVER = 'rollOver';\n MouseEvent.MIDDLE_CLICK = 'middleClick';\n MouseEvent.MIDDLE_MOUSE_DOWN = 'middleMouseDown';\n MouseEvent.MIDDLE_MOUSE_UP = 'middleMouseUp';\n MouseEvent.RIGHT_CLICK = 'rightClick';\n MouseEvent.RIGHT_MOUSE_DOWN = 'rightMouseDown';\n MouseEvent.RIGHT_MOUSE_UP = 'rightMouseUp';\n MouseEvent.CONTEXT_MENU = 'contextMenu';\n return MouseEvent;\n}(Event));\nexport { MouseEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nimport { EventDispatcherBase } from './EventDispatcherBase';\nimport { UUID } from '@awayjs/core';\nimport { release } from '@awayfl/swf-loader';\nimport { assert } from '@awayjs/graphics';\nimport { MouseEvent } from '../events/MouseEvent';\nimport { Settings } from '@awayfl/avm2';\n/**\n * [broadcast event] Dispatched when the Flash Player or AIR application operating\n * loses system focus and is becoming inactive.\n * @eventType\tflash.events.Event.DEACTIVATE\n [Event(name=\"deactivate\", type=\"flash.events.Event\")]\n\n * [broadcast event] Dispatched when the Flash Player or AIR application gains\n * operating system focus and becomes active.\n * @eventType\tflash.events.Event.ACTIVATE\n [Event(name=\"activate\", type=\"flash.events.Event\")]\n */\nvar EventDispatcher = /** @class */ (function (_super) {\n __extends(EventDispatcher, _super);\n function EventDispatcher(target) {\n if (target === void 0) { target = null; }\n var _this = _super.call(this, target) || this;\n _this.id = UUID.Next();\n _this.eventMapping || (_this.eventMapping = {});\n _this.eventMappingDummys || (_this.eventMappingDummys = {});\n _this.eventMappingExtern || (_this.eventMappingExtern = {});\n _this.eventMappingInvert || (_this.eventMappingInvert = {});\n _this._activateCallbackDelegate = function (event) { return _this.activateCallback(event); };\n _this.eventMapping[Event.ACTIVATE] = {\n adaptedType: '',\n addListener: _this.initActivateListener,\n removeListener: _this.removeActivateListener,\n callback: _this._activateCallbackDelegate\n };\n _this._deactivateCallbackDelegate = function (event) { return _this.deactivateCallback(event); };\n _this.eventMapping[Event.DEACTIVATE] = {\n adaptedType: '',\n addListener: _this.initDeactivateListener,\n removeListener: _this.removeDeactivateListener,\n callback: _this._deactivateCallbackDelegate\n };\n return _this;\n }\n EventDispatcher.prototype.toString = function () {\n return '';\n };\n EventDispatcher.prototype.hasEventListener = function (type, listener) {\n return _super.prototype.hasEventListener.call(this, type, listener);\n };\n EventDispatcher.prototype.willTrigger = function () {\n };\n EventDispatcher.prototype.dispatchEvent = function (event, comesFromAway) {\n if (comesFromAway === void 0) { comesFromAway = false; }\n event.currentTarget = this;\n if (event.type == 'enterFrame') { //} || event.type==\"scroll\"){\n event.target = this;\n }\n var returnVal = _super.prototype.dispatchEvent.call(this, event);\n // workaround for now.\n // mousevents already bubble up the scenegraph in MouseMangager\n // for all other events, we want to bubble them up here:\n if (!comesFromAway && event.bubbles && EventDispatcher.eventsThatBubbleInAwayJS.indexOf(event.type) == -1) {\n if (this.adaptee && this.adaptee.parent) {\n this.adaptee.parent.adapter.dispatchEvent(event);\n }\n }\n return returnVal;\n };\n // ---------- event mapping functions Event.ACTIVATE\n EventDispatcher.prototype.initActivateListener = function (type, callback) {\n window.onfocus = callback;\n };\n EventDispatcher.prototype.removeActivateListener = function (type, callback) {\n window.onfocus = null;\n };\n EventDispatcher.prototype.activateCallback = function (event) {\n if (event === void 0) { event = null; }\n this.dispatchEvent(new this.sec.flash.events.Event(Event.ACTIVATE));\n };\n // ---------- event mapping functions Event.DEACTIVATE\n EventDispatcher.prototype.initDeactivateListener = function (type, callback) {\n window.onblur = callback;\n };\n EventDispatcher.prototype.removeDeactivateListener = function (type, callback) {\n window.onblur = null;\n };\n EventDispatcher.prototype.deactivateCallback = function (event) {\n if (event === void 0) { event = null; }\n this.dispatchEvent(new this.sec.flash.events.Event(Event.DEACTIVATE));\n };\n /*overwrite*/\n EventDispatcher.prototype.addEventListener = function (type, listener, useCapture, priority, useWeakReference) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n if (useWeakReference === void 0) { useWeakReference = false; }\n if (!useCapture && Event.isBroadcastEventType(type)) {\n BroadcastEventDispatchQueue.getInstance().add(type, this);\n }\n this.eventMapping || (this.eventMapping = {});\n this.eventMappingDummys || (this.eventMappingDummys = {});\n this.eventMappingExtern || (this.eventMappingExtern = {});\n this.eventMappingInvert || (this.eventMappingInvert = {});\n if (this.eventMappingDummys.hasOwnProperty(type)) {\n // this is a dummy eventMapping\n // this means that this is a event-type, that is not yet supported\n // we do not need to register it on superclass\n // for now we output a warning\n //console.log(\"Warning - EventDispatcher: trying to listen for unsupported event: :\n //\"+this.eventMappingDummys[type]);\n return;\n }\n else if (this.eventMapping.hasOwnProperty(type)) {\n // a mapping exists for this event\n //making sure standart behaviour still works (listener is tracked in list)\n _super.prototype.addEventListener.call(this, type, listener, useCapture, priority, useWeakReference);\n // call the provided \"addListener\" function\n this.eventMapping[type].addListener.call(this, this.eventMapping[type].adaptedType, this.eventMapping[type].callback, listener);\n return;\n }\n else {\n // this is a external eventMapping\n // this means that we do not need to create any mapping, and will manually dispatch the event\n // we still need to register it on superclass, so it will work if we dispatch it manually\n _super.prototype.addEventListener.call(this, type, listener, useCapture, priority, useWeakReference);\n return;\n }\n // if we make it here, the event is not handled by this dispatcher\n // lets output a Warning for now.\n //console.log(\"EventDispatcher: trying to listen for unknown event: '\"+type+\"'\")\n };\n /**\n * Remove an event listener\n * @method removeEventListener\n * @param {String} type of event to remove a listener for\n * @param {Function} listener function\n */\n EventDispatcher.prototype.removeEventListener = function (type, listener) {\n this.eventMapping || (this.eventMapping = {});\n this.eventMappingDummys || (this.eventMappingDummys = {});\n this.eventMappingExtern || (this.eventMappingExtern = {});\n this.eventMappingInvert || (this.eventMappingInvert = {});\n _super.prototype.removeEventListener.call(this, type, listener);\n if (this.eventMapping.hasOwnProperty(type)) {\n // a mapping exists\n this.eventMapping[type].removeListener.call(this, this.eventMapping[type].adaptedType, this.eventMapping[type].callback, listener);\n if (!this.hasEventListener(type)) {\n if (Event.isBroadcastEventType(type)) {\n BroadcastEventDispatchQueue.getInstance().remove(type, this);\n }\n }\n }\n };\n EventDispatcher.eventsThatBubbleInAwayJS = [\n MouseEvent.MOUSE_WHEEL,\n MouseEvent.MOUSE_UP,\n MouseEvent.MOUSE_OVER,\n MouseEvent.MOUSE_OUT,\n MouseEvent.ROLL_OVER,\n MouseEvent.ROLL_OUT,\n MouseEvent.MOUSE_MOVE,\n MouseEvent.MOUSE_DOWN,\n MouseEvent.DOUBLE_CLICK,\n MouseEvent.CLICK,\n Event.ENTER_FRAME,\n Event.EXIT_FRAME,\n Event.FRAME_CONSTRUCTED,\n Event.ADDED_TO_STAGE,\n Event.RESIZE,\n Event.REMOVED_FROM_STAGE,\n //KeyboardEvent.KEY_DOWN,\n //KeyboardEvent.KEY_UP,\n ];\n return EventDispatcher;\n}(EventDispatcherBase));\nexport { EventDispatcher };\nvar USE_WEAK = ('WeakRef' in self) && Settings.USE_WEAK_REF;\nif (USE_WEAK) {\n console.debug('[BroadcastEventDispatchQueue] `WeakRef` used for Broadcast Events!');\n}\nvar BroadcastEventDispatchQueue = /** @class */ (function () {\n function BroadcastEventDispatchQueue() {\n /**\n * The queues start off compact but can have null values if event targets are removed.\n * Periodically we compact them if too many null values exist.\n */\n this._queues = {};\n }\n BroadcastEventDispatchQueue.getInstance = function () {\n return BroadcastEventDispatchQueue._instance\n || (BroadcastEventDispatchQueue._instance = new BroadcastEventDispatchQueue());\n };\n BroadcastEventDispatchQueue.prototype.add = function (type, target) {\n // release || assert(Event.isBroadcastEventType(type), \"Can only register broadcast events.\");\n var queue = this._queues[type] || (this._queues[type] = []);\n if (queue[target.id])\n return;\n queue[target.id] = (USE_WEAK ? new self.WeakRef(target) : target);\n };\n BroadcastEventDispatchQueue.prototype.remove = function (type, target) {\n //release || assert (Event.isBroadcastEventType(type), \"Can only unregister broadcast events.\");\n var queue = this._queues[type];\n release || assert(queue, 'There should already be a queue for this.');\n delete queue[target.id];\n };\n BroadcastEventDispatchQueue.prototype.dispatchEvent = function (event) {\n //release || assert (event.isBroadcastEvent(), \"Cannot dispatch non-broadcast events.\");\n var queue = this._queues[event._type];\n //return if no listeners exist for event type\n if (!queue)\n return;\n for (var key in queue) {\n var target = queue[key];\n if (USE_WEAK)\n target = target === null || target === void 0 ? void 0 : target.deref();\n if (target) {\n var dispatchedEvent = new event.sec.flash.events.Event(event.type, event.bubbles, event.cancelable);\n dispatchedEvent._isBroadcastEvent = event._isBroadcastEvent;\n target.dispatchEvent(dispatchedEvent);\n }\n else {\n console.debug('[BroadcastEventDispatchQueue] Broadcast target was deleted by GC:', key);\n delete queue[key];\n }\n }\n };\n BroadcastEventDispatchQueue.prototype.getQueueLength = function (type) {\n return this._queues[type] ? Object.getOwnPropertyNames(this._queues[type]).length : 0;\n };\n return BroadcastEventDispatchQueue;\n}());\nexport { BroadcastEventDispatchQueue };\n","var _a;\nimport { DropShadowFilter } from './DropShadowFilter';\nimport { GlowFilter } from './GlowFilter';\nimport { BevelFilter } from './BevelFilter';\nimport { GradientGlowFilter } from './GradientGlowFilter';\nimport { GradientBevelFilter } from './GradientBevelFilter';\nimport { BlurFilter } from './BlurFilter';\nimport { ConvolutionFilter } from './ConvolutionFilter';\nimport { ColorMatrixFilter } from './ColorMatrixFilter';\nimport { FilterType } from '@awayfl/swf-loader';\nvar TYPE_FILTER_MAP = (_a = {},\n _a[FilterType.DROPSHADOW] = DropShadowFilter,\n _a[FilterType.GLOW] = GlowFilter,\n _a[FilterType.BEVEL] = BevelFilter,\n _a[FilterType.GRADIENTGLOW] = GradientGlowFilter,\n _a[FilterType.GRADIENTBEVEL] = GradientBevelFilter,\n _a[FilterType.BLUR] = BlurFilter,\n _a[FilterType.CONVOLUTION] = ConvolutionFilter,\n _a[FilterType.COLORMATRIX] = ColorMatrixFilter,\n _a);\n// WE can't use imports direct from BitmapFilter because filters extends it (circular reference)\nvar FilterBuilder = /** @class */ (function () {\n function FilterBuilder() {\n }\n FilterBuilder.FromUntyped = function (filter, sec) {\n if (!filter || !TYPE_FILTER_MAP[filter.type]) {\n return null;\n }\n return TYPE_FILTER_MAP[filter.type].FromUntyped(filter, sec);\n };\n return FilterBuilder;\n}());\nexport { FilterBuilder };\n","var StaticEvents = /** @class */ (function () {\n function StaticEvents() {\n }\n StaticEvents.events = {};\n return StaticEvents;\n}());\nexport { StaticEvents };\n","import { __extends } from \"tslib\";\nimport { clamp, isNullOrUndefined } from '@awayfl/swf-loader';\nimport { ASObject } from '@awayfl/avm2';\nvar BitmapFilter = /** @class */ (function (_super) {\n __extends(BitmapFilter, _super);\n function BitmapFilter() {\n return _super.call(this) || this;\n }\n BitmapFilter.prototype.clone = function () {\n return null;\n };\n BitmapFilter.prototype.toAwayObject = function () {\n return null;\n };\n // Called whenever the class is initialized.\n BitmapFilter.classInitializer = null;\n return BitmapFilter;\n}(ASObject));\nexport { BitmapFilter };\nvar GradientArrays = /** @class */ (function () {\n function GradientArrays() {\n }\n // colors null or empty - all empty\n // ratios empty - all empty\n // ratios null and alphas null - length: colors, alphas set to 0, ratios set to 0\n // ratios null and alphas != null - length: colors, alphas filled with 1, ratios set to 0\n // ratios not empty and alphas null - length: min(colors,ratios), alphas set to 0\n // ratios not empty and alphas != null - length: min(colors,ratios), alphas filled with 1\n GradientArrays.sanitize = function (colors, alphas, ratios) {\n if (isNullOrUndefined(colors) || colors.length === 0) {\n this.colors = [];\n this.alphas = [];\n this.ratios = [];\n }\n else {\n var len = void 0;\n if (isNullOrUndefined(ratios)) {\n this.colors = this.sanitizeColors(colors);\n len = this.colors.length;\n this.ratios = this.initArray(len);\n if (isNullOrUndefined(alphas)) {\n this.alphas = this.initArray(len);\n }\n else {\n this.alphas = this.sanitizeAlphas(alphas, len, len, 1);\n }\n }\n else {\n if (ratios.length === 0) {\n this.colors = [];\n this.alphas = [];\n this.ratios = [];\n }\n else {\n len = Math.min(colors.length, ratios.length, 16);\n this.colors = this.sanitizeColors(colors, len);\n this.ratios = this.sanitizeRatios(ratios, len);\n if (isNullOrUndefined(alphas)) {\n this.alphas = this.initArray(len);\n }\n else {\n this.alphas = this.sanitizeAlphas(alphas, len, len, 1);\n }\n }\n }\n }\n };\n GradientArrays.sanitizeColors = function (colors, maxLen) {\n if (maxLen === void 0) { maxLen = 16; }\n var arr = [];\n for (var i = 0, n = Math.min(colors.length, maxLen); i < n; i++) {\n arr[i] = (colors[i] >>> 0) & 0xffffff;\n }\n return arr;\n };\n GradientArrays.sanitizeAlphas = function (alphas, maxLen, minLen, value) {\n if (maxLen === void 0) { maxLen = 16; }\n if (minLen === void 0) { minLen = 0; }\n if (value === void 0) { value = 0; }\n var arr = [];\n var i;\n var n = Math.min(alphas.length, maxLen);\n for (i = 0; i < n; i++) {\n arr[i] = clamp(+alphas[i], 0, 1);\n }\n while (i < minLen) {\n arr[i++] = value;\n }\n return arr;\n };\n GradientArrays.sanitizeRatios = function (ratios, maxLen, minLen, value) {\n if (maxLen === void 0) { maxLen = 16; }\n if (minLen === void 0) { minLen = 0; }\n if (value === void 0) { value = 0; }\n var arr = [];\n var i;\n var n = Math.min(ratios.length, maxLen);\n for (i = 0; i < n; i++) {\n arr[i] = clamp(+ratios[i], 0, 255);\n }\n while (i < minLen) {\n arr[i++] = value;\n }\n return arr;\n };\n GradientArrays.initArray = function (len, value) {\n if (value === void 0) { value = 0; }\n var arr = Array(len);\n for (var i = 0; i < len; i++) {\n arr[i] = value;\n }\n return arr;\n };\n return GradientArrays;\n}());\nexport { GradientArrays };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter } from './BitmapFilter';\nimport { clamp, assert, release } from '@awayfl/swf-loader';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: DropShadowFilter\nvar DropShadowFilter = /** @class */ (function (_super) {\n __extends(DropShadowFilter, _super);\n function DropShadowFilter(distance, angle, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject) {\n if (distance === void 0) { distance = 4; }\n if (angle === void 0) { angle = 45; }\n if (color === void 0) { color = 0; }\n if (alpha === void 0) { alpha = 1; }\n if (blurX === void 0) { blurX = 4; }\n if (blurY === void 0) { blurY = 4; }\n if (strength === void 0) { strength = 1; }\n if (quality === void 0) { quality = 1; }\n if (inner === void 0) { inner = false; }\n if (knockout === void 0) { knockout = false; }\n if (hideObject === void 0) { hideObject = false; }\n var _this = _super.call(this) || this;\n _this.filterName = 'dropShadow';\n _this.distance = distance;\n _this.angle = angle;\n _this.color = color;\n _this.alpha = alpha;\n _this.blurX = blurX;\n _this.blurY = blurY;\n _this.strength = strength;\n _this.quality = quality;\n _this.inner = inner;\n _this.knockout = knockout;\n _this.hideObject = hideObject;\n return _this;\n }\n DropShadowFilter.FromUntyped = function (obj, sec) {\n // obj.colors is an array of RGBA colors.\n // Here it contains exactly one color object, which maps to color and alpha.\n release || assert(obj.colors && obj.colors.length === 1, 'colors must be Array of length 1');\n var color = obj.colors[0] >>> 8;\n var alpha = (obj.colors[0] & 0xff) / 0xff;\n // obj.angle is represented in radians, the api needs degrees\n var angle = obj.angle * 180 / Math.PI;\n // obj.compositeSource maps to !hideObject\n var hideObject = !obj.compositeSource;\n return new sec.flash.filters.DropShadowFilter(obj.distance, angle, color, alpha, obj.blurX, obj.blurY, obj.strength, obj.quality, obj.inner, obj.knockout, hideObject);\n };\n Object.defineProperty(DropShadowFilter.prototype, \"distance\", {\n get: function () {\n return this._distance;\n },\n set: function (value) {\n this._distance = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (value) {\n this._angle = +value % 360;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value /*uint*/) {\n this._color = (value >>> 0) & 0xffffff;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"alpha\", {\n get: function () {\n return this._alpha;\n },\n set: function (value) {\n this._alpha = clamp(+value, 0, 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"blurX\", {\n get: function () {\n return this._blurX;\n },\n set: function (value) {\n this._blurX = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"blurY\", {\n get: function () {\n return this._blurY;\n },\n set: function (value) {\n this._blurY = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"hideObject\", {\n get: function () {\n return this._hideObject;\n },\n set: function (value) {\n this._hideObject = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"inner\", {\n get: function () {\n return this._inner;\n },\n set: function (value) {\n this._inner = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"knockout\", {\n get: function () {\n return this._knockout;\n },\n set: function (value) {\n this._knockout = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"quality\", {\n get: function () {\n return this._quality;\n },\n set: function (value /*int*/) {\n this._quality = clamp(value | 0, 0, 15);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DropShadowFilter.prototype, \"strength\", {\n get: function () {\n return this._strength;\n },\n set: function (value) {\n this._strength = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n DropShadowFilter.prototype.toAwayObject = function () {\n return this;\n };\n DropShadowFilter.prototype.clone = function () {\n return new this.sec.flash.filters.DropShadowFilter(this._distance, this._angle, this._color, this._alpha, this._blurX, this._blurY, this._strength, this._quality, this._inner, this._knockout, this._hideObject);\n };\n // Called whenever the class is initialized.\n DropShadowFilter.classInitializer = null;\n // List of static symbols to link.\n DropShadowFilter.classSymbols = null; // [];\n // List of instance symbols to link.\n DropShadowFilter.instanceSymbols = null;\n return DropShadowFilter;\n}(BitmapFilter));\nexport { DropShadowFilter };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter } from './BitmapFilter';\nimport { assert, release, clamp } from '@awayfl/swf-loader';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: GlowFilter\nvar GlowFilter = /** @class */ (function (_super) {\n __extends(GlowFilter, _super);\n function GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout) {\n if (color === void 0) { color = 16711680; }\n if (alpha === void 0) { alpha = 1; }\n if (blurX === void 0) { blurX = 6; }\n if (blurY === void 0) { blurY = 6; }\n if (strength === void 0) { strength = 2; }\n if (quality === void 0) { quality = 1; }\n if (inner === void 0) { inner = false; }\n if (knockout === void 0) { knockout = false; }\n var _this = _super.call(this) || this;\n _this.filterName = 'glow';\n _this.color = color;\n _this.alpha = alpha;\n _this.blurX = blurX;\n _this.blurY = blurY;\n _this.strength = strength;\n _this.quality = quality;\n _this.inner = inner;\n _this.knockout = knockout;\n return _this;\n }\n GlowFilter.FromUntyped = function (obj, sec) {\n // obj.colors is an array of RGBA colors.\n // Here it contains exactly one color object, which maps to color and alpha.\n release || assert(obj.colors && obj.colors.length === 1, 'colors must be Array of length 1');\n var color = obj.colors[0] >>> 8;\n var alpha = (obj.colors[0] & 0xff) / 0xff;\n return new sec.flash.filters.GlowFilter(color, alpha, obj.blurX, obj.blurY, obj.strength, obj.quality, obj.inner, obj.knockout);\n };\n Object.defineProperty(GlowFilter.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value /*uint*/) {\n this._color = (value >>> 0) & 0xffffff;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlowFilter.prototype, \"alpha\", {\n get: function () {\n return this._alpha;\n },\n set: function (value) {\n this._alpha = clamp(+value, 0, 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlowFilter.prototype, \"blurX\", {\n get: function () {\n return this._blurX;\n },\n set: function (value) {\n this._blurX = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlowFilter.prototype, \"blurY\", {\n get: function () {\n return this._blurY;\n },\n set: function (value) {\n this._blurY = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlowFilter.prototype, \"inner\", {\n get: function () {\n return this._inner;\n },\n set: function (value) {\n this._inner = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlowFilter.prototype, \"knockout\", {\n get: function () {\n return this._knockout;\n },\n set: function (value) {\n this._knockout = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlowFilter.prototype, \"quality\", {\n get: function () {\n return this._quality;\n },\n set: function (value /*int*/) {\n this._quality = clamp(value | 0, 0, 15);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GlowFilter.prototype, \"strength\", {\n get: function () {\n return this._strength;\n },\n set: function (value) {\n this._strength = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n GlowFilter.prototype.toAwayObject = function () {\n return this;\n };\n GlowFilter.prototype.clone = function () {\n return new this.sec.flash.filters.GlowFilter(this._color, this._alpha, this._blurX, this._blurY, this._strength, this._quality, this._inner, this._knockout);\n };\n // Called whenever the class is initialized.\n GlowFilter.classInitializer = null;\n // List of static symbols to link.\n GlowFilter.classSymbols = null; // [];\n // List of instance symbols to link.\n GlowFilter.instanceSymbols = null;\n return GlowFilter;\n}(BitmapFilter));\nexport { GlowFilter };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: BitmapFilterType\nvar BitmapFilterType = /** @class */ (function (_super) {\n __extends(BitmapFilterType, _super);\n function BitmapFilterType() {\n return _super.call(this) || this;\n }\n // Called whenever the class is initialized.\n BitmapFilterType.classInitializer = null;\n // List of static symbols to link.\n BitmapFilterType.classSymbols = null; // [];\n // List of instance symbols to link.\n BitmapFilterType.instanceSymbols = null; // [];\n // JS -> AS Bindings\n BitmapFilterType.INNER = 'inner';\n BitmapFilterType.OUTER = 'outer';\n BitmapFilterType.FULL = 'full';\n return BitmapFilterType;\n}(ASObject));\nexport { BitmapFilterType };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter } from './BitmapFilter';\nimport { assert, release, clamp } from '@awayfl/swf-loader';\nimport { BitmapFilterType } from './BitmapFilterType';\nimport { axCoerceString, Errors } from '@awayfl/avm2';\nvar BevelFilter = /** @class */ (function (_super) {\n __extends(BevelFilter, _super);\n function BevelFilter(distance, angle, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout) {\n if (distance === void 0) { distance = 4; }\n if (angle === void 0) { angle = 45; }\n if (highlightColor === void 0) { highlightColor = 16777215; }\n if (highlightAlpha === void 0) { highlightAlpha = 1; }\n if (shadowColor === void 0) { shadowColor = 0; }\n if (shadowAlpha === void 0) { shadowAlpha = 1; }\n if (blurX === void 0) { blurX = 4; }\n if (blurY === void 0) { blurY = 4; }\n if (strength === void 0) { strength = 1; }\n if (quality === void 0) { quality = 1; }\n if (type === void 0) { type = 'inner'; }\n if (knockout === void 0) { knockout = false; }\n var _this = _super.call(this) || this;\n _this.filterName = 'bevel';\n _this.distance = distance;\n _this.angle = angle;\n _this.highlightColor = highlightColor;\n _this.highlightAlpha = highlightAlpha;\n _this.shadowColor = shadowColor;\n _this.shadowAlpha = shadowAlpha;\n _this.blurX = blurX;\n _this.blurY = blurY;\n _this.strength = strength;\n _this.quality = quality;\n _this.type = type;\n _this.knockout = knockout;\n return _this;\n }\n BevelFilter.FromUntyped = function (obj, sec) {\n // obj.colors is an array of RGBA colors.\n // Here it contains exactly two color objects (spec might state it differently):\n // - first maps to highlightColor and highlightAlpha;\n // - second maps to shadowColor and shadowAlpha;\n release || assert(obj.colors && obj.colors.length === 2, 'colors must be Array of length 2');\n var highlightColor = obj.colors[0] >>> 8;\n var highlightAlpha = (obj.colors[0] & 0xff) / 0xff;\n var shadowColor = obj.colors[1] >>> 8;\n var shadowAlpha = (obj.colors[1] & 0xff) / 0xff;\n // type is derived from obj.onTop and obj.innerShadow\n // obj.onTop true: type is FULL\n // obj.inner true: type is INNER\n // neither true: type is OUTER\n var type = BitmapFilterType.OUTER;\n if (obj.onTop) {\n type = BitmapFilterType.FULL;\n }\n else if (obj.inner) {\n type = BitmapFilterType.INNER;\n }\n // obj.angle is represented in radians, the api needs degrees\n var angle = obj.angle * 180 / Math.PI;\n return new sec.flash.filters.BevelFilter(obj.distance, angle, highlightColor, highlightAlpha, shadowColor, shadowAlpha, obj.blurX, obj.blurY, obj.strength, obj.quality, type, obj.knockout);\n };\n Object.defineProperty(BevelFilter.prototype, \"distance\", {\n get: function () {\n return this._distance;\n },\n set: function (value) {\n this._distance = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (value) {\n this._angle = +value % 360;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"highlightColor\", {\n get: function () {\n return this._highlightColor;\n },\n set: function (value /*uint*/) {\n this._highlightColor = (value >>> 0) & 0xffffff;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"highlightAlpha\", {\n get: function () {\n return this._highlightAlpha;\n },\n set: function (value) {\n this._highlightAlpha = clamp(+value, 0, 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"shadowColor\", {\n get: function () {\n return this._shadowColor;\n },\n set: function (value /*uint*/) {\n this._shadowColor = (value >>> 0) & 0xffffff;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"shadowAlpha\", {\n get: function () {\n return this._shadowAlpha;\n },\n set: function (value) {\n this._shadowAlpha = clamp(+value, 0, 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"blurX\", {\n get: function () {\n return this._blurX;\n },\n set: function (value) {\n this._blurX = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"blurY\", {\n get: function () {\n return this._blurY;\n },\n set: function (value) {\n this._blurY = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"knockout\", {\n get: function () {\n return this._knockout;\n },\n set: function (value) {\n this._knockout = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"quality\", {\n get: function () {\n return this._quality;\n },\n set: function (value /*int*/) {\n this._quality = clamp(value | 0, 0, 15);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"strength\", {\n get: function () {\n return this._strength;\n },\n set: function (value) {\n this._strength = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BevelFilter.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n set: function (value) {\n value = axCoerceString(value);\n if (value === null) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'type');\n }\n else {\n if (value === BitmapFilterType.INNER || value === BitmapFilterType.OUTER) {\n this._type = value;\n }\n else {\n this._type = BitmapFilterType.FULL;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n BevelFilter.prototype.clone = function () {\n return new this.sec.flash.filters.BevelFilter(this._distance, this._angle, this._highlightColor, this._highlightAlpha, this._shadowColor, this._shadowAlpha, this._blurX, this._blurY, this._strength, this._quality, this._type, this._knockout);\n };\n BevelFilter.prototype.toAwayObject = function () {\n return this;\n };\n // Called whenever the class is initialized.\n BevelFilter.classInitializer = null;\n // List of static symbols to link.\n BevelFilter.classSymbols = null; // [];\n // List of instance symbols to link.\n BevelFilter.instanceSymbols = null;\n return BevelFilter;\n}(BitmapFilter));\nexport { BevelFilter };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter, GradientArrays } from './BitmapFilter';\nimport { BitmapFilterType } from './BitmapFilterType';\nimport { clamp, isNullOrUndefined } from '@awayfl/swf-loader';\nimport { Errors, axCoerceString } from '@awayfl/avm2';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: GradientGlowFilter\nvar GradientGlowFilter = /** @class */ (function (_super) {\n __extends(GradientGlowFilter, _super);\n function GradientGlowFilter(distance, angle, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout) {\n if (distance === void 0) { distance = 4; }\n if (angle === void 0) { angle = 45; }\n if (colors === void 0) { colors = null; }\n if (alphas === void 0) { alphas = null; }\n if (ratios === void 0) { ratios = null; }\n if (blurX === void 0) { blurX = 4; }\n if (blurY === void 0) { blurY = 4; }\n if (strength === void 0) { strength = 1; }\n if (quality === void 0) { quality = 1; }\n if (type === void 0) { type = 'inner'; }\n if (knockout === void 0) { knockout = false; }\n var _this = _super.call(this) || this;\n _this.distance = distance;\n _this.angle = angle;\n GradientArrays.sanitize(colors ? colors.value : null, alphas ? alphas.value : null, ratios ? ratios.value : null);\n _this._colors = GradientArrays.colors;\n _this._alphas = GradientArrays.alphas;\n _this._ratios = GradientArrays.ratios;\n _this.blurX = blurX;\n _this.blurY = blurY;\n _this.strength = strength;\n _this.quality = quality;\n _this.type = type;\n _this.knockout = knockout;\n return _this;\n }\n GradientGlowFilter.FromUntyped = function (obj, sec) {\n // obj.colors is an array of RGBA colors.\n // The RGB and alpha parts must be separated into colors and alphas arrays.\n var colors = [];\n var alphas = [];\n for (var i = 0; i < obj.colors.length; i++) {\n var color = obj.colors[i];\n colors.push(color >>> 8);\n alphas.push(color & 0xff) / 0xff;\n }\n // type is derived from obj.onTop and obj.innerShadow\n // obj.onTop true: type is FULL\n // obj.inner true: type is INNER\n // neither true: type is OUTER\n var type = BitmapFilterType.OUTER;\n if (obj.onTop) {\n type = BitmapFilterType.FULL;\n }\n else if (obj.inner) {\n type = BitmapFilterType.INNER;\n }\n // obj.angle is represented in radians, the api needs degrees\n var angle = obj.angle * 180 / Math.PI;\n return new sec.flash.filters.GradientGlowFilter(obj.distance, angle, \n // Boxing these is obviously not ideal, but everything else is just annoying.\n sec.createArrayUnsafe(colors), sec.createArrayUnsafe(alphas), sec.createArrayUnsafe(obj.ratios), obj.blurX, obj.blurY, obj.strength, obj.quality, type, obj.knockout);\n };\n Object.defineProperty(GradientGlowFilter.prototype, \"distance\", {\n get: function () {\n return this._distance;\n },\n set: function (value) {\n this._distance = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (value) {\n this._angle = +value % 360;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"colors\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._colors.concat());\n },\n set: function (value) {\n if (isNullOrUndefined(value)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'colors');\n }\n this._colors = GradientArrays.sanitizeColors(value.value);\n var len = this._colors.length;\n this._alphas = GradientArrays.sanitizeAlphas(this._alphas, len, len);\n this._ratios = GradientArrays.sanitizeRatios(this._ratios, len, len);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"alphas\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._alphas.concat());\n },\n set: function (value) {\n if (isNullOrUndefined(value)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'alphas');\n }\n GradientArrays.sanitize(this._colors, value.value, this._ratios);\n this._colors = GradientArrays.colors;\n this._alphas = GradientArrays.alphas;\n this._ratios = GradientArrays.ratios;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"ratios\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._ratios.concat());\n },\n set: function (value_) {\n if (isNullOrUndefined(value_)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'ratios');\n }\n GradientArrays.sanitize(this._colors, this._alphas, value_.value);\n this._colors = GradientArrays.colors;\n this._alphas = GradientArrays.alphas;\n this._ratios = GradientArrays.ratios;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"blurX\", {\n get: function () {\n return this._blurX;\n },\n set: function (value) {\n this._blurX = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"blurY\", {\n get: function () {\n return this._blurY;\n },\n set: function (value) {\n this._blurY = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"knockout\", {\n get: function () {\n return this._knockout;\n },\n set: function (value) {\n this._knockout = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"quality\", {\n get: function () {\n return this._quality;\n },\n set: function (value /*int*/) {\n this._quality = clamp(value | 0, 0, 15);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"strength\", {\n get: function () {\n return this._strength;\n },\n set: function (value) {\n this._strength = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientGlowFilter.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n set: function (value) {\n value = axCoerceString(value);\n if (value === null) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'type');\n }\n else {\n if (value === BitmapFilterType.INNER || value === BitmapFilterType.OUTER) {\n this._type = value;\n }\n else {\n this._type = BitmapFilterType.FULL;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n GradientGlowFilter.prototype.clone = function () {\n return new this.sec.flash.filters.GradientGlowFilter(this._distance, this._angle, this.colors, this.alphas, this.ratios, this._blurX, this._blurY, this._strength, this._quality, this._type, this._knockout);\n };\n GradientGlowFilter.classInitializer = null;\n return GradientGlowFilter;\n}(BitmapFilter));\nexport { GradientGlowFilter };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter, GradientArrays } from './BitmapFilter';\nimport { BitmapFilterType } from './BitmapFilterType';\nimport { clamp, isNullOrUndefined } from '@awayfl/swf-loader';\nimport { Errors, axCoerceString } from '@awayfl/avm2';\nvar GradientBevelFilter = /** @class */ (function (_super) {\n __extends(GradientBevelFilter, _super);\n function GradientBevelFilter(distance, angle, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout) {\n if (distance === void 0) { distance = 4; }\n if (angle === void 0) { angle = 45; }\n if (colors === void 0) { colors = null; }\n if (alphas === void 0) { alphas = null; }\n if (ratios === void 0) { ratios = null; }\n if (blurX === void 0) { blurX = 4; }\n if (blurY === void 0) { blurY = 4; }\n if (strength === void 0) { strength = 1; }\n if (quality === void 0) { quality = 1; }\n if (type === void 0) { type = 'inner'; }\n if (knockout === void 0) { knockout = false; }\n var _this = _super.call(this) || this;\n _this.distance = distance;\n _this.angle = angle;\n GradientArrays.sanitize(colors ? colors.value : null, alphas ? alphas.value : null, ratios ? ratios.value : null);\n _this._colors = GradientArrays.colors;\n _this._alphas = GradientArrays.alphas;\n _this._ratios = GradientArrays.ratios;\n _this.blurX = blurX;\n _this.blurY = blurY;\n _this.strength = strength;\n _this.quality = quality;\n _this.type = type;\n _this.knockout = knockout;\n return _this;\n }\n GradientBevelFilter.FromUntyped = function (obj, sec) {\n // obj.colors is an array of RGBA colors.\n // The RGB and alpha parts must be separated into colors and alphas arrays.\n var colors = [];\n var alphas = [];\n for (var i = 0; i < obj.colors.length; i++) {\n var color = obj.colors[i];\n colors.push(color >>> 8);\n alphas.push(color & 0xff) / 0xff;\n }\n // type is derived from obj.onTop and obj.innerShadow\n // obj.onTop true: type is FULL\n // obj.inner true: type is INNER\n // neither true: type is OUTER\n var type = BitmapFilterType.OUTER;\n if (obj.onTop) {\n type = BitmapFilterType.FULL;\n }\n else if (obj.inner) {\n type = BitmapFilterType.INNER;\n }\n // obj.angle is represented in radians, the api needs degrees\n var angle = obj.angle * 180 / Math.PI;\n return new sec.flash.filters.GradientBevelFilter(obj.distance, angle, \n // Boxing these is obviously not ideal, but everything else is just annoying.\n sec.createArrayUnsafe(colors), sec.createArrayUnsafe(alphas), sec.createArrayUnsafe(obj.ratios), obj.blurX, obj.blurY, obj.strength, obj.quality, type, obj.knockout);\n };\n Object.defineProperty(GradientBevelFilter.prototype, \"distance\", {\n get: function () {\n return this._distance;\n },\n set: function (value) {\n this._distance = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (value) {\n this._angle = +value % 360;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"colors\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._colors.concat());\n },\n set: function (value) {\n if (isNullOrUndefined(value)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'colors');\n }\n this._colors = GradientArrays.sanitizeColors(value.value);\n var len = this._colors.length;\n this._alphas = GradientArrays.sanitizeAlphas(this._alphas, len, len);\n this._ratios = GradientArrays.sanitizeRatios(this._ratios, len, len);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"alphas\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._alphas.concat());\n },\n set: function (value) {\n if (isNullOrUndefined(value)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'alphas');\n }\n GradientArrays.sanitize(this._colors, value.value, this._ratios);\n this._colors = GradientArrays.colors;\n this._alphas = GradientArrays.alphas;\n this._ratios = GradientArrays.ratios;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"ratios\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._ratios.concat());\n },\n set: function (value_) {\n if (isNullOrUndefined(value_)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'ratios');\n }\n GradientArrays.sanitize(this._colors, this._alphas, value_.value);\n this._colors = GradientArrays.colors;\n this._alphas = GradientArrays.alphas;\n this._ratios = GradientArrays.ratios;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"blurX\", {\n get: function () {\n return this._blurX;\n },\n set: function (value) {\n this._blurX = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"blurY\", {\n get: function () {\n return this._blurY;\n },\n set: function (value) {\n this._blurY = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"knockout\", {\n get: function () {\n return this._knockout;\n },\n set: function (value) {\n this._knockout = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"quality\", {\n get: function () {\n return this._quality;\n },\n set: function (value /*int*/) {\n this._quality = clamp(value | 0, 0, 15);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"strength\", {\n get: function () {\n return this._strength;\n },\n set: function (value) {\n this._strength = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GradientBevelFilter.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n set: function (value) {\n value = axCoerceString(value);\n if (value === null) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'type');\n }\n else {\n if (value === BitmapFilterType.INNER || value === BitmapFilterType.OUTER) {\n this._type = value;\n }\n else {\n this._type = BitmapFilterType.FULL;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n GradientBevelFilter.prototype.toAwayObject = function () {\n return {\n filterName: 'bevel',\n distance: this._distance,\n angle: this._angle,\n blurX: this._blurX,\n blurY: this._blurY,\n strength: this._strength,\n quality: this._quality,\n type: this._type,\n knockout: this._knockout,\n colors: this._colors,\n alphas: this._alphas,\n ratios: this._ratios\n };\n };\n GradientBevelFilter.prototype.clone = function () {\n return new this.sec.flash.filters.GradientBevelFilter(this._distance, this._angle, this.colors, this.alphas, this.ratios, this._blurX, this._blurY, this._strength, this._quality, this._type, this._knockout);\n };\n // Called whenever the class is initialized.\n GradientBevelFilter.classInitializer = null;\n // List of static symbols to link.\n GradientBevelFilter.classSymbols = null; // [];\n // List of instance symbols to link.\n GradientBevelFilter.instanceSymbols = null;\n return GradientBevelFilter;\n}(BitmapFilter));\nexport { GradientBevelFilter };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter } from './BitmapFilter';\nimport { clamp } from '@awayfl/swf-loader';\nvar BlurFilter = /** @class */ (function (_super) {\n __extends(BlurFilter, _super);\n function BlurFilter(blurX, blurY, quality) {\n if (blurX === void 0) { blurX = 4; }\n if (blurY === void 0) { blurY = 4; }\n if (quality === void 0) { quality = 1; }\n var _this = _super.call(this) || this;\n _this.filterName = 'blur';\n _this.blurX = blurX;\n _this.blurY = blurY;\n _this.quality = quality;\n return _this;\n }\n BlurFilter.FromUntyped = function (obj, sec) {\n return new sec.flash.filters.BlurFilter(obj.blurX, obj.blurY, obj.quality);\n };\n Object.defineProperty(BlurFilter.prototype, \"blurX\", {\n get: function () {\n return this._blurX;\n },\n set: function (value) {\n this._blurX = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BlurFilter.prototype, \"blurY\", {\n get: function () {\n return this._blurY;\n },\n set: function (value) {\n this._blurY = clamp(+value, 0, 255);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BlurFilter.prototype, \"quality\", {\n get: function () {\n return this._quality;\n },\n set: function (value /*int*/) {\n this._quality = clamp(value | 0, 0, 15);\n },\n enumerable: false,\n configurable: true\n });\n BlurFilter.prototype.clone = function () {\n return new this.sec.flash.filters.BlurFilter(this._blurX, this._blurY, this._quality);\n };\n BlurFilter.prototype.toAwayObject = function () {\n return this;\n };\n // Called whenever the class is initialized.\n BlurFilter.classInitializer = null;\n // List of static symbols to link.\n BlurFilter.classSymbols = null; // [];\n // List of instance symbols to link.\n BlurFilter.instanceSymbols = null;\n return BlurFilter;\n}(BitmapFilter));\nexport { BlurFilter };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter } from './BitmapFilter';\nimport { clamp, isNullOrUndefined, toNumber } from '@awayfl/swf-loader';\nimport { Errors } from '@awayfl/avm2';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: ConvolutionFilter\nvar ConvolutionFilter = /** @class */ (function (_super) {\n __extends(ConvolutionFilter, _super);\n function ConvolutionFilter(matrixX, matrixY, matrix, divisor, bias, preserveAlpha, clamp, color, alpha) {\n if (matrixX === void 0) { matrixX = 0; }\n if (matrixY === void 0) { matrixY = 0; }\n if (matrix === void 0) { matrix = null; }\n if (divisor === void 0) { divisor = 1; }\n if (bias === void 0) { bias = 0; }\n if (preserveAlpha === void 0) { preserveAlpha = true; }\n if (clamp === void 0) { clamp = true; }\n if (color === void 0) { color = 0; }\n if (alpha === void 0) { alpha = 0; }\n var _this = _super.call(this) || this;\n _this.matrixX = matrixX;\n _this.matrixY = matrixY;\n if (matrix) {\n _this.matrix = matrix;\n }\n else {\n _this._matrix = _this._expandArray([], _this._matrixX * _this._matrixY);\n }\n _this.divisor = divisor;\n _this.bias = bias;\n _this.preserveAlpha = preserveAlpha;\n _this.clamp = clamp;\n _this.color = color;\n _this.alpha = alpha;\n return _this;\n }\n ConvolutionFilter.FromUntyped = function (obj, sec) {\n return new sec.flash.filters.ConvolutionFilter(obj.matrixX, obj.matrixY, obj.matrix, obj.divisor, obj.bias, obj.preserveAlpha, obj.clamp, \n // obj.color is an RGBA color.\n obj.color >>> 8, (obj.color & 0xff) / 0xff);\n };\n ConvolutionFilter.prototype._expandArray = function (a, newLen /*uint*/, value) {\n if (value === void 0) { value = 0; }\n if (a) {\n var i = a.length;\n while (i < newLen) {\n a[i++] = 0;\n }\n }\n return a;\n };\n Object.defineProperty(ConvolutionFilter.prototype, \"matrix\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._matrix.slice(0, this._matrixX * this._matrixY));\n },\n set: function (value_) {\n if (isNullOrUndefined(value_)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'matrix');\n }\n var value = value_.value;\n var actualLen = this._matrixX * this._matrixY;\n var minLen = Math.min(value.length, actualLen);\n var matrix = Array(minLen);\n for (var i = 0; i < minLen; i++) {\n matrix[i] = toNumber(value[i]);\n }\n this._expandArray(matrix, actualLen);\n this._matrix = matrix;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"matrixX\", {\n get: function () {\n return this._matrixX;\n },\n set: function (value) {\n var mx = clamp(+value, 0, 15) | 0;\n if (this._matrixX !== mx) {\n this._matrixX = mx;\n this._expandArray(this._matrix, mx * this._matrixY);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"matrixY\", {\n get: function () {\n return this._matrixY;\n },\n set: function (value) {\n var my = clamp(+value, 0, 15) | 0;\n if (this._matrixY !== my) {\n this._matrixY = my;\n this._expandArray(this._matrix, my * this._matrixX);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"divisor\", {\n get: function () {\n return this._divisor;\n },\n set: function (value) {\n this._divisor = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"bias\", {\n get: function () {\n return this._bias;\n },\n set: function (value) {\n this._bias = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"preserveAlpha\", {\n get: function () {\n return this._preserveAlpha;\n },\n set: function (value) {\n this._preserveAlpha = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"clamp\", {\n get: function () {\n return this._clamp;\n },\n set: function (value) {\n this._clamp = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value /*uint*/) {\n this._color = value >>> 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ConvolutionFilter.prototype, \"alpha\", {\n get: function () {\n return this._alpha;\n },\n set: function (value) {\n this._alpha = clamp(+value, 0, 1);\n },\n enumerable: false,\n configurable: true\n });\n ConvolutionFilter.prototype.clone = function () {\n return new this.sec.flash.filters.ConvolutionFilter(this._matrixX, this._matrixY, this.matrix, this._divisor, this._bias, this._preserveAlpha, this._clamp, this._color, this._alpha);\n };\n ConvolutionFilter.classInitializer = null;\n return ConvolutionFilter;\n}(BitmapFilter));\nexport { ConvolutionFilter };\n","import { __extends } from \"tslib\";\nimport { BitmapFilter } from './BitmapFilter';\nimport { toNumber, isNullOrUndefined } from '@awayfl/swf-loader';\nimport { Errors } from '@awayfl/avm2';\nvar ColorMatrixFilter = /** @class */ (function (_super) {\n __extends(ColorMatrixFilter, _super);\n function ColorMatrixFilter(matrix) {\n if (matrix === void 0) { matrix = null; }\n var _this = _super.call(this) || this;\n if (matrix) {\n _this.matrix = matrix;\n }\n else {\n _this._matrix = [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0\n ];\n }\n return _this;\n }\n ColorMatrixFilter.FromUntyped = function (obj, sec) {\n return new sec.flash.filters.ColorMatrixFilter(sec.createArrayUnsafe(obj.matrix));\n };\n ColorMatrixFilter.prototype._serialize = function (message) {\n var matrix = this._matrix;\n message.ensureAdditionalCapacity((matrix.length + 1) * 4);\n message.writeIntUnsafe(6);\n for (var i = 0; i < matrix.length; i++) {\n message.writeFloatUnsafe(matrix[i]);\n }\n };\n Object.defineProperty(ColorMatrixFilter.prototype, \"matrix\", {\n get: function () {\n return this.sec.createArrayUnsafe(this._matrix.concat());\n },\n set: function (value_) {\n if (isNullOrUndefined(value_)) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'matrix');\n }\n var matrix = [\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0\n ];\n var value = value_.value;\n for (var i = 0, n = Math.min(value.length, 20); i < n; i++) {\n matrix[i] = toNumber(value[i]);\n }\n this._matrix = matrix;\n },\n enumerable: false,\n configurable: true\n });\n ColorMatrixFilter.prototype.clone = function () {\n return new this.sec.flash.filters.ColorMatrixFilter(this.sec.createArrayUnsafe(this._matrix));\n };\n ColorMatrixFilter.prototype.toAwayObject = function () {\n return {\n filterName: 'colorMatrix',\n matrix: this._matrix\n };\n };\n ColorMatrixFilter.classInitializer = null;\n return ColorMatrixFilter;\n}(BitmapFilter));\nexport { ColorMatrixFilter };\n","import { __extends } from \"tslib\";\nimport { Point as AwayPoint, AbstractMethodError, Debug } from '@awayjs/core';\nimport { EventDispatcher, BroadcastEventDispatchQueue } from '../events/EventDispatcher';\nimport { Event } from '../events/Event';\nimport { StaticEvents } from '../events/StaticEvents';\nimport { DisplayObject as AwayDisplayObject, TextField } from '@awayjs/scene';\nimport { PickGroup } from '@awayjs/view';\nimport { constructClassFromSymbol } from '@awayfl/avm2';\nimport { AVMStage } from '@awayfl/swf-loader';\nimport { FilterBuilder } from '../filters/FilterBuilder';\nvar _v = new AwayPoint();\n/**\n * AS not allow NaN and infinity as MC property value\n * @param v\n */\nvar clampASValues = function (v) {\n if (isNaN(v))\n return 0;\n if (v === Infinity || v === -Infinity) {\n return -107374182.4;\n }\n return v;\n};\nvar DisplayObject = /** @class */ (function (_super) {\n __extends(DisplayObject, _super);\n /**\n *\n *\n * these events are handled from DisplayObjectContainer.\n * nothing really to much needs to be cnnected to awayjs.\n *\n * [broadcast event] Dispatched when the playhead is entering a new\n * frame.\n * @eventType\tflash.events.Event.ENTER_FRAME\n [Event(name=\"enterFrame\", type=\"flash.events.Event\")]\n\n * [broadcast event] Dispatched after the constructors of frame displayobjects have run\n * but before frame scripts have run.\n * @eventType\tflash.events.Event.FRAME_CONSTRUCTED\n [Event(name=\"frameConstructed\", type=\"flash.events.Event\")]\n\n * [broadcast event] Dispatched when the playhead is exiting the current frame.\n * @eventType\tflash.events.Event.EXIT_FRAME\n [Event(name=\"exitFrame\", type=\"flash.events.Event\")]\n\n * [broadcast event] Dispatched when the display list is about to be updated and rendered.\n * @eventType\tflash.events.Event.RENDER\n [Event(name=\"render\", type=\"flash.events.Event\")]\n\n * Dispatched when a displayobject is about to be removed from the display list,\n * either directly or through the removal of a sub tree in which the displayobject is contained.\n * @eventType\tflash.events.Event.REMOVED_FROM_STAGE\n [Event(name=\"removedFromStage\", type=\"flash.events.Event\")]\n\n * Dispatched when a displayobject is about to be removed from the display list.\n * @eventType\tflash.events.Event.REMOVED\n [Event(name=\"removed\", type=\"flash.events.Event\")]\n\n * Dispatched when a displayobject is added to the on stage display list,\n * either directly or through the addition of a sub tree in which the displayobject is contained.\n * @eventType\tflash.events.Event.ADDED_TO_STAGE\n [Event(name=\"addedToStage\", type=\"flash.events.Event\")]\n\n * Dispatched when a displayobject is added to the display list.\n * @eventType\tflash.events.Event.ADDED\n [Event(name=\"added\", type=\"flash.events.Event\")]\n\n * The DisplayObject class is the base class for all anys that can be placed on\n * the display list. The display list manages all anys displayed in the Flash runtimes.\n * Use the DisplayObjectContainer class to arrange the displayobjects in the display list.\n * DisplayObjectContainer anys can have child displayobjects, while other displayobjects, such as\n * Shape and TextField anys, are \"leaf\" nodes that have only parents and siblings, no children.\n *\n * <p class=\"- topic/p \">The DisplayObject class supports basic ality like the\n * <i class=\"+ topic/ph hi-d/i \">x</i> and <i class=\"+ topic/ph hi-d/i \">y</i> position of\n * an any, as well as more advanced properties of the any such as its transformation matrix.\n * </p><p class=\"- topic/p \">DisplayObject is an abstract base class; therefore,\n * you cannot call DisplayObject directly. Invoking\n * <codeph class=\"+ topic/ph pr-d/codeph \">new DisplayObject()</codeph> console.logs\n * an <codeph class=\"+ topic/ph pr-d/codeph \">ArgumentError</codeph> exception. </p>\n * <p class=\"- topic/p \">All displayobjects inherit from the DisplayObject class.</p>\n * <p class=\"- topic/p \">The DisplayObject class itself does not include any APIs for rendering content onscreen.\n * For that reason, if you want create a custom subclass of the DisplayObject class, you will want\n * to extend one of its subclasses that do have APIs for rendering content onscreen,\n * such as the Shape, Sprite, Bitmap, SimpleButton, TextField, or MovieClip class.</p>\n * <p class=\"- topic/p \">The DisplayObject class contains several broadcast events. Normally, the target\n * of any particular event is a specific DisplayObject instance. For example,\n * the target of an <codeph class=\"+ topic/ph pr-d/codeph \">added</codeph>\n * event is the specific DisplayObject instance\n * that was added to the display list. Having a single target restricts the placement of\n * event listeners to that target and in some cases the target's ancestors on the display list.\n * With broadcast events, however, the target is not a specific DisplayObject instance,\n * but rather all DisplayObject instances, including those that are not on the display list.\n * This means that you can add a listener to any DisplayObject instance to listen for broadcast events.\n * In addition to the broadcast events listed in the DisplayObject class's Events table,\n * the DisplayObject class also inherits two broadcast events from the EventDispatcher\n * class: <codeph class=\"+ topic/ph pr-d/codeph \">activate</codeph> and <codeph class=\"+ topic/ph pr-d/codeph \">\n * deactivate</codeph>.</p><p class=\"- topic/p \">Some properties previously used\n * in the ActionScript 1.0 and 2.0 MovieClip, TextField, and Button\n * classes (such as <codeph class=\"+ topic/ph pr-d/codeph \">_alpha</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">_height</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">_name</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">_width</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">_x</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">_y</codeph>, and others) have equivalents in the ActionScript 3.0\n * DisplayObject class that are renamed so that they no longer begin with the underscore (_) character.</p>\n * <p class=\"- topic/p \">For more information, see the \"Display Programming\" chapter of the\n * <i class=\"+ topic/ph hi-d/i \">ActionScript 3.0 Developer's Guide</i>.</p>\n\n */\n function DisplayObject() {\n var _this = _super.call(this) || this;\n // hack for TFL to return correct width / height for TextLine\n _this._forceWidth = 0;\n _this._forceHeight = 0;\n /**\n * We can't apply props before call constructor, store value\n * @private\n */\n _this.$lazyConstructProperty = {};\n DisplayObject.applyLazy(_this);\n _this._filters = _this._filters || _this.sec.createArrayUnsafe([]);\n _this._blockedByScript = false;\n _this._ctBlockedByScript = false;\n _this._visibilityByScript = false;\n // We should disable it and enable ONLY in interactiveObject\n _this.adaptee.mouseEnabled = false;\n // needed, because `this.stage` must already be available when constructor of extending classes are executed\n _this._stage = _this.activeStage;\n // no eventMapping needed for the DisplayObject-events.\n // they can all be dispatched without listening on other objects\n // still need to create a dummy mapping with empty message, in order to have them registered\n // (we want unknown events to fail when they try to register in addEventListener\n _this.eventMappingExtern[Event.ENTER_FRAME] = '';\n _this.eventMappingExtern[Event.FRAME_CONSTRUCTED] = '';\n _this.eventMappingExtern[Event.EXIT_FRAME] = '';\n _this.eventMappingExtern[Event.RENDER] = '';\n _this.eventMappingExtern[Event.REMOVED_FROM_STAGE] = '';\n _this.eventMappingExtern[Event.REMOVED] = '';\n _this.eventMappingExtern[Event.ADDED_TO_STAGE] = '';\n _this.eventMappingExtern[Event.ADDED] = '';\n _this._transform = new _this.sec.flash.geom.Transform(_this.adaptee.transform);\n return _this;\n }\n DisplayObject.defineLazy = function (obj, name, value) {\n if (obj._adaptee) {\n return false;\n }\n if (!obj.$lazyConstructProperty) {\n obj.$lazyConstructProperty = {};\n }\n obj.$lazyConstructProperty[name] = value;\n return true;\n };\n DisplayObject.applyLazy = function (obj) {\n if (!obj.$lazyConstructProperty) {\n return;\n }\n for (var prop in obj.$lazyConstructProperty) {\n if (prop in obj) {\n obj[prop] = obj.$lazyConstructProperty[prop];\n }\n }\n obj.$lazyConstructProperty = null;\n };\n DisplayObject.prototype.toString = function () {\n return \"[object \".concat(this.classInfo.instanceInfo.multiname.name, \"]\");\n };\n DisplayObject.prototype.applySymbol = function () {\n };\n DisplayObject.prototype.dispatchStaticEvent = function (eventName, target) {\n if (target === void 0) { target = null; }\n if (!StaticEvents.events[eventName])\n StaticEvents.events[eventName] = new this.sec.flash.events.Event(eventName);\n StaticEvents.events[eventName].target = target;\n this.dispatchEvent(StaticEvents.events[eventName]);\n };\n DisplayObject.prototype.dispatch_ADDED_TO_STAGE = function (dispatchForThisChild) {\n if (dispatchForThisChild === void 0) { dispatchForThisChild = false; }\n if (dispatchForThisChild) {\n this.adaptee.hasDispatchedAddedToStage = true;\n if (!StaticEvents.events[Event.ADDED_TO_STAGE])\n StaticEvents.events[Event.ADDED_TO_STAGE] =\n new this.sec.flash.events.Event(Event.ADDED_TO_STAGE);\n StaticEvents.events[Event.ADDED_TO_STAGE].target = this;\n this.dispatchEvent(StaticEvents.events[Event.ADDED_TO_STAGE]);\n }\n };\n DisplayObject.prototype.dispatch_REMOVED_FROM_STAGE = function (dispatchForThisChild) {\n if (dispatchForThisChild === void 0) { dispatchForThisChild = false; }\n if (dispatchForThisChild) {\n this.adaptee.hasDispatchedAddedToStage = false;\n if (!StaticEvents.events[Event.REMOVED_FROM_STAGE])\n StaticEvents.events[Event.REMOVED_FROM_STAGE] =\n new this.sec.flash.events.Event(Event.REMOVED_FROM_STAGE);\n StaticEvents.events[Event.REMOVED_FROM_STAGE].target = this;\n this.dispatchEvent(StaticEvents.events[Event.REMOVED_FROM_STAGE]);\n }\n };\n DisplayObject.prototype.dispatchStaticBroadCastEvent = function (eventName) {\n if (!StaticEvents.events[eventName])\n StaticEvents.events[eventName] = new this.sec.flash.events.Event(eventName);\n BroadcastEventDispatchQueue.getInstance().dispatchEvent(StaticEvents.events[eventName]);\n };\n DisplayObject.prototype.updateFilters = function (newFilters) {\n var filters = [];\n if (newFilters && newFilters.length) {\n for (var _i = 0, newFilters_1 = newFilters; _i < newFilters_1.length; _i++) {\n var filter = newFilters_1[_i];\n var asFilter = FilterBuilder.FromUntyped(filter, this.sec);\n asFilter && filters.push(asFilter);\n }\n }\n this.filters = this.sec.createArrayUnsafe(filters);\n };\n DisplayObject.prototype.createAdaptee = function () {\n return new AwayDisplayObject();\n };\n DisplayObject.prototype.mapAdaptee = function (adaptee) {\n if (adaptee) {\n // if (!adaptee.partition)\n // \tadaptee.partition = new SceneGraphPartition(adaptee);\n adaptee.adapter = this;\n }\n return adaptee;\n };\n Object.defineProperty(DisplayObject.prototype, \"activeStage\", {\n get: function () {\n /*if ((<SecurityDomain> this.sec).flash.display.DisplayObject.axClass._activeStage == null) {\n console.log(\"ERROR: a Stage must have been created before any Sprite can be created!\")\n }*/\n return this.sec.flash.display.DisplayObject.axClass._activeStage;\n },\n enumerable: false,\n configurable: true\n });\n //\t\tuse to dispatch events on a object and all its childs\n //\t\toverwritten in DisplayObjectContainer to work recursivly on children\n // \t\tused for:\n //\t\t- REMOVED_FROM_STAGE\n //\t\t- ADDED_TO_STAGE\n DisplayObject.prototype.dispatchEventRecursive = function (event) { this.dispatchEvent(event); };\n Object.defineProperty(DisplayObject.prototype, \"node\", {\n // --------------------- stuff needed because of implementing the existing IDisplayObjectAdapter\n get: function () {\n if (!this._node)\n this._node = AVMStage.instance().view.getNode(this._adaptee);\n return this._node;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee || (this.adaptee = this.createAdaptee());\n },\n set: function (value) {\n if (this._adaptee == value)\n return;\n if (this._adaptee)\n this._adaptee.adapter = null;\n this._adaptee = this.mapAdaptee(value);\n },\n enumerable: false,\n configurable: true\n });\n DisplayObject.prototype.initAdapter = function () { };\n DisplayObject.prototype.isBlockedByScript = function () {\n //console.log(\"isBlockedByScript not implemented yet in flash/DisplayObject\");\n return this._blockedByScript;\n };\n DisplayObject.prototype.isVisibilityByScript = function () {\n //console.log(\"isVisibilityByScript not implemented yet in flash/DisplayObject\");\n return this._visibilityByScript;\n };\n DisplayObject.prototype.isColorTransformByScript = function () {\n //console.log(\"isVisibilityByScript not implemented yet in flash/DisplayObject\");\n return this._ctBlockedByScript;\n };\n DisplayObject.prototype.freeFromScript = function () {\n //console.log(\"freeFromScript not implemented yet in flash/DisplayObject\");\n this._blockedByScript = false;\n this._ctBlockedByScript = false;\n this._visibilityByScript = false;\n };\n DisplayObject.prototype.clone = function () {\n if (!this._symbol) {\n throw ('_symbol not defined when cloning movieclip');\n }\n var clone = constructClassFromSymbol(this._symbol, this._symbol.symbolClass);\n clone.axInitializer();\n clone.loaderInfo = this.loaderInfo;\n this.adaptee.copyTo(clone.adaptee);\n return clone;\n };\n DisplayObject.prototype.dispose = function () {\n throw new AbstractMethodError();\n };\n /**\n * @inheritDoc\n */\n DisplayObject.prototype.disposeValues = function () {\n this.adaptee = null;\n };\n Object.defineProperty(DisplayObject.prototype, \"accessibilityProperties\", {\n //---------------------------original as3 properties / methods:\n /**\n * The current accessibility options for this displayobject. If you modify the accessibilityProperties\n * property or any of the fields within accessibilityProperties, you must call\n * the Accessibility.updateProperties() method to make your changes take effect.\n *\n * Note: For an any created in the Flash authoring environment, the value of accessibilityProperties\n * is prepopulated with any information you entered in the Accessibility panel for\n * that any.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'get accessibilityProperties', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'set accessibilityProperties', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"alpha\", {\n /**\n * Indicates the alpha transparency value of the any specified.\n * Valid values are 0 (fully transparent) to 1 (fully opaque).\n * The default value is 1. displayobjects with alpha\n * set to 0 are active, even though they are invisible.\n */\n get: function () {\n return this.adaptee.alpha;\n },\n set: function (value) {\n this._ctBlockedByScript = true;\n this.adaptee.alpha = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"blendMode\", {\n /**\n * A value from the BlendMode class that specifies which blend mode to use.\n * A bitmap can be drawn internally in two ways. If you have a blend mode enabled or an\n * external clipping mask, the bitmap is drawn by adding a bitmap-filled square shape to the vector\n * render. If you attempt to set this property to an invalid value, Flash runtimes set the value\n * to BlendMode.NORMAL.\n *\n * The blendMode property affects each pixel of the displayobject.\n * Each pixel is composed of three constituent\n * colors (red, green, and blue), and each constituent color has a value between 0x00 and 0xFF.\n * Flash Player or Adobe AIR compares each constituent color of one pixel in the movie clip with\n * the corresponding color of the pixel in the background. For example, if blendMode\n * is set to BlendMode.LIGHTEN, Flash Player or Adobe AIR compares the red value of the displayobject with\n * the red value of the background, and uses the lighter of the two as the\n * value for the red component of the displayed color.The following table describes the blendMode settings.\n * The BlendMode class defines string values you can use.\n * The illustrations in the table show blendMode values applied to a circular\n * displayobject (2) superimposed on another displayobject (1).\n * BlendMode ConstantIllustrationDescription\n * BlendMode.NORMAL\n * The displayobject appears in front of the background. Pixel values of the displayobject\n * override those of the background. Where the displayobject is transparent, the background is\n * visible.BlendMode.LAYERForces the creation of a transparency group for the displayobject.\n * This means that the display\n * any is pre-composed in a temporary buffer before it is processed further. This is done\n * automatically if the displayobject is pre-cached using bitmap caching or if the displayobject is\n * a displayobject container with at least one child any with a blendMode\n * setting other than BlendMode.NORMAL. Not supported under GPU rendering.\n *\n * BlendMode.MULTIPLYMultiplies the values of the displayobject constituent\n * colors by the colors of the background color,\n * and then normalizes by dividing by 0xFF,\n * resulting in darker colors. This setting is commonly used for shadows and depth effects.\n * For example, if a constituent color (such as red) of one pixel in the displayobject and the\n * corresponding color of the pixel in the background both have the value 0x88, the multiplied\n * result is 0x4840. Dividing by 0xFF yields a value of 0x48 for that constituent color,\n * which is a darker shade than the color of the displayobject or the color of the background.\n *\n * BlendMode.SCREEN Multiplies the complement (inverse) of the displayobject color by the complement\n * of the background color, resulting in a bleaching effect.\n * This setting is commonly used for highlights or to remove black areas of the displayobject.\n *\n * BlendMode.LIGHTEN Selects the lighter of the constituent colors of the displayobject and the\n * color of the background (the colors with the larger values).\n * This setting is commonly used for superimposing type.\n * For example, if the displayobject has a pixel with an RGB value of 0xFFCC33, and the background\n * pixel has an RGB value of 0xDDF800, the resulting RGB value for the displayed pixel is\n * 0xFFF833 (because 0xFF > 0xDD, 0xCC < 0xF8, and 0x33 > 0x00 = 33).\n * Not supported under GPU rendering.\n *\n * BlendMode.DARKEN Selects the darker of the constituent colors of the displayobject and the colors of the\n * background (the colors with the smaller values). This setting is commonly used for superimposing type.\t *\n * For example, if the displayobject has a pixel with an RGB value of 0xFFCC33, and the background\n * pixel has an RGB value of 0xDDF800, the resulting RGB value for the displayed pixel is\n * 0xDDCC00 (because 0xFF > 0xDD, 0xCC < 0xF8, and 0x33 > 0x00 = 33).\n * Not supported under GPU rendering.\n *\n * BlendMode.DIFFERENCE Compares the constituent colors of the displayobject with the colors\n * of its background, and subtracts the darker of the values of the two constituent colors from the lighter value.\n * This setting is commonly used for more vibrant colors.\t *\n * For example, if the displayobject has a pixel with an RGB value of 0xFFCC33, and the background\n * pixel has an RGB value of 0xDDF800, the resulting RGB value for the displayed pixel is\n * 0x222C33 (because 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C, and 0x33 - 0x00 = 0x33).\n *\n * BlendMode.ADD Adds the values of the constituent colors of the displayobject to the colors of its background,\n * applying a ceiling of 0xFF. This setting is commonly used for animating a lightening dissolve between\n * two anys.\t *\n * For example, if the displayobject has a pixel with an RGB value of 0xAAA633, and the background\n * pixel has an RGB value of 0xDD2200, the resulting RGB value for the displayed pixel is\n * 0xFFC833 (because 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8, and 0x33 + 0x00 = 0x33).\n *\n * BlendMode.SUBTRACTSubtracts the values of the constituent colors in the displayobject from the values of the\n * background color, applying a floor of 0. This setting is commonly used for animating a\n * darkening dissolve between two anys.\n * For example, if the displayobject has a pixel with an RGB value of 0xAA2233, and the background\n * pixel has an RGB value of 0xDDA600, the resulting RGB value for the displayed pixel is\n * 0x338400 (because 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84, and 0x00 - 0x33 < 0x00).\n *\n * BlendMode.INVERT Inverts the background.\n * BlendMode.ALPHA Applies the alpha value of each pixel of the displayobject to the background.\n * This requires the blendMode setting of the parent displayobject to be set to BlendMode.LAYER.\n * For example, in the illustration, the parent displayobject, which is a white background,\n * has blendMode = BlendMode.LAYER. Not supported under GPU rendering.\n *\n * BlendMode.ERASE Erases the background based on the alpha value of the displayobject.\n * This requires the blendMode of the parent displayobject to be set to BlendMode.LAYER.\n * For example, in the illustration, the parent displayobject, which is a white background, has\n * blendMode = BlendMode.LAYER. Not supported under GPU rendering.\n *\n * BlendMode.OVERLAY Adjusts the color of each pixel based on the darkness of the background.\n * If the background is lighter than 50% gray, the displayobject and background colors are\n * screened, which results in a lighter color. If the background is darker than 50% gray,\n * the colors are multiplied, which results in a darker color.\n * This setting is commonly used for shading effects. Not supported under GPU rendering.\n *\n * BlendMode.HARDLIGHTAdjusts the color of each pixel based on the darkness of the displayobject.\n * If the displayobject is lighter than 50% gray, the displayobject and background colors are\n * screened, which results in a lighter color. If the displayobject is darker than 50% gray,\n * the colors are multiplied, which results in a darker color.\n * This setting is commonly used for shading effects. Not supported under GPU rendering.\n *\n * BlendMode.SHADERN/AAdjusts the color using a custom shader routine. The shader that is used is specified\n * as the Shader instance assigned to the blendShader property. Setting the\n * blendShader property of a displayobject to a Shader instance\n * automatically sets the displayobject's blendMode property to\n * BlendMode.SHADER. If the blendMode property is set to\n * BlendMode.SHADER without first setting the blendShader property,\n * the blendMode property is set to BlendMode.NORMAL. Not supported under GPU rendering.\n */\n get: function () {\n return this._adaptee.blendMode;\n },\n set: function (value) {\n this._adaptee.blendMode = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"blendShader\", {\n /**\n * Sets a shader that is used for blending the foreground and background. When the\n * blendMode property is set to BlendMode.SHADER, the specified\n * Shader is used to create the blend mode output for the displayobject.\n *\n * Setting the blendShader property of a displayobject to a Shader instance\n * automatically sets the displayobject's blendMode property to\n * BlendMode.SHADER. If the blendShader property is set (which sets the\n * blendMode property to BlendMode.SHADER), then the value of the\n * blendMode property is changed, the blend mode can be reset to use the blend\n * shader simply by setting the blendMode property to BlendMode.SHADER.\n * The blendShader property does not need to be set again except to change the\n * shader that's used for the blend mode.The Shader assigned to the blendShader property must specify at least two\n * image4 inputs. The inputs do not need to be specified in code using the\n * associated ShaderInput anys' input properties. The background displayobject\n * is automatically\n * used as the first input (the input with index 0). The foreground displayobject\n * is used as the second input (the input with index 1). A shader used as a blend\n * shader can specify more than two inputs. In that case, any additional input must be specified\n * by setting its ShaderInput instance's input property.\n * When you assign a Shader instance to this property the shader is copied internally. The\n * blend operation uses that internal copy, not a reference to the original shader. Any changes\n * made to the shader, such as changing a parameter value, input, or bytecode, are not applied\n * to the copied shader that's used for the blend mode.\n * @langversion\t3.0\n * @playerversion\tFlash 10\n * @playerversion\tAIR 1.5\n * @console.logs\tArgumentError When the shader output type is not compatible with this operation\n * (the shader must specify a pixel4\n * output).\n * @console.logs\tArgumentError When the shader specifies fewer than two image inputs or the first\n * two inputs are not image4 inputs.\n * @console.logs\tArgumentError When the shader specifies an image input that isn't provided.\n * @console.logs\tArgumentError When a Byte[] or Vector.<number> instance is used as\n * an input and the width\n * and height properties aren't specified for the\n * ShaderInput, or the specified values don't match the amount of\n * data in the input any. See the ShaderInput.input\n * property for more information.\n */\n set: function (_value) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'set blendShader', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"cacheAsBitmap\", {\n /**\n * If set to true, Flash runtimes cache an internal bitmap representation of the\n * displayobject. This caching can increase performance for displayobjects that contain complex\n * vector content.\n *\n * All vector data for a displayobject that has a cached bitmap is drawn to the bitmap\n * instead of the main display. If cacheAsBitmapMatrix is null or unsupported,\n * the bitmap is then copied to the main display as unstretched, unrotated pixels snapped to\n * the nearest pixel boundaries. Pixels are mapped 1 to 1 with\n * the parent any. If the bounds of the bitmap change, the bitmap is recreated instead\n * of being stretched.If cacheAsBitmapMatrix is non-null and supported, the any is drawn to the off-screen bitmap\n * using that matrix and the stretched and/or rotated results of that rendering are used\n * to draw the any to the main display.No internal bitmap is created unless the cacheAsBitmap property is set to\n * true.After you set the cacheAsBitmap property to true,\n * the rendering does not change, however the displayobject performs pixel snapping\n * automatically. The animation speed can be significantly faster depending\n * on the complexity of the vector content.\n * The cacheAsBitmap property is automatically set to true\n * whenever you apply a filter to a displayobject (when its filter [] is not empty),\n * and if a displayobject has a filter applied to it, cacheAsBitmap is reported as\n * true for that displayobject, even if you set the property to false.\n * If you clear all filters for a displayobject, the cacheAsBitmap setting changes to\n * what it was last set to.A displayobject does not use a bitmap even if the cacheAsBitmap\n * property is set to true and instead renders from vector data in the following cases:The bitmap is too large.\n * In AIR 1.5 and Flash Player 10, the maximum size for a bitmap image is 8,191 pixels in width or height,\n * and the total number of pixels cannot exceed 16,777,215 pixels. (So, if a bitmap image is 8,191 pixels\n * wide, it can only be 2,048 pixels high.) In Flash Player 9 and earlier, the limitation is\n * is 2880 pixels in height and 2,880 pixels in width.The bitmap fails to allocate (out of memory error).\n * The cacheAsBitmap property is best used with movie clips that have\n * mostly static content and that do not scale and rotate frequently. With such movie\n * clips, cacheAsBitmap can lead to performance increases when the\n * movie clip is translated (when its x and y position is changed).\n */\n get: function () {\n return this.adaptee.cacheAsBitmap;\n },\n set: function (value) {\n this.adaptee.cacheAsBitmap = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"filters\", {\n /**\n * An indexed [] that contains each filter any currently associated with the displayobject.\n * The flash.filters package contains several classes that define specific filters you can\n * use.\n *\n * Filters can be applied in Flash Professional at design time, or at run time by using\n * ActionScript code. To apply a filter by using ActionScript, you must make a temporary copy of the\n * entire filters [], modify the temporary [], then assign the value\n * of the temporary [] back to the filters []. You cannot directly\n * add a new filter any to the filters [].To add a filter by using ActionScript,\n * perform the following steps (assume that the\n * target displayobject is named myDisplayObject):Create a new filter any by using the constructor\n * method of your chosen filter class.Assign the value of the myDisplayObject.filters [] to a temporary [], such\n * as one named myFilters.Add the new filter any to the myFilters temporary [].\n * Assign the value of the temporary [] to the myDisplayObject.filters [].\n * If the filters [] is undefined, you do not need to use a temporary [].\n * Instead, you can directly assign an [] literal that contains one or more filter anys that\n * you create. The first example in the Examples section adds a drop shadow filter by using\n * code that handles both defined and undefined filters []s.To modify an existing filter any,\n * you must use the technique of modifying a copy of the filters []:\n * Assign the value of the filters [] to a temporary [], such as one\n * named myFilters.Modify the property by using the temporary [], myFilters. For example,\n * to set the quality property of the first filter in the [], you could use the\n * following code: myFilters[0].quality = 1;\n * Assign the value of the temporary [] to the filters [].\n * At load time, if a displayobject has an associated filter, it is marked to cache itself as a\n * transparent bitmap. From this point forward, as long as the displayobject has a valid filter list,\n * the player caches the displayobject as a bitmap. This source bitmap is used as a source\n * image for the filter effects. Each displayobject usually has two bitmaps: one with the\n * original unfiltered source displayobject and another for the final image after filtering.\n * The final image is used when rendering. As long as the displayobject does not\n * change, the final image does not need updating.\n * The flash.filters package includes classes for filters. For example, to create a DropShadow\n * filter, you would write:\n * <codeblock>\n *\n * import flash.filters.DropShadowFilter\n * var myFilter:DropShadowFilter =\n * new DropShadowFilter (distance, angle, color, alpha, blurX, blurY, quality, inner, knockout)\n *\n * </codeblock>\n * You can use the is operator to determine the type of filter assigned to\n * each index position in the filter []. For example, the following code shows\n * how to determine the position of the first filter in the filters [] that\n * is a DropShadowFilter:\n *\n * <codeblock>\n *\n * import flash.text.TextField;\n * import flash.filters.~~;\n * var tf:TextField = new TextField();\n * var filter1:DropShadowFilter = new DropShadowFilter();\n * var filter2:GradientGlowFilter = new GradientGlowFilter();\n * tf.filters = [filter1, filter2];\n *\n * tf.text = \"DropShadow index: \" + filterPosition(tf, DropShadowFilter).tostring(); // 0\n * addChild(tf)\n *\n * filterPosition(DisplayObject:DisplayObject, filterClass:Class):int {\n * for (var i:uint = 0; i < DisplayObject.filters.length; i++) {\n * if (DisplayObject.filters[i] is filterClass) {\n * return i;\n * }\n * }\n * return -1;\n * }\n *\n * </codeblock>\n * Note: Since you cannot directly add a new filter any to the\n * DisplayObject.filters [], the following code has no\n * effect on the target displayobject, named myDisplayObject:\n * <codeblock>\n *\n * myDisplayObject.filters.push(myDropShadow);\n *\n * </codeblock>\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @console.logs\tArgumentError When filters includes a ShaderFilter and the shader\n * output type is not compatible with this operation\n * (the shader must specify a pixel4\n * output).\n * @console.logs\tArgumentError When filters includes a ShaderFilter and the shader\n * doesn't specify any image input or the first\n * input is not an image4 input.\n * @console.logs\tArgumentError When filters includes a ShaderFilter and the shader\n * specifies an image input that isn't provided.\n * @console.logs\tArgumentError When filters includes a ShaderFilter, a\n * Byte[] or Vector.<number> instance as\n * a shader input, and the width\n * and height properties aren't specified for the\n * ShaderInput any, or the specified values don't match the amount of\n * data in the input data. See the ShaderInput.input\n * property for more information.\n */\n get: function () {\n return this._filters;\n },\n set: function (value) {\n if (this._filters == value)\n return;\n this._filters = value;\n //@ts-ignore\n this._adaptee.filters = value === null || value === void 0 ? void 0 : value.value.map(function (e) { return e.toAwayObject(); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"height\", {\n /**\n * Indicates the height of the displayobject, in pixels.\n * The height is calculated based on the bounds of the content of the displayobject.\n * When you set the height property, the scaleY property is adjusted accordingly, as shown in the\n * following code:\n *\n * <codeblock>\n *\n * var rect:Shape = new Shape();\n * rect.graphics.beginFill(0xFF0000);\n * rect.graphics.drawRect(0, 0, 100, 100);\n * trace(rect.scaleY) // 1;\n * rect.height = 200;\n * trace(rect.scaleY) // 2;\n * </codeblock>\n * Except for TextField and Video anys, a displayobject with no content (such as an empty sprite) has a height\n * of 0, even if you try to set height to a different value.\n */\n get: function () {\n if (this._forceHeight != 0)\n return this._forceHeight;\n if (this.adaptee.isAsset(TextField)) {\n return this.adaptee.height;\n }\n var box = this.getBoundsInternal(this.parent || this._stage);\n return (box == null) ? 0 : Math.round(box.height * 20) / 20;\n },\n set: function (value) {\n if (isNaN(value))\n return;\n value = clampASValues(value);\n // round to twips\n value = Math.round(value * 20) / 20;\n this._blockedByScript = true;\n // this should be done by overwriting the width-getter in TextField- but it doesnt work\n if (this.adaptee.isAsset(TextField)) {\n this.adaptee.height = value;\n return;\n }\n PickGroup.getInstance().getBoundsPicker(this.node).height = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"loaderInfo\", {\n /**\n * Returns a LoaderInfo any containing information about loading the file\n * to which this displayobject belongs. The loaderInfo property is defined only\n * for the root displayobject of a SWF file or for a loaded Bitmap (not for a Bitmap that is drawn\n * with ActionScript). To find the loaderInfo any associated with the SWF file that contains\n * a displayobject named myDisplayObject, use myDisplayObject.root.loaderInfo.\n *\n * A large SWF file can monitor its download by calling\n * this.root.loaderInfo.addEventListener(Event.COMPLETE, func).\n */\n get: function () {\n var _a;\n return this._loaderInfo || ((_a = this.root) === null || _a === void 0 ? void 0 : _a._loaderInfo);\n },\n set: function (value) {\n this._loaderInfo = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"mask\", {\n /**\n * The calling displayobject is masked by the specified mask any.\n * To ensure that masking works when the Stage is scaled, the mask displayobject\n * must be in an active part of the display list. The mask any itself is not drawn.\n * Set mask to null to remove the mask.\n *\n * To be able to scale a mask any, it must be on the display list. To be able to drag a mask Sprite any\n * (by calling its startDrag() method), it must be on the display list. To call the\n * startDrag() method for a mask sprite based on a mouseDown event\n * being dispatched by the sprite, set the sprite's buttonMode property to true.\n * When displayobjects are cached by setting the cacheAsBitmap property to\n * true an the cacheAsBitmapMatrix property to a Matrix any,\n * both the mask and the displayobject being masked must be part of the same cached\n * bitmap. Thus, if the displayobject is cached, then the mask must be a child of the displayobject.\n * If an ancestor of the displayobject on the display list is cached, then the mask must be a child of\n * that ancestor or one of its descendents. If more than one ancestor of the masked any is cached,\n * then the mask must be a descendent of the cached container closest to the masked any in the display list.\n * Note: A single mask any cannot be used to mask more than one calling displayobject.\n * When the mask is assigned to a second displayobject, it is removed as the mask of the first\n * any, and that any's mask property becomes null.\n */\n /**\n * Magic, timeline can assign a MC with name 'mask' but we should apply it as mask\n * NOT ASSIGN DEFAULT! Because this value settings before execute constructor\n */\n get: function () {\n var _a;\n return ((_a = this.adaptee.mask) === null || _a === void 0 ? void 0 : _a.adapter) || null;\n },\n set: function (value) {\n this.adaptee.mask = (value === null || value === void 0 ? void 0 : value.adaptee) || null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"metaData\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'get metaData', '');\n return null;\n },\n set: function (_data) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'set metaData', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"mouseX\", {\n /**\n * Indicates the x coordinate of the mouse or user input device position, in pixels.\n *\n * Note: For a DisplayObject that has been rotated, the returned x coordinate will reflect the\n * non-rotated Point.\n */\n get: function () {\n _v.setTo(this._stage.mouseX, this._stage.mouseY);\n this.node.globalToLocal(_v, _v);\n return Math.floor(_v.x);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"mouseY\", {\n /**\n * Indicates the y coordinate of the mouse or user input device position, in pixels.\n *\n * Note: For a DisplayObject that has been rotated, the returned y coordinate will reflect the\n * non-rotated Point.\n */\n get: function () {\n _v.setTo(this._stage.mouseX, this._stage.mouseY);\n this.node.globalToLocal(_v, _v);\n return Math.floor(_v.y);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"name\", {\n /**\n * Indicates the instance name of the DisplayObject. The any can be identified in\n * the child list of its parent displayobject container by calling the\n * getChildByName() method of the displayobject container.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @console.logs\tIllegalOperationError If you are attempting to set this property on an any that was\n * placed on the timeline in the Flash authoring tool.\n */\n get: function () {\n return this.adaptee.name;\n },\n set: function (value) {\n this.adaptee.name = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"opaqueBackground\", {\n /**\n * Specifies whether the displayobject is opaque with a certain background color.\n * A transparent bitmap contains alpha\n * channel data and is drawn transparently. An opaque bitmap has no alpha channel (and renders faster\n * than a transparent bitmap). If the bitmap is opaque, you specify its own background color to use.\n *\n * If set to a number value, the surface is opaque (not transparent) with the RGB background\n * color that the number specifies. If set to null (the default value), the display\n * any has a transparent background.The opaqueBackground property is intended mainly for use with the\n * cacheAsBitmap property, for rendering optimization. For displayobjects in which the\n * cacheAsBitmap property is set to true, setting opaqueBackground can\n * improve rendering performance.The opaque background region is not matched when calling the hitTestPoint()\n * method with the shapeFlag parameter set to true.The opaque background region does not respond to mouse events.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'get opaqueBackground', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'set opaqueBackground', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"parent\", {\n /**\n * Indicates the DisplayObjectContainer any that contains this displayobject. Use the parent\n * property to specify a relative path to displayobjects that are above the\n * current displayobject in the display list hierarchy.\n *\n * You can use parent to move up multiple levels in the display list as in the following:\n * @console.logs\tSecurityError The parent displayobject belongs to a security sandbox\n * to which you do not have access. You can avoid this situation by having\n * the parent movie call the Security.allowDomain() method.\n */\n get: function () {\n if (this.adaptee.parent == null\n || this.adaptee.parent.adapter == null\n || this.adaptee.parent.adapter == this.adaptee.parent) {\n return null;\n }\n return this.adaptee.parent.adapter;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"root\", {\n /**\n * For a displayobject in a loaded SWF file, the root property is the\n * top-most displayobject in the portion of the display list's tree structure represented by that SWF file.\n * For a Bitmap any representing a loaded image file, the root property is the Bitmap any\n * itself. For the instance of the main class of the first SWF file loaded, the root property is the\n * displayobject itself. The root property of the Stage any is the Stage any itself. The root\n * property is set to null for any displayobject that has not been added to the display list, unless\n * it has been added to a displayobject container that is off the display list but that is a child of the\n * top-most displayobject in a loaded SWF file.\n *\n * For example, if you create a new Sprite any by calling the Sprite() constructor method,\n * its root property is null until you add it to the display list (or to a display\n * any container that is off the display list but that is a child of the top-most displayobject in a SWF file).\n * For a loaded SWF file, even though the Loader any used to load the file may not be on the display list,\n * the top-most displayobject in the SWF file has its root property set to itself. The Loader any\n * does not have its root property set until it is added as a child of a displayobject for which the\n * root property is set.\n */\n get: function () {\n var _a, _b;\n return this.adaptee.isAVMScene ? this : (_b = (_a = this.adaptee.parent) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.root;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"rotation\", {\n /**\n * Indicates the rotation of the DisplayObject instance, in degrees, from its original orientation.\n * Values from 0 to 180 represent\n * clockwise rotation; values from 0 to -180 represent counterclockwise rotation.\n * Values outside this range are added to or\n * subtracted from 360 to obtain a value within the range. For example, the statement my_video.rotation = 450 is the\n * same as my_video.rotation = 90.\n */\n get: function () {\n return this.adaptee.rotationZ;\n },\n set: function (value) {\n this._blockedByScript = true;\n var rot = isNaN(value) ? 0 : isFinite(value) ? value % 360 : -8;\n if (rot < -180) {\n rot += 360;\n }\n else if (rot > 180) {\n rot -= 360;\n }\n this.adaptee.rotationZ = rot;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"rotationX\", {\n /**\n * Indicates the x-axis rotation of the DisplayObject instance,\n * in degrees, from its original orientation relative to the 3D parent container. Values from 0 to 180 represent\n * clockwise rotation; values from 0 to -180 represent counterclockwise rotation.\n * Values outside this range are added to or\n * subtracted from 360 to obtain a value within the range.\n */\n get: function () {\n return this.adaptee.rotationX;\n },\n set: function (value) {\n this._blockedByScript = true;\n this.adaptee.rotationX = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"rotationY\", {\n /**\n * Indicates the y-axis rotation of the DisplayObject instance, in degrees,\n * from its original orientation relative to the 3D parent container. Values from 0 to 180 represent\n * clockwise rotation; values from 0 to -180 represent counterclockwise rotation.\n * Values outside this range are added to or\n * subtracted from 360 to obtain a value within the range.\n * @langversion\t3.0\n * @playerversion\tFlash 10\n * @playerversion\tAIR 1.5\n * @playerversion\tLite 4\n */\n get: function () {\n return this.adaptee.rotationY;\n },\n set: function (value) {\n this._blockedByScript = true;\n this.adaptee.rotationY = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"rotationZ\", {\n /**\n * Indicates the z-axis rotation of the DisplayObject instance,\n * in degrees, from its original orientation relative to the 3D parent container. Values from 0 to 180 represent\n * clockwise rotation; values from 0 to -180 represent counterclockwise rotation.\n * Values outside this range are added to or\n * subtracted from 360 to obtain a value within the range.\n */\n get: function () {\n return this.adaptee.rotationZ;\n },\n set: function (value) {\n this._blockedByScript = true;\n this.adaptee.rotationZ = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"scale9Grid\", {\n /**\n * The current scaling grid that is in effect. If set to null,\n * the entire displayobject is scaled normally when any scale transformation is\n * applied.\n *\n * When you define the scale9Grid property, the displayobject is divided into a\n * grid with nine regions based on the scale9Grid rectangle, which defines the\n * center region of the grid. The eight other regions of the grid are the following areas:\n * The upper-left corner outside of the rectangleThe area above the rectangle\n * The upper-right corner outside of the rectangleThe area to the left of the rectangle\n * The area to the right of the rectangleThe lower-left corner outside of the rectangle\n * The area below the rectangleThe lower-right corner outside of the rectangle\n * You can think of the eight regions outside of the center (defined by the rectangle)\n * as being like a picture frame that has special rules applied to it when scaled.\n * When the scale9Grid property is set and a displayobject is scaled, all text and\n * gradients are scaled normally; however, for other types of anys the following rules apply:\n * Content in the center region is scaled normally. Content in the corners is not scaled.\n * Content in the top and bottom regions is scaled horizontally only. Content in the\n * left and right regions is scaled vertically only.All fills (including bitmaps, video, and gradients)\n * are stretched to fit their shapes.If a displayobject is rotated, all subsequent scaling is normal (and the\n * scale9Grid property is ignored).For example, consider the following displayobject and a rectangle\n * that is applied as the display\n * any's scale9Grid:The displayobject.The red rectangle shows the scale9Grid.\n * When the displayobject is scaled or stretched, the anys within the rectangle scale\n * normally, but the anys outside of the rectangle scale according to the\n * scale9Grid rules:\n * Scaled to 75%:Scaled to 50%:Scaled to 25%:Stretched horizontally\n * 150%: A common use for setting scale9Grid is to set up a displayobject to be used\n * as a component, in which edge regions retain the same width when the component is scaled.\n * @maelexample\tThe following creates a movie clip that contains a 20-pixel line (which forms a border)\n * and a gradient fill. The movie clip scales based on the mouse position, and because of the\n * <code>scale9Grid</code> set for the movie clip, the thickness of the 20-pixel line does not\n * vary when the clip scales (although the gradient in the movie clip <em>does</em> scale):\n *\n * <listing version=\"2.0\">\n * import Rectangle;\n * import flash.geom.Matrix;\n *\n * this.createEmptyMovieClip(\"my_mc\", this.getNextHighestDepth());\n *\n * var grid:Rectangle = new Rectangle(20, 20, 260, 260);\n * my_mc.scale9Grid = grid ;\n *\n * my_mc._x = 50;\n * my_mc._y = 50;\n *\n * onMouseMove()\n * {\n * my_mc._width = _xmouse;\n * my_mc._height = _ymouse;\n * }\n *\n * my_mc.lineStyle(20, 0xff3333, 100);\n * var gradient_matrix:Matrix = new Matrix();\n * gradient_matrix.createGradientBox(15, 15, Math.PI, 10, 10);\n * my_mc.beginGradientFill(\"radial\", [0xffff00, 0x0000ff],\n * [100, 100], [0, 0xFF], gradient_matrix,\n * \"reflect\", \"RGB\", 0.9);\n * my_mc.moveTo(0, 0);\n * my_mc.lineTo(0, 300);\n * my_mc.lineTo(300, 300);\n * my_mc.lineTo(300, 0);\n * my_mc.lineTo(0, 0);\n * my_mc.endFill();\n * </listing>\n * @console.logs\tArgumentError If you pass an invalid argument to the method.\n */\n get: function () {\n return new this.sec.flash.geom.Rectangle(this.adaptee.scale9Grid);\n },\n set: function (innerRectangle) {\n this.adaptee.scale9Grid = innerRectangle.adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"scaleX\", {\n /**\n * Indicates the horizontal scale (percentage) of the any as applied from the registration point. The default\n * registration point is (0,0). 1.0 equals 100% scale.\n *\n * Scaling the local coordinate system changes the x and y property values, which are defined in\n * whole pixels.\n */\n get: function () {\n return this.adaptee.scaleX;\n },\n set: function (value) {\n this._blockedByScript = true;\n this.adaptee.scaleX = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"scaleY\", {\n /**\n * Indicates the vertical scale (percentage) of an any as applied from the registration point of the any. The\n * default registration point is (0,0). 1.0 is 100% scale.\n *\n * Scaling the local coordinate system changes the x and y property values, which are defined in\n * whole pixels.\n */\n get: function () {\n return this.adaptee.scaleY;\n },\n set: function (value) {\n this._blockedByScript = true;\n this.adaptee.scaleY = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"scaleZ\", {\n /**\n * Indicates the depth scale (percentage) of an any as applied from the registration point of the any. The\n * default registration point is (0,0). 1.0 is 100% scale.\n *\n * Scaling the local coordinate system changes the x, y and z property values, which are defined in\n * whole pixels.\n */\n get: function () {\n return this.adaptee.scaleZ;\n },\n set: function (value) {\n this._blockedByScript = true;\n this.adaptee.scaleZ = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"scrollRect\", {\n /**\n * The scroll rectangle bounds of the displayobject. The displayobject is cropped to the size\n * defined by the rectangle, and it scrolls within the rectangle when you change the\n * x and y properties of the scrollRect any.\n *\n * The properties of the scrollRect Rectangle any use the displayobject's coordinate space\n * and are scaled just like the overall displayobject. The corner bounds of the cropped window on the scrolling\n * displayobject are the origin of the displayobject (0,0) and the point defined by the\n * width and height of the rectangle. They are not centered around the origin, but\n * use the origin to define the upper-left corner of the area. A scrolled displayobject always\n * scrolls in whole pixel increments. You can scroll an any left and right by setting the x property of the\n * scrollRect Rectangle any. You can scroll an any up and down by setting\n * the y property of the scrollRect Rectangle any. If the displayobject\n * is rotated 90° and you scroll it left and right, the displayobject actually scrolls up and down.\n */\n get: function () {\n if (this.adaptee.scrollRect)\n return new this.sec.flash.geom.Rectangle(this.adaptee.scrollRect);\n return null;\n },\n set: function (value) {\n this.adaptee.scrollRect = value ? value.adaptee : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"stage\", {\n /**\n * The Stage of the displayobject. A Flash runtime application has only one Stage any.\n * For example, you can create and load multiple displayobjects into the display list, and the\n * stage property of each displayobject refers to the same Stage any (even if the\n * displayobject belongs to a loaded SWF file).\n *\n * If a displayobject is not added to the display list, its stage property is set to\n * null.\n */\n get: function () {\n var _a, _b;\n // nasty stuff:\n // overrite for \"get stage\" does not work when called from avm\n // if we call myStage.stage, it will still execute this function,\n // because abc code does not know there exists a \"get stage\" on stage.\n // also checking by \"this instanceof Stage\" does not work due to circular dependencies\n // \"_isStage\" is a workaround which should only ever return true if \"this\" is a Stage object\n return this._isStage ? this : (_b = (_a = this.adaptee.parent) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.stage;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"transform\", {\n /**\n * An any with properties pertaining to a displayobject's matrix, color transform, and pixel bounds.\n * The specific properties — matrix, colorTransform, and three read-only properties\n * (concatenatedMatrix, concatenatedColorTransform,\n * and pixelBounds) — are described in the entry for the Transform class.\n *\n * Each of the transform any's properties is itself an any. This concept is important because the only\n * way to set new values for the matrix or colorTransform anys is to create a new any and copy that\n * any into the transform.matrix or transform.colorTransform property.For example,\n * to increase the tx value of a displayobject's matrix, you must make a\n * copy of the entire matrix any, then copy the new any into the matrix property of the transform\n * any:\n * var myMatrix:Matrix = myDisplayObject.transform.matrix;\n * myMatrix.tx += 10;\n * myDisplayObject.transform.matrix = myMatrix;\n * You cannot directly set the tx property. The following code has\n * no effect on myDisplayObject:\n * myDisplayObject.transform.matrix.tx += 10;\n * You can also copy an entire transform any and assign it to another\n * displayobject's transform property. For example, the following code\n * copies the entire transform any from myOldDisplayObj to\n * myNewDisplayObj:myNewDisplayObj.transform = myOldDisplayObj.transform;\n * The resulting displayobject, myNewDisplayObj, now has the same values for its\n * matrix, color transform, and pixel bounds as the old displayobject, myOldDisplayObj.\n * Note that AIR for TV devices use hardware acceleration, if it is available, for color transforms.\n */\n get: function () {\n this._ctBlockedByScript = true;\n return this._transform\n || (this._transform = new this.sec.flash.geom.Transform(this.adaptee.transform));\n },\n set: function (value) {\n if (!value || !this.adaptee)\n return;\n this._ctBlockedByScript = true;\n var src = value.adaptee;\n var dst = this.adaptee.transform;\n if (!src || !dst)\n return;\n // Flash copies matrix + colorTransform values, it does not share the Transform.\n var m = src.matrix;\n var ct = src.colorTransform;\n dst.matrix = (m && typeof m.clone === 'function') ? m.clone() : m;\n dst.colorTransform = (ct && typeof ct.clone === 'function') ? ct.clone() : ct;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"visible\", {\n /**\n * Whether or not the displayobject is visible. displayobjects that are not visible\n * are disabled. For example, if visible=false for an Interactiveany instance,\n * it cannot be clicked.\n */\n get: function () {\n return this._adaptee.visible;\n },\n set: function (value) {\n this._visibilityByScript = true;\n this._adaptee.visible = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"width\", {\n /**\n * Indicates the width of the displayobject, in pixels.\n * The width is calculated based on the bounds of the content of the displayobject.\n * When you set the width property, the scaleX property is adjusted accordingly, as shown in the\n * following code:\n *\n * <codeblock>\n *\n * var rect:Shape = new Shape();\n * rect.graphics.beginFill(0xFF0000);\n * rect.graphics.drawRect(0, 0, 100, 100);\n * trace(rect.scaleX) // 1;\n * rect.width = 200;\n * trace(rect.scaleX) // 2;\n * </codeblock>\n * Except for TextField and Video anys, a displayobject with no content (such as an empty sprite) has a width\n * of 0, even if you try to set width to a different value.\n */\n get: function () {\n if (this._forceWidth != 0)\n return this._forceWidth;\n if (this.adaptee.isAsset(TextField)) {\n return this.adaptee.width;\n }\n var box = this.getBoundsInternal(this.parent || this._stage);\n return (box == null) ? 0 : Math.round(box.width * 20) / 20;\n },\n set: function (value) {\n //todo2019\n if (isNaN(value))\n return;\n value = clampASValues(value);\n // round to twips\n value = Math.round(value * 20) / 20;\n this._blockedByScript = true;\n // this should be done by overwriting the width-getter in TextField- but it doesnt work\n if (this.adaptee.isAsset(TextField)) {\n this.adaptee.width = value;\n return;\n }\n PickGroup.getInstance().getBoundsPicker(this.node).width = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"x\", {\n /**\n * Indicates the x coordinate of the DisplayObject instance relative to the local coordinates of\n * the parent DisplayObjectContainer. If the any is inside a DisplayObjectContainer that has\n * transformations, it is in the local coordinate system of the enclosing DisplayObjectContainer.\n * Thus, for a DisplayObjectContainer rotated 90° counterclockwise, the DisplayObjectContainer's\n * children inherit a coordinate system that is rotated 90° counterclockwise.\n * The any's coordinates refer to the registration point position.\n */\n get: function () {\n // return raw value to avoid prototype jumping and method execution\n // for Textfields we must respect the scaled TextOffsetX property:\n if (this._adaptee.textOffsetX)\n return this._adaptee._transform._matrix3D._rawData[12]\n + (this._adaptee.textOffsetX * (this.adaptee.scaleX));\n return this._adaptee._transform._matrix3D._rawData[12];\n },\n set: function (value) {\n value = clampASValues(value);\n if (DisplayObject.defineLazy(this, 'x', value))\n return;\n this._blockedByScript = true;\n // for Textfields we must respect the scaled TextOffsetX property:\n if (this._adaptee.textOffsetX)\n value -= (this._adaptee.textOffsetX * (this.adaptee.scaleX));\n this._adaptee.x = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"y\", {\n /**\n * Indicates the y coordinate of the DisplayObject instance relative to the local coordinates of\n * the parent DisplayObjectContainer. If the any is inside a DisplayObjectContainer that has\n * transformations, it is in the local coordinate system of the enclosing DisplayObjectContainer.\n * Thus, for a DisplayObjectContainer rotated 90° counterclockwise, the DisplayObjectContainer's\n * children inherit a coordinate system that is rotated 90° counterclockwise.\n * The any's coordinates refer to the registration point position.\n */\n get: function () {\n // return raw value to avoid prototype jumping and method execution\n // for Textfields we must respect the scaled TextOffsetY property:\n if (this._adaptee.textOffsetY)\n return this._adaptee._transform._matrix3D._rawData[13]\n + (this._adaptee.textOffsetY * (this.adaptee.scaleY));\n return this._adaptee._transform._matrix3D._rawData[13];\n },\n set: function (value) {\n value = clampASValues(value);\n if (DisplayObject.defineLazy(this, 'y', value))\n return;\n this._blockedByScript = true;\n // for Textfields we must respect the scaled TextOffsetY property:\n if (this._adaptee.textOffsetY)\n value -= (this._adaptee.textOffsetY * (this.adaptee.scaleY));\n this._adaptee.y = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObject.prototype, \"z\", {\n /**\n * Indicates the z coordinate position along the z-axis of the DisplayObject\n * instance relative to the 3D parent container. The z property is used for\n * 3D coordinates, not screen or pixel coordinates.\n * When you set a z property for a displayobject to something other than the default\n * value of 0, a corresponding Matrix3D any is automatically created. for adjusting a\n * displayobject's position and orientation\n * in three dimensions. When working with the z-axis,\n * the existing behavior of x and y properties changes from screen or pixel coordinates to\n * positions relative to the 3D parent container.For example,\n * a child of the _root at position x = 100, y = 100, z = 200\n * is not drawn at pixel location (100,100). The child is drawn wherever the 3D projection\n * calculation puts it. The calculation is:\n * (x~~cameraFocalLength/cameraRelativeZPosition, y~~cameraFocalLength/cameraRelativeZPosition)\n */\n get: function () {\n // return raw value to avoid prototype jumping and method execution\n return this._adaptee._transform._matrix3D._rawData[14];\n },\n set: function (value) {\n value = clampASValues(value);\n this._blockedByScript = true;\n this._adaptee.z = value;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns a rectangle that defines the area of the displayobject relative to the coordinate system\n * of the targetCoordinateSpace any.\n * Consider the following code, which shows how the rectangle returned can vary depending on the\n * targetCoordinateSpace parameter that you pass to the method:\n *\n * <codeblock>\n *\n * var container:Sprite = new Sprite();\n * container.x = 100;\n * container.y = 100;\n * this.addChild(container);\n * var contents:Shape = new Shape();\n * contents.graphics.drawCircle(0,0,100);\n * container.addChild(contents);\n * trace(contents.getBounds(container));\n * // (x=-100, y=-100, w=200, h=200)\n * trace(contents.getBounds(this));\n * // (x=0, y=0, w=200, h=200)\n *\n * </codeblock>\n * Note: Use the localToGlobal() and\n * globalToLocal() methods to convert the displayobject's local coordinates\n * to display coordinates, or display coordinates to local coordinates,\n * respectively.The getBounds() method is similar to the getRect() method;\n * however, the Rectangle returned by the getBounds() method includes any strokes\n * on shapes, whereas the Rectangle returned by the getRect() method does not.\n * For an example, see the description of the getRect() method.\n * @param\ttargetCoordinateSpace\tThe displayobject that defines the coordinate system to use.\n * @return\tThe rectangle that defines the area of the displayobject relative to\n * the targetCoordinateSpace any's coordinate system.\n */\n DisplayObject.prototype.getBounds = function (targetCoordinateSpace) {\n var box = this.getBoundsInternal(targetCoordinateSpace, true);\n var Rectangle = this.sec.flash.geom.Rectangle;\n // FLASH return strange bounds for cases when object is not has real bounds\n if (!box)\n return new Rectangle(6710886.4, 6710886.4, 0, 0);\n return new Rectangle(box.x, box.y, box.width, box.height);\n };\n /**\n * Internal method that return Box instance of bounds of DisplayObject\n */\n DisplayObject.prototype.getBoundsInternal = function (targetCoordinateSpace, strokeFlag) {\n if (targetCoordinateSpace === void 0) { targetCoordinateSpace = null; }\n if (strokeFlag === void 0) { strokeFlag = false; }\n if (!targetCoordinateSpace)\n targetCoordinateSpace = this;\n return PickGroup.getInstance().getBoundsPicker(this.node)\n .getBoxBounds(AVMStage.instance().view.getNode(targetCoordinateSpace.adaptee), strokeFlag, true);\n };\n /**\n * Returns a rectangle that defines the boundary of the displayobject,\n * based on the coordinate system defined by the targetCoordinateSpace\n * parameter, excluding any strokes on shapes. The values that the getRect() method\n * returns are the same or smaller than those returned by the getBounds() method.\n *\n * Note: Use localToGlobal() and globalToLocal() methods\n * to convert the displayobject's local coordinates to Stage coordinates, or Stage coordinates to\n * local coordinates, respectively.\n * @param\ttargetCoordinateSpace\tThe displayobject that defines the coordinate system to use.\n * @return\tThe rectangle that defines the area of the displayobject relative to\n * the targetCoordinateSpace any's coordinate system.\n */\n DisplayObject.prototype.getRect = function (targetCoordinateSpace) {\n var box = this.getBoundsInternal(targetCoordinateSpace);\n var Rectangle = this.sec.flash.geom.Rectangle;\n if (!box)\n return new Rectangle();\n return new Rectangle(box.x, box.y, box.width, box.height);\n };\n /**\n * Converts the point any from the Stage (global) coordinates\n * to the displayobject's (local) coordinates.\n *\n * To use this method, first create an instance of the Point class. The\n * x and y values that you assign represent global coordinates because they\n * relate to the origin (0,0) of the main display area. Then pass the Point instance\n * as the parameter to the globalToLocal() method. The method returns a new Point any with\n * x and y values that relate to the origin of the displayobject\n * instead of the origin of the Stage.\n * @param\tpoint\tAn any created with the Point class. The Point any\n * specifies the x and y coordinates as properties.\n * @return\tA Point any with coordinates relative to the displayobject.\n */\n DisplayObject.prototype.globalToLocal = function (point) {\n return new this.sec.flash.geom.Point(this.node.globalToLocal(point.adaptee));\n };\n /**\n * Converts a two-dimensional point from the Stage (global) coordinates to a\n * three-dimensional displayobject's (local) coordinates.\n *\n * To use this method, first create an instance of the Point class.\n * The x and y values that you assign to the Point any represent global\n * coordinates because they are relative to the origin (0,0) of the main display area.\n * Then pass the Point any to the globalToLocal3D()\n * method as the point parameter. The method returns three-dimensional\n * coordinates as a Vector3D any containing x, y, and\n * z values that are relative to the origin\n * of the three-dimensional displayobject.\n * @param\tpoint\tA two dimensional Point any representing global x and y coordinates.\n * @return\tA Vector3D any with coordinates relative to the three-dimensional\n * displayobject.\n */\n DisplayObject.prototype.globalToLocal3D = function (point) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'globalToLocal3D', '');\n return new this.sec.flash.geom.Vector3D();\n };\n /**\n * Evaluates the bounding box of the displayobject to see if it overlaps or intersects with the\n * bounding box of the obj displayobject.\n * @param\tobj\tThe displayobject to test against.\n * @return\ttrue if the bounding boxes of the displayobjects intersect; false if not.\n */\n DisplayObject.prototype.hitTestObject = function (obj) {\n return PickGroup.getInstance()\n .getBoundsPicker(this.node)\n .hitTestObject(PickGroup.getInstance().getBoundsPicker(obj.node));\n };\n /**\n * Evaluates the displayobject to see if it overlaps or intersects with the\n * point specified by the x and y parameters.\n * The x and y parameters specify a point in the\n * coordinate space of the Stage, not the displayobject container that contains the\n * displayobject (unless that displayobject container is the Stage).\n * @param\tx\tThe x coordinate to test against this any.\n * @param\ty\tThe y coordinate to test against this any.\n * @param\tshapeFlag\tWhether to check against the actual pixels of the any (true)\n * or the bounding box (false).\n * @return\ttrue if the displayobject overlaps or intersects with the specified point;\n * false otherwise.\n */\n DisplayObject.prototype.hitTestPoint = function (x, y, shapeFlag) {\n if (shapeFlag === void 0) { shapeFlag = false; }\n return PickGroup.getInstance()\n .getBoundsPicker(this.node)\n .hitTestPoint(x, y, shapeFlag);\n };\n /**\n * Converts a three-dimensional point of the three-dimensional display\n * any's (local) coordinates to a two-dimensional point in the Stage (global) coordinates.\n *\n * For example, you can only use two-dimensional coordinates (x,y) to\n * draw with the display.Graphics methods. To draw a three-dimensional\n * any, you need to map the three-dimensional coordinates of a\n * displayobject to two-dimensional coordinates. First, create an instance of\n * the Vector3D class that holds the x-, y-, and z- coordinates of the three-dimensional\n * displayobject. Then pass the Vector3D any to the local3DToGlobal()\n * method as the point3d parameter. The method returns a two-dimensional Point\n * any that can be used\n * with the Graphics API to draw the three-dimensional any.\n * @param\tpoint3d\tA Vector3D any containing either a three-dimensional point or\n * the coordinates of the three-dimensional displayobject.\n * @return\tA two-dimensional point representing a three-dimensional point\n * in two-dimensional space.\n */\n DisplayObject.prototype.local3DToGlobal = function (point3d) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObject', 'local3DToGlobal', '');\n return new this.sec.flash.geom.Point(); //this._adaptee.getBounds();\n };\n /**\n * Converts the point any from the displayobject's (local) coordinates to the\n * Stage (global) coordinates.\n *\n * This method allows you to convert any given x and y coordinates from\n * values that are relative to the origin (0,0) of a specific displayobject (local coordinates)\n * to values that are relative to the origin of the Stage (global coordinates).\n * To use this method, first create an instance of the Point class. The\n * x and y values that you assign represent local coordinates because they\n * relate to the origin of the displayobject.You then pass the Point instance that you created as the parameter to\n * the localToGlobal() method. The method returns a new Point any with\n * x and y values that relate to the origin of the Stage\n * instead of the origin of the displayobject.\n * @param\tpoint\tThe name or identifier of a point created with the Point class, specifying the\n * x and y coordinates as properties.\n * @return\tA Point any with coordinates relative to the Stage.\n */\n DisplayObject.prototype.localToGlobal = function (point) {\n return new this.sec.flash.geom.Point(this.node.localToGlobal(point.adaptee));\n };\n DisplayObject._activeStage = null;\n return DisplayObject;\n}(EventDispatcher));\nexport { DisplayObject };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nimport { AVMStage } from '@awayfl/swf-loader';\nimport { Point } from '@awayjs/core';\n/**\n/// @eventType\tflash.events.TouchEvent.TOUCH_BEGIN\n[Event(name=\"touchBegin\", type=\"flash.events.TouchEvent\")]\n\n/// @eventType\tflash.events.TouchEvent.TOUCH_END\n[Event(name=\"touchEnd\", type=\"flash.events.TouchEvent\")]\n\n/// @eventType\tflash.events.TouchEvent.TOUCH_MOVE\n[Event(name=\"touchMove\", type=\"flash.events.TouchEvent\")]\n\n/// @eventType\tflash.events.TouchEvent.TOUCH_OUT\n[Event(name=\"touchOut\", type=\"flash.events.TouchEvent\")]\n\n/// @eventType\tflash.events.TouchEvent.TOUCH_OVER\n[Event(name=\"touchOver\", type=\"flash.events.TouchEvent\")]\n\n/// @eventType\tflash.events.TouchEvent.TOUCH_ROLL_OUT\n[Event(name=\"touchRollOut\", type=\"flash.events.TouchEvent\")]\n\n/// @eventType\tflash.events.TouchEvent.TOUCH_ROLL_OVER\n[Event(name=\"touchRollOver\", type=\"flash.events.TouchEvent\")]\n\n/// @eventType\tflash.events.TouchEvent.TOUCH_TAP\n[Event(name=\"touchTap\", type=\"flash.events.TouchEvent\")]\n\n * The TouchEvent class lets you handle events on devices that detect user contact with\n * the device (such as a finger on a touch screen).\n * When a user interacts with a device such as a mobile phone or tablet with a touch screen, the user typically\n * touches the screen with his or her fingers or a pointing device. You can develop applications that respond to\n * basic touch events (such as a single finger tap) with the TouchEvent class.\n * Create event listeners using the event types defined in this class.\n * For user interaction with multiple points of contact\n * (such as several fingers moving across a touch screen at the same time) use\n * the related GestureEvent, PressAndTapGestureEvent, and TransformGestureEvent classes.\n * And, use the properties and methods of these classes\n * to construct event handlers that respond to the user touching the device.\n * <p class=\"- topic/p \">Use the Multitouch class to determine the current environment's support for touch interaction,\n * and to\n * manage the support of touch interaction if the current environment supports it.</p>\n * <p class=\"- topic/p \"><b class=\"+ topic/ph hi-d/b \">Note:</b>\n * When objects are nested on the display list, touch events target the deepest possible\n * nested object that is visible in the display list. This object is called the target node. To have a target node's\n * ancestor (an object containing the target node in the display list) receive notification of a touch event, use\n * <codeph class=\"+ topic/ph pr-d/codeph \">EventDispatcher.addEventListener()</codeph>\n * on the ancestor node with the type parameter set to the specific\n * touch event you want to detect.</p>\n */\nvar TouchEvent = /** @class */ (function (_super) {\n __extends(TouchEvent, _super);\n /**\n * Creates an Event object that contains information about touch events.\n * Event objects are passed as parameters to event listeners.\n * @param\ttype\tThe type of the event. Possible values are: TouchEvent.TOUCH_BEGIN,\n * TouchEvent.TOUCH_END, TouchEvent.TOUCH_MOVE,\n * TouchEvent.TOUCH_OUT, TouchEvent.TOUCH_OVER,\n * TouchEvent.TOUCH_ROLL_OUT, TouchEvent.TOUCH_ROLL_OVER,\n * and TouchEvent.TOUCH_TAP.\n * @param\tbubbles\tDetermines whether the Event object participates in the bubbling phase of the event flow.\n * @param\tcancelable\tDetermines whether the Event object can be canceled.\n * @param\ttouchPointID\tA unique identification number (as an int) assigned to the touch point.\n * @param\tisPrimaryTouchPoint\tIndicates whether the first point of contact is mapped to mouse events.\n * @param\tlocalX\tThe horizontal coordinate at which the event occurred relative to the containing sprite.\n * @param\tlocalY\tThe vertical coordinate at which the event occurred relative to the containing sprite.\n * @param\tsizeX\tWidth of the contact area.\n * @param\tsizeY\tHeight of the contact area.\n * @param\tpressure\tA value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.\n * @param\trelatedObject\tThe complementary InteractiveObject instance that is affected by the event.\n * For example, when a touchOut event occurs,\n * relatedObject represents the display list object to which the pointing device now points.\n * @param\tctrlKey\tOn Windows or Linux, indicates whether the Ctrl key is activated.\n * On Mac, indicates whether either the Ctrl key or the Command key is activated.\n * @param\taltKey\tIndicates whether the Alt key is activated (Windows or Linux only).\n * @param\tshiftKey\tIndicates whether the Shift key is activated.\n * @param\tcommandKey\t(AIR only) Indicates whether the Command key is activated (Mac only).\n * This parameter is for Adobe AIR only; do not set it for Flash Player content.\n * @param\tcontrolKey\t(AIR only) Indicates whether the Control or Ctrl key is activated.\n * This parameter is for Adobe AIR only; do not set it for Flash Player content.\n\n */\n function TouchEvent(type, bubbles, cancelable, touchPointID, isPrimaryTouchPoint, localX, localY, sizeX, sizeY, pressure, relatedObject, ctrlKey, altKey, shiftKey) {\n if (bubbles === void 0) { bubbles = true; }\n if (cancelable === void 0) { cancelable = false; }\n if (touchPointID === void 0) { touchPointID = 0; }\n if (isPrimaryTouchPoint === void 0) { isPrimaryTouchPoint = false; }\n if (localX === void 0) { localX = NaN; }\n if (localY === void 0) { localY = NaN; }\n if (sizeX === void 0) { sizeX = NaN; }\n if (sizeY === void 0) { sizeY = NaN; }\n if (pressure === void 0) { pressure = NaN; }\n if (relatedObject === void 0) { relatedObject = null; }\n if (ctrlKey === void 0) { ctrlKey = false; }\n if (altKey === void 0) { altKey = false; }\n if (shiftKey === void 0) { shiftKey = false; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._localX = localX;\n _this._localY = localY;\n _this._ctrlKey = ctrlKey;\n _this._altKey = altKey;\n _this._shiftKey = shiftKey;\n return _this;\n }\n Object.defineProperty(TouchEvent.prototype, \"altKey\", {\n /**\n * Indicates whether the Alt key is active (true) or inactive (false).\n * Supported for Windows and Linux operating systems only.\n * @internal\tReserved in case Desktop Player wants to capture this key in a future implementation.\n * The Option key modifier on Macintosh system must be represented using this key modifier. So far, it seems\n * only the Windows version is hooked up.\n */\n get: function () {\n return this._altKey;\n },\n set: function (value) {\n this._altKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"ctrlKey\", {\n /**\n * On Windows or Linux, indicates whether the Ctrl key is active (true) or inactive (false).\n * On Macintosh, indicates whether either the Control key or the Command key is activated.\n */\n get: function () {\n return this._ctrlKey;\n },\n set: function (value) {\n this._ctrlKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"isPrimaryTouchPoint\", {\n /**\n * Indicates whether the first point of contact is mapped to mouse events.\n */\n get: function () { return false; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"isRelatedObjectInaccessible\", {\n /**\n * If true, the relatedObject property is set to null for\n * reasons related to security sandboxes. If the nominal value of relatedObject is a reference to a\n * DisplayObject in another sandbox, relatedObject is set to\n * null unless there is permission in both directions across this sandbox boundary. Permission is\n * established by calling Security.allowDomain() from a SWF file, or by providing\n * a policy file from the server of an image file, and setting the LoaderContext.checkPolicyFile\n * property when loading the image.\n */\n get: function () { return false; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"localX\", {\n /**\n * The horizontal coordinate at which the event occurred relative to the containing sprite.\n */\n get: function () {\n return (this._localX / 20) | 0;\n },\n set: function (value) {\n this._localX = (value * 20) | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"localY\", {\n /**\n * The vertical coordinate at which the event occurred relative to the containing sprite.\n */\n get: function () {\n return (this._localY / 20) | 0;\n },\n set: function (value) {\n this._localY = (value * 20) | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"pressure\", {\n /**\n * A value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.\n */\n get: function () { return 0; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"relatedObject\", {\n /**\n * A reference to a display list object that is related to the event. For example, when a touchOut event occurs,\n * relatedObject represents the display list object to which the pointing device now points.\n * This property applies to the touchOut, touchOver, touchRollOut, and touchRollOver events.\n * The value of this property can be null in two circumstances: if there is no related object,\n * or there is a related object, but it is in a security sandbox to which you don't have access.\n * Use the isRelatedObjectInaccessible() property to determine which of these reasons applies.\n */\n get: function () {\n return null;\n },\n set: function (value) {\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"shiftKey\", {\n /**\n * Indicates whether the Shift key is active (true) or inactive\n * (false).\n */\n get: function () {\n return this._shiftKey;\n },\n set: function (value) {\n this._shiftKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"sizeX\", {\n /**\n * Width of the contact area.\n * @langversion\t3.0\n */\n get: function () { return 0; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"sizeY\", {\n /**\n * Height of the contact area.\n */\n get: function () { return 0; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"stageX\", {\n /**\n * The horizontal coordinate at which the event occurred in global Stage coordinates.\n * This property is calculated when the localX property is set.\n */\n get: function () {\n return this._stageX;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"stageY\", {\n /**\n * The vertical coordinate at which the event occurred in global Stage coordinates.\n * This property is calculated when the localY property is set.\n */\n get: function () { return 0; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TouchEvent.prototype, \"touchPointID\", {\n /**\n * A unique identification number (as an int) assigned to the touch point.\n */\n get: function () { return 0; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n /**\n * Creates a copy of the TouchEvent object and sets the value of each property to match that of the original.\n * @return\tA new TouchEvent object with property values that match those of the original.\n */\n TouchEvent.prototype.clone = function () {\n return null;\n };\n /**\n * Returns a string that contains all the properties of the TouchEvent object.\n * The string is in the following format:\n * [TouchEvent type=value bubbles=value cancelable=value ... ]\n * @return\tA string that contains all the properties of the TouchEvent object.\n */\n TouchEvent.prototype.toString = function () { return ''; };\n /**\n * Instructs Flash Player or Adobe AIR to render after processing of this event completes,\n * if the display list has been modified.\n */\n TouchEvent.prototype.updateAfterEvent = function () {\n };\n /* added to clone events from away to as3web. */\n TouchEvent.prototype.fillFromAway = function (awayEvent) {\n //console.log(\"cloneFromAway not implemented yet in flash/MouseEvent\");\n this.adaptee = awayEvent;\n // todo: set targets correctly\n this.target = awayEvent.target.adapter || this.sec.flash.display.DisplayObject.axClass._activeStage;\n this.currentTarget = awayEvent.currentTarget.adapter || this.sec.flash.display.DisplayObject.axClass._activeStage;\n this.ctrlKey = awayEvent.ctrlKey;\n this.shiftKey = awayEvent.shiftKey;\n var stagePoint = AVMStage.instance().unprojectPoint(new Point(awayEvent.screenX, awayEvent.screenY), this.target.stage.adaptee);\n this._stageX = stagePoint.x;\n this._stageY = stagePoint.y;\n //todo: translate more stuff from awayjs to as3\n //result.screenX = this.screenX;\n //result.screenY = this.screenY;\n /*\n result.view = awayEvent.view;\n result.entity = awayEvent.entity;\n result.renderable = awayEvent.renderable;\n result.material = awayEvent.material;\n result.uv = awayEvent.uv;\n result.position = awayEvent.position;\n result.normal = awayEvent.normal;\n result.elementIndex = awayEvent.elementIndex;\n*/\n //result._iParentEvent = awayEvent;\n //result._iAllowedToPropagate = awayEvent._iAllowedToPropagate;\n };\n /**\n * Defines the value of the type property of a TOUCH_BEGIN touch event object.\n *\n * The dispatched TouchEvent object has the following properties:PropertyValuealtKeytrue\n * if the Alt key is active (Windows or Linux).bubblestruecancelablefalse;\n * there is no default behavior to cancel.commandKeytrue on the Mac if the Command key is active;\n * false if it is inactive. Always false on Windows.controlKeytrue if the Ctrl or Control key is active;\n * false if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise,\n * #false.currentTargetThe object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event\n * flow.isRelatedObjectInaccessibletrue if the relatedObject property\n * is set to null because of security sandbox rules.localX\n * The horizontal coordinate at which the event occurred relative to the containing sprite.\n * localYThe vertical coordinate at which the event occurred relative to the containing sprite.pressure\n * A value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.related\n * ObjectA reference to a display list object related to the event.shiftKey\n * true if the Shift key is active; false if it is inactive.sizeX\n * Width of the contact area.sizeYHeight of the contact area.stageX\n * The horizontal coordinate at which the event occurred in global stage coordinates.stageY\n * The vertical coordinate at which the event occurred in global stage coordinates.target\n * The InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.touchPoint\n * IDA unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_BEGIN = 'touchBegin';\n /**\n * Defines the value of the type property of a TOUCH_END touch event object.\n *\n * The dispatched TouchEvent object has the following properties:PropertyValuealtKey\n * true if the Alt key is active (Windows or Linux).bubblestruecancelablefalse;\n * there is no default behavior to cancel.commandKeytrue on the Mac if the Command key is active;\n * false if it is inactive. Always false on Windows.controlKeytrue if the Ctrl or Control key is active;\n * false if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise, false.currentTarget\n * The object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event flow.isRelatedObjectInaccessible\n * true if the relatedObject property is set to null because of security sandbox rules.localX\n * The horizontal coordinate at which the event occurred relative to the containing sprite.localY\n * The vertical coordinate at which the event occurred relative to the containing sprite.\n * pressureA value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.related\n * ObjectA reference to a display list object related to the event.shiftKey\n * true if the Shift key is active; false if it is inactive.sizeX\n * Width of the contact area.sizeYHeight of the contact area.stageX\n * The horizontal coordinate at which the event occurred in global stage coordinates.stageY\n * The vertical coordinate at which the event occurred in global stage coordinates.\n * targetThe InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.\n * touchPointIDA unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_END = 'touchEnd';\n /**\n * Defines the value of the type property of a TOUCH_MOVE touch event object.\n *\n * The dispatched TouchEvent object has the following properties:PropertyValue\n * altKeytrue if the Alt key is active (Windows or Linux).bubblestruecancelablefalse;\n * there is no default behavior to cancel.commandKeytrue on the Mac if the Command key is active;\n * false if it is inactive. Always false on Windows.controlKeytrue if the Ctrl or Control key is active;\n * false if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise, false.currentTarget\n * The object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event flow.isRelatedObjectInaccessible\n * true if the relatedObject property is set to null because of security sandbox rules.localX\n * The horizontal coordinate at which the event occurred relative to the containing sprite.localY\n * The vertical coordinate at which the event occurred relative to the containing sprite.pressure\n * A value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.related\n * ObjectA reference to a display list object related to the event.shiftKeytrue\n * if the Shift key is active; false if it is inactive.sizeXWidth of the contact area.sizeY\n * Height of the contact area.stageXThe horizontal coordinate\n * at which the event occurred in global stage coordinates.\n * stageYThe vertical coordinate at which the event occurred in global stage coordinates.\n * targetThe InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.\n * touchPointIDA unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_MOVE = 'touchMove';\n /**\n * Defines the value of the type property of a TOUCH_OUT touch event object.\n *\n * The dispatched TouchEvent object has the following properties:\n * PropertyValuealtKeytrue if the Alt key is active (Windows or Linux).bubblestruecancelablefalse;\n * there is no default behavior to cancel.commandKeytrue on the Mac if the Command key is active;\n * false if it is inactive. Always false on Windows.controlKeytrue if the Ctrl or Control key is active;\n * false if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise, false.currentTarget\n * The object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event flow.isRelatedObjectInaccessibletrue\n * if the relatedObject property is set to null because of security sandbox rules.localX\n * The horizontal coordinate at which the event occurred relative to the containing sprite.localY\n * The vertical coordinate at which the event occurred relative to the containing sprite.pressure\n * A value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.relatedObject\n * A reference to a display list object related to the event.shiftKeytrue if the Shift key is active;\n * false if it is inactive.sizeXWidth of the contact area.sizeYHeight of the contact area.stageX\n * The horizontal coordinate at which the event occurred in global stage coordinates.stageY\n * The vertical coordinate at which the event occurred in global stage coordinates.target\n * The InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.touchPoint\n * IDA unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_OUT = 'touchOut';\n /**\n * Defines the value of the type property of a TOUCH_OVER touch event object.\n *\n * The dispatched TouchEvent object has the following properties:PropertyValuealtKey\n * true if the Alt key is active (Windows or Linux).bubblestruecancelablefalse;\n * there is no default behavior to cancel.commandKeytrue on the Mac if the Command key is active;\n * false if it is inactive. Always false on Windows.controlKeytrue if the Ctrl or Control key is active; false\n * if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise,\n * false.currentTargetThe object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event\n * flow.isRelatedObjectInaccessibletrue if the relatedObject property\n * is set to null because of security sandbox rules.\n * localXThe horizontal coordinate at which the event occurred relative to the containing sprite.localY\n * The vertical coordinate at which the event occurred relative to the containing sprite.pressure\n * A value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.relatedObject\n * A reference to a display list object related to the event.shiftKeytrue\n * if the Shift key is active; false if it is inactive.sizeXWidth of the contact area.sizeY\n * Height of the contact area.stageXThe horizontal coordinate at which\n * the event occurred in global stage coordinates.stageYThe vertical coordinate\n * at which the event occurred in global stage coordinates.target\n * The InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.\n * touchPointIDA unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_OVER = 'touchOver';\n /**\n * Defines the value of the type property of a TOUCH_ROLL_OUT touch event object.\n *\n * The dispatched TouchEvent object has the following properties:PropertyValuealtKeytrue\n * if the Alt key is active (Windows or Linux).bubblestruecancelablefalse; there is no default behavior to cancel.\n * commandKeytrue on the Mac if the Command key is active; false if it is inactive.\n * Always false on Windows.controlKeytrue if the Ctrl or Control key is active;\n * false if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise, false.currentTarget\n * The object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event flow.isRelatedObjectInaccessibletrue\n * if the relatedObject property is set to null because of security sandbox rules.localX\n * The horizontal coordinate at which the event occurred relative to the containing sprite.localY\n * The vertical coordinate at which the event occurred relative to the containing sprite.pressure\n * A value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.relatedObject\n * A reference to a display list object related to the event.shiftKeytrue if the Shift key is active;\n * false if it is inactive.sizeXWidth of the contact area.sizeYHeight of the contact area.stageX\n * The horizontal coordinate at which the event occurred in global stage coordinates.stageY\n * The vertical coordinate at which the event occurred in global stage coordinates.target\n * The InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.touchPointID\n * A unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_ROLL_OUT = 'touchRollOut';\n /**\n * Defines the value of the type property of a TOUCH_ROLL_OVER touch event object.\n *\n * The dispatched TouchEvent object has the following properties:PropertyValuealtKey\n * true if the Alt key is active (Windows or Linux).bubblestruecancelablefalse;\n * #there is no default behavior to cancel.commandKeytrue on the Mac if the Command key is active;\n * false if it is inactive. Always false on Windows.controlKeytrue if the Ctrl or Control key is active;\n * false if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise, false.currentTarget\n * The object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event flow.isRelatedObjectInaccessibletrue\n * if the relatedObject property is set to null because of security sandbox rules.localX\n * The horizontal coordinate at which the event occurred relative to the containing sprite.localY\n * The vertical coordinate at which the event occurred relative to the containing sprite.pressure\n * A value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure, the value is 1.0.relatedObject\n * A reference to a display list object related to the event.shiftKeytrue if the Shift key is active;\n * false if it is inactive.sizeXWidth of the contact area.sizeYHeight of the contact area.stageX\n * The horizontal coordinate at which the event occurred in global stage coordinates.stageY\n * The vertical coordinate at which the event occurred in global stage coordinates.target\n * The InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.touchPointID\n * A unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_ROLL_OVER = 'touchRollOver';\n /**\n * Defines the value of the type property of a TOUCH_TAP touch event object.\n *\n * The dispatched TouchEvent object has the following properties:PropertyValuealtKeytrue\n * if the Alt key is active (Windows or Linux).bubblestruecancelablefalse;\n * there is no default behavior to cancel.commandKeytrue on the Mac if the Command key is active;\n * false if it is inactive. Always false on Windows.controlKeytrue if the Ctrl or Control key is active;\n * false if it is inactive.ctrlKeytrue on Windows or Linux if the Ctrl key is active.\n * true on Mac if either the Ctrl key or the Command key is active. Otherwise, false.currentTarget\n * The object that is actively processing the Event\n * object with an event listener.eventPhaseThe current phase in the event flow.isRelatedObjectInaccessibletrue\n * if the relatedObject property is set to null because of security sandbox rules.localX\n * The horizontal coordinate at which the event occurred relative to the containing sprite.localY\n * The vertical coordinate at which the event occurred relative to the containing sprite.\n * pressureA value between 0.0 and 1.0 indicating force of the contact with the device.\n * If the device does not support detecting the pressure,\n * the value is 1.0.relatedObjectA reference to a display list object related to the event.shiftKey\n * true if the Shift key is active; false if it is inactive.sizeXWidth of the contact area.sizeY\n * Height of the contact area.stageX\n * The horizontal coordinate at which the event occurred in global stage coordinates.\n * stageYThe vertical coordinate at which the event occurred in global stage coordinates.target\n * The InteractiveObject instance under the touching device.\n * The target is not always the object in the display list\n * that registered the event listener. Use the currentTarget\n * property to access the object in the display list that is currently processing the event.touchPointID\n * A unique identification number (as an int) assigned to the touch point.\n */\n TouchEvent.TOUCH_TAP = 'touchTap';\n return TouchEvent;\n}(Event));\nexport { TouchEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: KeyboardEvent\nvar KeyboardEvent = /** @class */ (function (_super) {\n __extends(KeyboardEvent, _super);\n function KeyboardEvent(type, bubbles, cancelable, charCodeValue, keyCodeValue, keyLocationValue, ctrlKeyValue, altKeyValue, shiftKeyValue) {\n if (bubbles === void 0) { bubbles = true; }\n if (cancelable === void 0) { cancelable = false; }\n if (charCodeValue === void 0) { charCodeValue = 0; }\n if (keyCodeValue === void 0) { keyCodeValue = 0; }\n if (keyLocationValue === void 0) { keyLocationValue = 0; }\n if (ctrlKeyValue === void 0) { ctrlKeyValue = false; }\n if (altKeyValue === void 0) { altKeyValue = false; }\n if (shiftKeyValue === void 0) { shiftKeyValue = false; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._charCode = charCodeValue >>> 0;\n _this._keyCode = keyCodeValue >>> 0;\n _this._keyLocation = keyLocationValue >>> 0;\n _this._ctrlKey = !!ctrlKeyValue;\n _this._altKey = !!altKeyValue;\n _this._shiftKey = !!shiftKeyValue;\n return _this;\n }\n Object.defineProperty(KeyboardEvent.prototype, \"charCode\", {\n get: function () {\n return this._charCode;\n },\n set: function (value) {\n this._charCode = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KeyboardEvent.prototype, \"keyCode\", {\n get: function () {\n return this._keyCode;\n },\n set: function (value) {\n this._keyCode = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KeyboardEvent.prototype, \"keyLocation\", {\n get: function () {\n return this._keyLocation;\n },\n set: function (value) {\n this._keyLocation = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KeyboardEvent.prototype, \"ctrlKey\", {\n get: function () {\n return this._ctrlKey;\n },\n set: function (value) {\n this._ctrlKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KeyboardEvent.prototype, \"altKey\", {\n get: function () {\n return this._altKey;\n },\n set: function (value) {\n this._altKey = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(KeyboardEvent.prototype, \"shiftKey\", {\n get: function () {\n return this._shiftKey;\n },\n set: function (value) {\n this._shiftKey = value;\n },\n enumerable: false,\n configurable: true\n });\n KeyboardEvent.prototype.clone = function () {\n return new KeyboardEvent(this.type, this.bubbles, this.cancelable, this.charCode, this.keyCode, this.keyLocation, this.ctrlKey, this.altKey, this.shiftKey);\n };\n KeyboardEvent.prototype.toString = function () {\n return this.formatToString('KeyboardEvent', 'type', 'bubbles', 'cancelable', 'eventPhase', 'charCode', 'keyCode', 'keyLocation', 'ctrlKey', 'altKey', 'shiftKey');\n };\n KeyboardEvent.prototype.updateAfterEvent = function () {\n this.sec.player.requestRender();\n };\n KeyboardEvent.classInitializer = null;\n KeyboardEvent.classSymbols = null;\n KeyboardEvent.instanceSymbols = null;\n KeyboardEvent.KEY_DOWN = 'keyDown';\n KeyboardEvent.KEY_UP = 'keyUp';\n return KeyboardEvent;\n}(Event));\nexport { KeyboardEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar FocusEvent = /** @class */ (function (_super) {\n __extends(FocusEvent, _super);\n function FocusEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(FocusEvent.prototype, \"isRelatedObjectInaccessible\", {\n /**\n * If true, the relatedObject property is set to null for\n * reasons related to security sandboxes. If the nominal value of relatedObject is a reference to a\n * DisplayObject in another sandbox, relatedObject is set to\n * null unless there is permission in both directions across this sandbox boundary. Permission is\n * established by calling Security.allowDomain() from a SWF file, or by providing\n * a policy file from the server of an image file, and setting the LoaderContext.checkPolicyFile\n * property when loading the image.\n * @langversion\t3.0\n * @playerversion\tFlash 10\n * @playerversion\tLite 4\n */\n get: function () {\n console.log('isRelatedObjectInaccessible not implemented yet in flash/FocusEvent');\n return false;\n },\n set: function (value) {\n console.log('isRelatedObjectInaccessible not implemented yet in flash/FocusEvent');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusEvent.prototype, \"keyCode\", {\n /**\n * The key code value of the key pressed to trigger a keyFocusChange event.\n */\n get: function () {\n console.log('keyCode not implemented yet in flash/FocusEvent');\n return 0;\n },\n set: function (value) {\n console.log('keyCode not implemented yet in flash/FocusEvent');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusEvent.prototype, \"relatedObject\", {\n /**\n * A reference to the complementary InteractiveObject instance that is affected by the\n * change in focus. For example, when a focusOut event occurs, the\n * relatedObject represents the InteractiveObject instance that has gained focus.\n * The value of this property can be null in two circumstances: if there no related object,\n * or there is a related object, but it is in a security sandbox to which you don't have access.\n * Use the isRelatedObjectInaccessible() property to determine which of these reasons applies.\n */\n get: function () {\n console.log('relatedObject not implemented yet in flash/FocusEvent');\n return null;\n },\n set: function (value) {\n console.log('relatedObject not implemented yet in flash/FocusEvent');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FocusEvent.prototype, \"shiftKey\", {\n /**\n * Indicates whether the Shift key modifier is activated, in which case the value is\n * true. Otherwise, the value is false. This property is\n * used only if the FocusEvent is of type keyFocusChange.\n */\n get: function () {\n console.log('shiftKey not implemented yet in flash/FocusEvent');\n return false;\n },\n set: function (value) {\n console.log('shiftKey not implemented yet in flash/FocusEvent');\n },\n enumerable: false,\n configurable: true\n });\n FocusEvent.prototype.clone = function () {\n console.log('clone not implemented yet in flash/IOErrorEvent');\n return null;\n };\n FocusEvent.prototype.toString = function () {\n console.log('toString not implemented yet in flash/FocusEvent');\n return '';\n };\n /* added to clone events from away to as3web. */\n FocusEvent.prototype.fillFromAway = function (awayEvent) {\n //console.log(\"cloneFromAway not implemented yet in flash/MouseEvent\");\n this.adaptee = awayEvent;\n // todo: set targets correctly\n this.target = awayEvent.target;\n //this.currentTarget = awayEvent.currentTarget;\n };\n FocusEvent.FOCUS_IN = 'focusIn';\n FocusEvent.FOCUS_OUT = 'focusOut';\n FocusEvent.KEY_FOCUS_CHANGE = 'keyFocusChange';\n FocusEvent.MOUSE_FOCUS_CHANGE = 'mouseFocusChange';\n return FocusEvent;\n}(Event));\nexport { FocusEvent };\n","import { __extends } from \"tslib\";\nimport { Debug } from '@awayjs/core';\nimport { DisplayObject } from './DisplayObject';\nimport { MouseEvent as MouseEventAway, TouchEvent as TouchEventAway, FocusEvent as FocusEventAway } from '@awayjs/scene';\nimport { MouseEvent } from '../events/MouseEvent';\nimport { TouchEvent } from '../events/TouchEvent';\nimport { KeyboardEvent } from '../events/KeyboardEvent';\nimport { AVMStage } from '@awayfl/swf-loader';\nimport { FocusEvent } from '../events/FocusEvent';\nvar InteractiveObject = /** @class */ (function (_super) {\n __extends(InteractiveObject, _super);\n /** these should be able to get setup:\n\n // listen on key directly\n\n * Dispatched when the user releases a key.\n * @eventType\tflash.events.KeyboardEvent.KEY_UP\n [Event(name=\"keyUp\", type=\"flash.events.KeyboardEvent\")]\n\n * Dispatched when the user presses a key.\n * @eventType\tflash.events.KeyboardEvent.KEY_DOWN\n [Event(name=\"keyDown\", type=\"flash.events.KeyboardEvent\")]\n\n // listen on awayjs adapter and translate\n\n * Dispatched when a user releases the pointing device button over an\n * InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.RIGHT_MOUSE_UP\n [Event(name=\"rightMouseUp\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user presses the pointing device button over an InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.RIGHT_MOUSE_DOWN\n [Event(name=\"rightMouseDown\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user presses and releases the right button of the user's\n * pointing device over the same InteractiveObject.\n * @eventType\tflash.events.MouseEvent.RIGHT_CLICK\n [Event(name=\"rightClick\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user releases the pointing device button over an\n * InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.MIDDLE_MOUSE_UP\n [Event(name=\"middleMouseUp\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user presses the middle pointing device button over an InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.MIDDLE_MOUSE_DOWN\n [Event(name=\"middleMouseDown\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user presses and releases the middle button of the user's\n * pointing device over the same InteractiveObject.\n * @eventType\tflash.events.MouseEvent.MIDDLE_CLICK\n [Event(name=\"middleClick\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when the user moves a pointing device over an InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.ROLL_OVER\n [Event(name=\"rollOver\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when the user moves a pointing device away from an InteractiveObject\n * instance.\n * @eventType\tflash.events.MouseEvent.ROLL_OUT\n [Event(name=\"rollOut\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a mouse wheel is spun over an InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.MOUSE_WHEEL\n [Event(name=\"mouseWheel\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user releases the pointing device button over an\n * InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.MOUSE_UP\n [Event(name=\"mouseUp\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when the user moves a pointing device over an InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.MOUSE_OVER\n [Event(name=\"mouseOver\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when the user moves a pointing device away from an InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.MOUSE_OUT\n [Event(name=\"mouseOut\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user moves the pointing device while it is over an InteractiveObject.\n * @eventType\tflash.events.MouseEvent.MOUSE_MOVE\n [Event(name=\"mouseMove\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user presses the pointing device button over an InteractiveObject instance.\n * @eventType\tflash.events.MouseEvent.MOUSE_DOWN\n [Event(name=\"mouseDown\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user presses and releases the main button of a pointing device twice in\n * rapid succession over the same InteractiveObject when that object's\n * doubleClickEnabled flag is set to true.\n * @eventType\tflash.events.MouseEvent.DOUBLE_CLICK\n [Event(name=\"doubleClick\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched when a user presses and releases the main button of the user's\n * pointing device over the same InteractiveObject.\n * @eventType\tflash.events.MouseEvent.CLICK\n [Event(name=\"click\", type=\"flash.events.MouseEvent\")]\n */\n /**\n * Dispatched immediately after the soft keyboard is lowered.\n * @eventType\tflash.events.SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE\n [Event(name=\"softKeyboardDeactivate\", type=\"flash.events.SoftKeyboardEvent\")]\n\n * Dispatched immediately after the soft keyboard is raised.\n * @eventType\tflash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE\n [Event(name=\"softKeyboardActivate\", type=\"flash.events.SoftKeyboardEvent\")]\n\n * Dispatched immediately before the soft keyboard is raised.\n * @eventType\tflash.events.SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING\n [Event(name=\"softKeyboardActivating\", type=\"flash.events.SoftKeyboardEvent\")]\n\n * Dispatched when a user enters one or more\n * characters of text.\n * @eventType\tflash.events.TextEvent.TEXT_INPUT\n [Event(name=\"textInput\", type=\"flash.events.TextEvent\")]\n /// This event is dispatched to any client app that supports inline input with an IME\n [Event(name=\"imeStartComposition\", type=\"flash.events.IMEEvent\")]\n\n * Dispatched when a user gesture triggers the context menu associated with this interactive\n * object in an AIR application.\n * @eventType\tflash.events.MouseEvent.CONTEXT_MENU\n [Event(name=\"contextMenu\", type=\"flash.events.MouseEvent\")]\n\n * Dispatched by the drag initiator InteractiveObject when the user releases the drag gesture.\n * @eventType\tflash.events.NativeDragEvent.NATIVE_DRAG_COMPLETE\n [Event(name=\"nativeDragComplete\", type=\"flash.events.NativeDragEvent\")]\n\n * Dispatched during a drag operation by the InteractiveObject that is\n * specified as the drag initiator in the DragManager.doDrag() call.\n * @eventType\tflash.events.NativeDragEvent.NATIVE_DRAG_UPDATE\n [Event(name=\"nativeDragUpdate\", type=\"flash.events.NativeDragEvent\")]\n\n * Dispatched at the beginning of a drag operation by the InteractiveObject that is\n * specified as the drag initiator in the DragManager.doDrag() call.\n * @eventType\tflash.events.NativeDragEvent.NATIVE_DRAG_START\n [Event(name=\"nativeDragStart\", type=\"flash.events.NativeDragEvent\")]\n\n * Dispatched by an InteractiveObject when a drag gesture leaves its boundary.\n * @eventType\tflash.events.NativeDragEvent.NATIVE_DRAG_EXIT\n [Event(name=\"nativeDragExit\", type=\"flash.events.NativeDragEvent\")]\n\n * Dispatched by the target InteractiveObject when a dragged object is\n * dropped on it and the drop has been accepted with a call to\n * DragManager.acceptDragDrop().\n * @eventType\tflash.events.NativeDragEvent.NATIVE_DRAG_DROP\n [Event(name=\"nativeDragDrop\", type=\"flash.events.NativeDragEvent\")]\n\n * Dispatched by an InteractiveObject continually while a drag gesture remains within its\n * boundary.\n * @eventType\tflash.events.NativeDragEvent.NATIVE_DRAG_OVER\n [Event(name=\"nativeDragOver\", type=\"flash.events.NativeDragEvent\")]\n\n * Dispatched by an InteractiveObject when a drag gesture enters its boundary.\n * @eventType\tflash.events.NativeDragEvent.NATIVE_DRAG_ENTER\n\n * Dispatched when the value of the object's tabIndex property changes.\n * @eventType\tflash.events.Event.TAB_INDEX_CHANGE\n [Event(name=\"tabIndexChange\", type=\"flash.events.Event\")]\n\n * Dispatched when the object's tabEnabled flag changes.\n * @eventType\tflash.events.Event.TAB_ENABLED_CHANGE\n [Event(name=\"tabEnabledChange\", type=\"flash.events.Event\")]\n\n * Dispatched when the value of the object's tabChildren flag changes.\n * @eventType\tflash.events.Event.TAB_CHILDREN_CHANGE\n [Event(name=\"tabChildrenChange\", type=\"flash.events.Event\")]\n\n * Dispatched when the user performs a swipe gesture at a point of contact with an InteractiveObject instance\n (such as touching three\n * fingers to a screen and then moving them in parallel over a display object on a mobile phone\n or tablet with a touch screen).\n * @eventType\tflash.events.TransformGestureEvent.GESTURE_SWIPE\n [Event(name=\"gestureSwipe\", type=\"flash.events.TransformGestureEvent\")]\n\n * Dispatched when the user performs a zoom gesture at a point of contact with an InteractiveObject instance\n (such as touching two\n * fingers to a screen and then quickly spreading the fingers apart over a display object on a mobile phone\n or tablet with a touch screen).\n * @eventType\tflash.events.TransformGestureEvent.GESTURE_ZOOM\n [Event(name=\"gestureZoom\", type=\"flash.events.TransformGestureEvent\")]\n\n * Dispatched when the user performs a rotation gesture at a point of contact with an InteractiveObject instance\n (such as touching two fingers\n * and rotating them over a display object on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TransformGestureEvent.GESTURE_ROTATE\n [Event(name=\"gestureRotate\", type=\"flash.events.TransformGestureEvent\")]\n\n * Dispatched when the user creates a point of contact with an InteractiveObject instance, then taps\n * on a touch-enabled device (such as placing several fingers over a display object to open a menu and then taps\n * one finger to select a menu item\n * on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.PressAndTapGestureEvent.GESTURE_PRESS_AND_TAP\n [Event(name=\"gesturePressAndTap\", type=\"flash.events.PressAndTapGestureEvent\")]\n\n * Dispatched when the user moves a point of contact over the InteractiveObject instance\n * on a touch-enabled device (such as moving a finger from left to right over a display object\n * on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TransformGestureEvent.GESTURE_PAN\n [Event(name=\"gesturePan\", type=\"flash.events.TransformGestureEvent\")]\n\n * Dispatched when the user presses two points of contact over the same InteractiveObject instance\n * on a touch-enabled device (such as presses and releases two fingers over a display object\n * on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.GestureEvent.GESTURE_TWO_FINGER_TAP\n [Event(name=\"gestureTwoFingerTap\", type=\"flash.events.GestureEvent\")]\n\n * Dispatched when the user lifts the point of contact over the same InteractiveObject\n instance on which the contact was initiated\n * on a touch-enabled device (such as presses and releases a finger from a single point over a display object\n * on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_TAP\n [Event(name=\"touchTap\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user moves the point of contact over an InteractiveObject instance on a touch-enabled device\n * (such as drags a finger from a point outside a display object to a point over a displayobject\n * on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_ROLL_OVER\n [Event(name=\"touchRollOver\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user moves the point of contact away from an InteractiveObject instance\n on a touch-enabled device\n * (such as drags a finger from over a display object to a point outside the display object on a mobile phone\n or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_ROLL_OUT\n [Event(name=\"touchRollOut\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user moves the point of contact over an InteractiveObject instance on a touch-enabled device\n * (such as drags a finger from a point outside a display object to a point over a display object\n * on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_OVER\n [Event(name=\"touchOver\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user moves the point of contact away from InteractiveObject instance\n on a touch-enabled device\n * (such as drags a finger from one display object to another on a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_OUT\n [Event(name=\"touchOut\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user moves the point of contact with a touch-enabled device\n (such as drags a finger across a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_MOVE\n [Event(name=\"touchMove\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user removes contact with a touch-enabled device\n (such as lifts a finger off a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_END\n [Event(name=\"touchEnd\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user first contacts a touch-enabled device\n (such as touches a finger to a mobile phone or tablet with a touch screen).\n * @eventType\tflash.events.TouchEvent.TOUCH_BEGIN\n [Event(name=\"touchBegin\", type=\"flash.events.TouchEvent\")]\n\n * Dispatched when the user attempts to change focus by using a pointer device.\n * @eventType\tflash.events.FocusEvent.MOUSE_FOCUS_CHANGE\n [Event(name=\"mouseFocusChange\", type=\"flash.events.FocusEvent\")]\n\n * Dispatched when the user attempts to change focus by using keyboard navigation.\n * @eventType\tflash.events.FocusEvent.KEY_FOCUS_CHANGE\n *\n * Dispatched after a display object loses focus.\n * @eventType\tflash.events.FocusEvent.FOCUS_OUT\n [Event(name=\"focusOut\", type=\"flash.events.FocusEvent\")]\n\n * Dispatched after a display object gains focus.\n * @eventType\tflash.events.FocusEvent.FOCUS_IN\n [Event(name=\"focusIn\", type=\"flash.events.FocusEvent\")]\n\n * Dispatched when the user activates the platform-specific accelerator key combination for a select all operation\n * or selects 'Select All' from the text context menu.\n * @eventType\tflash.events.Event.SELECT_ALL\n [Event(name=\"selectAll\", type=\"flash.events.Event\")]\n\n * Dispatched when the user activates the platform-specific accelerator key combination for a paste operation\n * or selects 'Paste' from the text context menu.\n * @eventType\tflash.events.Event.PASTE\n [Event(name=\"paste\", type=\"flash.events.Event\")]\n\n * Dispatched when the user activates the platform-specific accelerator key combination for a cut operation\n * or selects 'Cut' from the text context menu.\n * @eventType\tflash.events.Event.CUT\n [Event(name=\"cut\", type=\"flash.events.Event\")]\n\n * Dispatched when the user activates the platform-specific accelerator key combination for a copy operation\n * or selects 'Copy' from the text context menu.\n * @eventType\tflash.events.Event.COPY\n [Event(name=\"copy\", type=\"flash.events.Event\")]\n\n * Dispatched when the user selects 'Clear' (or 'Delete') from the text context menu.\n * @eventType\tflash.events.Event.CLEAR\n [Event(name=\"clear\", type=\"flash.events.Event\")]\n */\n /**\n\n * The InteractiveObject class is the abstract base class for all display objects with which the user can\n * interact, using the mouse, keyboard, or other user input device.\n *\n * <p class=\"- topic/p \">You cannot instantiate the InteractiveObject class directly.\n * A call to the <codeph class=\"+ topic/ph pr-d/codeph \">new\n * InteractiveObject()</codeph> constructor throws an\n * <codeph class=\"+ topic/ph pr-d/codeph \">ArgumentError</codeph> exception.</p><p class=\"- topic/p \">\n * The InteractiveObject class itself does not include any APIs for rendering content onscreen.\n * To create a custom subclass of the InteractiveObject class,\n * extend one of the subclasses that do have APIs for rendering content onscreen,\n * such as the Sprite, SimpleButton, TextField, or MovieClip classes.</p>\n *\n * EXAMPLE:\n *\n * The following example uses the <codeph class=\"+ topic/ph pr-d/codeph \">\n * InteractiveObjectExample</codeph> class, which in\n * turn uses the <codeph class=\"+ topic/ph pr-d/codeph \">ChildSprite</codeph>\n * class to draw a rectangle and then manipulate that rectangle\n * based on various mouse events. This task is accomplished by performing the following steps:\n * <ol class=\"- topic/ol \"><li class=\"- topic/li \">In the <codeph class=\"+ topic/ph pr-d/codeph \">\n * InteractiveObjectExample</codeph> constructor, a new ChildSprite object of type Sprite\n * called <codeph class=\"+ topic/ph pr-d/codeph \">child</codeph> is created,\n * which calls the ChildSprite constructor method to draw the shape\n * and add mouse events for the shape (as explained in the following steps).\n * The <codeph class=\"+ topic/ph pr-d/codeph \">child</codeph>\n * object is added to the top of the display list at coordinates <i class=\"+ topic/ph hi-d/i \">\n * x = 0, y = 0</i>. </li><li class=\"- topic/li \">In the <codeph class=\"+ topic/ph pr-d/codeph \">\n * ChildSprite</codeph> class, declare the <codeph class=\"+ topic/ph pr-d/codeph \">size</codeph> and\n * <codeph class=\"+ topic/ph pr-d/codeph \">overSize</codeph> properties that are used later in the\n * <codeph class=\"+ topic/ph pr-d/codeph \">draw()</codeph> method and\n * MouseEvent methods.</li><li class=\"- topic/li \">\n * Declare properties that set the background color to orange, the mouse-over color to\n * dark yellow, and the mouse-down color to light blue.</li><li class=\"- topic/li \">\n * In the <codeph class=\"+ topic/ph pr-d/codeph \">ChildSprite</codeph> constructor,\n * an orange square is drawn by using methods from\n * the Graphics class and the <codeph class=\"+ topic/ph pr-d/codeph \">draw()</codeph> method.\n * </li><li class=\"- topic/li \">The constructor adds four MouseEvent event listener methods:\n *\n * <ul class=\"- topic/ul \"><li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \"\n * >mouseOverHandler</codeph>: redraws a larger 60 x 60 pixel square with a dark-yellow color\n * at the original coordinates.</li><li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">\n * mouseOutHandler</codeph>: returns the square to its original size and color.</li><li class=\"- topic/li \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">mouseDownHandler</codeph>:\n * redraws a larger 60 x 60 pixel square with a light-blue color\n * at the original coordinates.</li><li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">\n * mouseUpHandler</codeph>: same as <codeph class=\"+ topic/ph pr-d/codeph \">mouseOverHandler</codeph>.</li></ul>\n * </li></ol><codeblock xml:space=\"preserve\" class=\"+ topic/pre pr-d/codeblock \">\n *\n * Calling the new InteractiveObject() constructor\n * throws an ArgumentError exception.\n * You can, however, call constructors for the following subclasses of InteractiveObject:\n *\n * new SimpleButton()new TextField()new Loader()new Sprite()new MovieClip()\n */\n function InteractiveObject() {\n var _this = _super.call(this) || this;\n _this._listnersCallbacksByType = {};\n _this.adaptee.mouseEnabled = true;\n // these events can not be mapped from awayjs: //todo (?)\n _this.eventMappingDummys[MouseEvent.RIGHT_MOUSE_UP] = 'InteractiveObject:MouseEvent.RIGHT_MOUSE_UP';\n _this.eventMappingDummys[MouseEvent.RIGHT_MOUSE_DOWN] = 'InteractiveObject:MouseEvent.RIGHT_MOUSE_DOWN';\n _this.eventMappingDummys[MouseEvent.RIGHT_MOUSE_DOWN] = 'InteractiveObject:MouseEvent.RIGHT_MOUSE_DOWN';\n _this.eventMappingDummys[MouseEvent.RIGHT_CLICK] = 'InteractiveObject:MouseEvent.RIGHT_CLICK';\n _this.eventMappingDummys[MouseEvent.MIDDLE_MOUSE_UP] = 'InteractiveObject:MouseEvent.MIDDLE_MOUSE_UP';\n _this.eventMappingDummys[MouseEvent.MIDDLE_MOUSE_DOWN] = 'InteractiveObject:MouseEvent.MIDDLE_MOUSE_DOWN';\n _this.eventMappingDummys[MouseEvent.MIDDLE_CLICK] = 'InteractiveObject:MouseEvent.MIDDLE_CLICK';\n /*\n //todo\n this.eventMappingDummys[SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE]=\n \"SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE\";\n this.eventMappingDummys[SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE]=\"SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE\";\n this.eventMappingDummys[SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING]=\n \"SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING\";\n this.eventMappingDummys[TextEvent.TEXT_INPUT]=\"TextEvent.TEXT_INPUT\";\n this.eventMappingDummys[MouseEvent.CONTEXT_MENU]=\"MouseEvent.CONTEXT_MENU\";\n this.eventMappingDummys[NativeDragEvent.NATIVE_DRAG_COMPLETE]=\"NativeDragEvent.NATIVE_DRAG_COMPLETE\";\n this.eventMappingDummys[NativeDragEvent.NATIVE_DRAG_UPDATE]=\"NativeDragEvent.NATIVE_DRAG_UPDATE\";\n this.eventMappingDummys[NativeDragEvent.NATIVE_DRAG_START]=\"NativeDragEvent.NATIVE_DRAG_START\";\n this.eventMappingDummys[NativeDragEvent.NATIVE_DRAG_EXIT]=\"NativeDragEvent.NATIVE_DRAG_EXIT\";\n this.eventMappingDummys[NativeDragEvent.NATIVE_DRAG_DROP]=\"NativeDragEvent.NATIVE_DRAG_DROP\";\n this.eventMappingDummys[NativeDragEvent.NATIVE_DRAG_OVER]=\"NativeDragEvent.NATIVE_DRAG_OVER\";\n this.eventMappingDummys[NativeDragEvent.NATIVE_DRAG_ENTER]=\"NativeDragEvent.NATIVE_DRAG_ENTER\";\n this.eventMappingDummys[Event.TAB_INDEX_CHANGE]=\"Event.TAB_INDEX_CHANGE\";\n this.eventMappingDummys[Event.TAB_ENABLED_CHANGE]=\"Event.TAB_ENABLED_CHANGE\";\n this.eventMappingDummys[Event.TAB_CHILDREN_CHANGE]=\"Event.TAB_CHILDREN_CHANGE\";\n this.eventMappingDummys[TransformGestureEvent.GESTURE_SWIPE]=\"TransformGestureEvent.GESTURE_SWIPE\";\n this.eventMappingDummys[TransformGestureEvent.GESTURE_ROTATE]=\"TransformGestureEvent.GESTURE_ROTATE\";\n this.eventMappingDummys[TransformGestureEvent.GESTURE_PRESS_AND_TAP]=\n \"TransformGestureEvent.GESTURE_PRESS_AND_TAP\";\n this.eventMappingDummys[GestureEvent.GESTURE_PAN]=\"GestureEvent.GESTURE_PAN\";\n this.eventMappingDummys[GestureEvent.GESTURE_TWO_FINGER_TAP]=\"GestureEvent.GESTURE_TWO_FINGER_TAP\";\n this.eventMappingDummys[TouchEvent.TOUCH_TAP]=\"TouchEvent.TOUCH_TAP\";\n this.eventMappingDummys[TouchEvent.TOUCH_ROLL_OVER]=\"TouchEvent.TOUCH_ROLL_OVER\";\n this.eventMappingDummys[TouchEvent.TOUCH_ROLL_OUT]=\"TouchEvent.TOUCH_ROLL_OUT\";\n this.eventMappingDummys[TouchEvent.TOUCH_OVER]=\"TouchEvent.TOUCH_OVER\";\n this.eventMappingDummys[TouchEvent.TOUCH_OUT]=\"TouchEvent.TOUCH_OUT\";\n this.eventMappingDummys[TouchEvent.TOUCH_MOVE]=\"TouchEvent.TOUCH_MOVE\";\n this.eventMappingDummys[TouchEvent.TOUCH_END]=\"TouchEvent.TOUCH_END\";\n this.eventMappingDummys[TouchEvent.TOUCH_BEGIN]=\"TouchEvent.TOUCH_BEGIN\";\n this.eventMappingDummys[FocusEvent.MOUSE_FOCUS_CHANGE]=\"FocusEvent.MOUSE_FOCUS_CHANGE\";\n this.eventMappingDummys[FocusEvent.KEY_FOCUS_CHANGE]=\"FocusEvent.KEY_FOCUS_CHANGE\";\n this.eventMappingDummys[Event.SELECT_ALL]=\"Event.SELECT_ALL\";\n this.eventMappingDummys[Event.PASTE]=\"Event.PASTE\";\n this.eventMappingDummys[Event.CUT]=\"Event.CUT\";\n this.eventMappingDummys[Event.COPY]=\"Event.COPY\";\n this.eventMappingDummys[Event.CLEAR]=\"Event.CLEAR\";\n */\n // KeyboardEvent events adapt to js-events. they listen on document.onKeyUp / onKeyDown:\n _this._keyUpCallbackDelegate = function (event) { return _this.keyUpCallback(event); };\n _this.eventMapping[KeyboardEvent.KEY_UP] = {\n adaptedType: '',\n addListener: _this.initKeyUpListener,\n removeListener: _this.removeKeyUpListener,\n callback: _this._keyUpCallbackDelegate\n };\n _this._keyDownCallbackDelegate = function (event) { return _this.keyDownCallback(event); };\n _this.eventMapping[KeyboardEvent.KEY_DOWN] = {\n adaptedType: '',\n addListener: _this.initKeyDownListener,\n removeListener: _this.removeKeyDownListener,\n callback: _this._keyDownCallbackDelegate\n };\n // TouchEvent events adapt to awayjs-TouchEvents. they listen on adapter:\n // these mapping share the same callback, thats why we need the setup the eventMappingInvert to\n _this._touchCallbackDelegate = function (event) { return _this.touchCallback(event); };\n _this.eventMappingInvert[TouchEventAway.TOUCH_END] = TouchEvent.TOUCH_END;\n _this.eventMapping[TouchEvent.TOUCH_END] = {\n adaptedType: TouchEventAway.TOUCH_END,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._touchCallbackDelegate\n };\n _this.eventMappingInvert[TouchEventAway.TOUCH_OVER] = TouchEvent.TOUCH_OVER;\n _this.eventMapping[TouchEvent.TOUCH_OVER] = {\n adaptedType: TouchEventAway.TOUCH_OVER,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._touchCallbackDelegate\n };\n _this.eventMappingInvert[TouchEventAway.TOUCH_OUT] = TouchEvent.TOUCH_OUT;\n _this.eventMapping[TouchEvent.TOUCH_OUT] = {\n adaptedType: TouchEventAway.TOUCH_OUT,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._touchCallbackDelegate\n };\n _this.eventMappingInvert[TouchEventAway.TOUCH_MOVE] = TouchEvent.TOUCH_MOVE;\n _this.eventMapping[TouchEvent.TOUCH_MOVE] = {\n adaptedType: TouchEventAway.TOUCH_MOVE,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._touchCallbackDelegate\n };\n _this.eventMappingInvert[TouchEventAway.TOUCH_BEGIN] = TouchEvent.TOUCH_BEGIN;\n _this.eventMapping[TouchEvent.TOUCH_BEGIN] = {\n adaptedType: TouchEventAway.TOUCH_BEGIN,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._touchCallbackDelegate\n };\n _this.eventMappingInvert[TouchEventAway.TOUCH_TAP] = TouchEvent.TOUCH_TAP;\n _this.eventMapping[TouchEvent.TOUCH_TAP] = {\n adaptedType: TouchEventAway.TOUCH_TAP,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._touchCallbackDelegate\n };\n // MouseEvent events adapt to awayjs-MouseEvents. they listen on adapter:\n // these mapping share the same callback, thats why we need the setup the eventMappingInvert to\n _this._mouseCallbackDelegate = function (event) { return _this.mouseCallback(event); };\n _this.eventMappingInvert[MouseEventAway.MOUSE_WHEEL] = MouseEvent.MOUSE_WHEEL;\n _this.eventMapping[MouseEvent.MOUSE_WHEEL] = {\n adaptedType: MouseEventAway.MOUSE_WHEEL,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.MOUSE_UP] = MouseEvent.MOUSE_UP;\n _this.eventMapping[MouseEvent.MOUSE_UP] = {\n adaptedType: MouseEventAway.MOUSE_UP,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.MOUSE_UP_OUTSIDE] = MouseEvent.RELEASE_OUTSIDE;\n _this.eventMapping[MouseEvent.RELEASE_OUTSIDE] = {\n adaptedType: MouseEventAway.MOUSE_UP_OUTSIDE,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.MOUSE_OVER] = MouseEvent.MOUSE_OVER;\n _this.eventMapping[MouseEvent.MOUSE_OVER] = {\n adaptedType: MouseEventAway.MOUSE_OVER,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.MOUSE_OUT] = MouseEvent.MOUSE_OUT;\n _this.eventMapping[MouseEvent.MOUSE_OUT] = {\n adaptedType: MouseEventAway.MOUSE_OUT,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.MOUSE_MOVE] = MouseEvent.MOUSE_MOVE;\n _this.eventMapping[MouseEvent.MOUSE_MOVE] = {\n adaptedType: MouseEventAway.MOUSE_MOVE,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.MOUSE_DOWN] = MouseEvent.MOUSE_DOWN;\n _this.eventMapping[MouseEvent.MOUSE_DOWN] = {\n adaptedType: MouseEventAway.MOUSE_DOWN,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.DOUBLE_CLICK] = MouseEvent.DOUBLE_CLICK;\n _this.eventMapping[MouseEvent.DOUBLE_CLICK] = {\n adaptedType: MouseEventAway.DOUBLE_CLICK,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.CLICK] = MouseEvent.CLICK;\n _this.eventMapping[MouseEvent.CLICK] = {\n adaptedType: MouseEventAway.CLICK,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.ROLL_OUT] = MouseEvent.ROLL_OUT;\n _this.eventMapping[MouseEvent.ROLL_OUT] = {\n adaptedType: MouseEventAway.ROLL_OUT,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this.eventMappingInvert[MouseEventAway.ROLL_OVER] = MouseEvent.ROLL_OVER;\n _this.eventMapping[MouseEvent.ROLL_OVER] = {\n adaptedType: MouseEventAway.ROLL_OVER,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._mouseCallbackDelegate\n };\n _this._focusCallbackDelegate = function (event) { return _this.focusCallback(event); };\n _this.eventMappingInvert[FocusEventAway.FOCUS_OUT] = FocusEvent.FOCUS_OUT;\n _this.eventMapping[FocusEvent.FOCUS_OUT] = {\n adaptedType: FocusEventAway.FOCUS_OUT,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._focusCallbackDelegate\n };\n _this.eventMappingInvert[FocusEventAway.FOCUS_IN] = FocusEvent.FOCUS_IN;\n _this.eventMapping[FocusEvent.FOCUS_IN] = {\n adaptedType: FocusEventAway.FOCUS_IN,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._focusCallbackDelegate\n };\n return _this;\n }\n // ---------- event mapping functions for KeyboardEvent.KEY_UP:\n InteractiveObject.prototype.initKeyUpListener = function (type, callback, listener) {\n if (!this._keyUpListeners) {\n this._keyUpListeners = [listener];\n //console.log(\"initKeyUpListener\", this)\n document.addEventListener('keyup', callback);\n document.addEventListener('keypress', callback);\n return;\n }\n this._keyUpListeners.push(listener);\n };\n InteractiveObject.prototype.removeKeyUpListener = function (type, callback, listener) {\n if (this._keyUpListeners) {\n var idx = this._keyUpListeners.indexOf(listener);\n if (idx != -1) {\n if (this._keyUpListeners.length == 1) {\n this._keyUpListeners = null;\n document.removeEventListener('keyup', callback);\n return;\n }\n this._keyUpListeners.splice(idx, 1);\n }\n }\n };\n InteractiveObject.prototype.keyUpCallback = function (event) {\n if (event === void 0) { event = null; }\n if (AVMStage.instance().isPaused)\n return;\n if (window.event) {\n window.event.returnValue = false;\n }\n event.preventDefault ? event.preventDefault() : (event.returnValue = false);\n var newkeyBoardEvent = new this.sec.flash.events.KeyboardEvent(KeyboardEvent.KEY_UP, true, false, event.charCode, event.keyCode, event.location, event.ctrlKey, event.altKey, event.shiftKey);\n /*(<any>newkeyBoardEvent).axInitializer(KeyboardEvent.KEY_UP);\n newkeyBoardEvent.keyCode = event.keyCode;\n newkeyBoardEvent.charCode = event.charCode;\n newkeyBoardEvent.shiftKey = event.shiftKey;\n newkeyBoardEvent.ctrlKey = event.ctrlKey;\n newkeyBoardEvent.altKey = event.altKey;*/\n this.dispatchEvent(newkeyBoardEvent);\n return false;\n };\n // ---------- event mapping functions for KeyboardEvent.KEY_DOWN:\n InteractiveObject.prototype.initKeyDownListener = function (type, callback, listener) {\n if (!this._keyDownListeners) {\n this._keyDownListeners = [listener];\n //console.log(\"initKeyUpListener\", this)\n document.addEventListener('keydown', callback);\n document.addEventListener('keypress', callback);\n return;\n }\n this._keyDownListeners.push(listener);\n };\n InteractiveObject.prototype.removeKeyDownListener = function (type, callback, listener) {\n if (this._keyDownListeners) {\n var idx = this._keyDownListeners.indexOf(listener);\n if (idx != -1) {\n if (this._keyDownListeners.length == 1) {\n this._keyDownListeners = null;\n document.removeEventListener('keydown', callback);\n document.removeEventListener('keypress', callback);\n return;\n }\n this._keyDownListeners.splice(idx, 1);\n }\n }\n };\n InteractiveObject.prototype.keyDownCallback = function (event) {\n if (event === void 0) { event = null; }\n if (AVMStage.instance().isPaused)\n return;\n if (window.event) {\n window.event.returnValue = false;\n }\n event.preventDefault ? event.preventDefault() : (event.returnValue = false);\n var newkeyBoardEvent = new this.sec.flash.events.KeyboardEvent(KeyboardEvent.KEY_DOWN);\n newkeyBoardEvent.axInitializer(KeyboardEvent.KEY_DOWN);\n //newkeyBoardEvent.type=KeyboardEvent.KEY_DOWN;\n newkeyBoardEvent.keyCode = event.keyCode;\n newkeyBoardEvent.charCode = event.charCode;\n newkeyBoardEvent.shiftKey = event.shiftKey;\n newkeyBoardEvent.ctrlKey = event.ctrlKey;\n newkeyBoardEvent.altKey = event.altKey;\n this.dispatchEvent(newkeyBoardEvent);\n return false;\n };\n // ---------- event mapping functions for TouchEvents / MouseEvents:\n InteractiveObject.prototype.initListener = function (type, callback, listener) {\n if (!this._listnersCallbacksByType[type]) {\n this.adaptee.addEventListener(type, callback);\n this._listnersCallbacksByType[type] = [listener];\n return;\n }\n this._listnersCallbacksByType[type].push(listener);\n };\n InteractiveObject.prototype.removeListener = function (type, callback, listener) {\n if (this._listnersCallbacksByType[type]) {\n var idx = this._listnersCallbacksByType[type].indexOf(listener);\n if (idx != -1) {\n if (this._listnersCallbacksByType[type].length == 1) {\n delete this._listnersCallbacksByType[type];\n this.adaptee.removeEventListener(type, callback);\n return;\n }\n this._listnersCallbacksByType[type].splice(idx, 1);\n }\n }\n };\n InteractiveObject.prototype.mouseCallback = function (event) {\n if ((event.type == MouseEventAway.MOUSE_OUT || event.type == MouseEventAway.ROLL_OUT)\n && !this.stage) {\n return;\n }\n var adaptedEvent = new this.sec.flash.events.MouseEvent(this.eventMappingInvert[event.type]);\n adaptedEvent.fillFromAway(event);\n this.dispatchEvent(adaptedEvent, true);\n };\n InteractiveObject.prototype.touchCallback = function (event) {\n var adaptedEvent = new this.sec.flash.events.TouchEvent(this.eventMappingInvert[event.type]);\n adaptedEvent.fillFromAway(event);\n this.dispatchEvent(adaptedEvent, true);\n };\n InteractiveObject.prototype.focusCallback = function (event) {\n var adaptedEvent = new this.sec.flash.events.FocusEvent(this.eventMappingInvert[event.type]);\n adaptedEvent.fillFromAway(event);\n adaptedEvent.target = this;\n //adaptedEvent.currentTarget=this;\n this.dispatchEvent(adaptedEvent, true);\n };\n Object.defineProperty(InteractiveObject.prototype, \"accessibilityImplementation\", {\n //---------------------------stuff added to make it work:\n //---------------------------original as3 properties / methods:\n /**\n * The current accessibility implementation (AccessibilityImplementation)\n * for this InteractiveObject instance.\n * @langversion\t3.0\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'get accessibilityImplementation', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'set accessibilityImplementation', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"contextMenu\", {\n /**\n * Specifies the context menu associated with this object.\n *\n * For content running in Flash Player, this property is a ContextMenu object. In the AIR runtime,\n * the ContextMenu class extends the NativeMenu class, however Flash Player only supports the\n * ContextMenu class, not the NativeMenu class.\n * Note: TextField objects always include a clipboard menu in the context menu. The clipboard menu contains\n * Cut, Copy, Paste, Clear, and Select All commands.\n * You cannot remove these commands from the context menu for TextField objects.\n * For TextField objects, selecting these commands (or their keyboard equivalents) does not generate clear,\n * copy, cut, paste, or selectAll events.\n */\n get: function () {\n return this._contextMenu;\n },\n set: function (value) {\n this._contextMenu = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"doubleClickEnabled\", {\n /**\n * Specifies whether the object receives doubleClick events. The default value\n * is false, which means that by default an InteractiveObject instance does not receive\n * doubleClick events. If the doubleClickEnabled property is set to\n * true, the instance receives doubleClick events within its bounds.\n * The mouseEnabled property of the InteractiveObject instance must also be\n * set to true for the object to receive doubleClick events.\n *\n * No event is dispatched by setting this property. You must use the\n * addEventListener() method to add an event listener\n * for the doubleClick event.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'get doubleClickEnabled', '');\n return false;\n },\n set: function (enabled) {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'set doubleClickEnabled', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"focusRect\", {\n /**\n * Specifies whether this object displays a focus rectangle. It can take one of three\n * values: true, false, or null. Values of true\n * and false work as expected, specifying whether or not the focus rectangle\n * appears. A value of null indicates that this object obeys the\n * stageFocusRect property of the Stage.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'get focusRect', '');\n return null;\n },\n set: function (focusRect) {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'set focusRect', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"mouseEnabled\", {\n /**\n * Specifies whether this object receives mouse, or other user input, messages. The default value is true,\n * which means that by default any InteractiveObject instance that is on the display list\n * receives mouse events or other user input events.\n * If mouseEnabled is set to false, the instance does not receive any\n * mouse events (or other user input events like keyboard events).\n * Any children of this instance on the display list are not affected. To change\n * the mouseEnabled behavior for all children of an object on the display list, use\n * flash.display.DisplayObjectContainer.mouseChildren.\n * No event is dispatched by setting this property. You must use the\n * addEventListener() method to create interactive functionality.\n */\n //private _mouseEnabled:boolean=true;\n get: function () {\n return this.adaptee.mouseEnabled;\n },\n set: function (enabled) {\n this.adaptee.mouseEnabled = enabled;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"needsSoftKeyboard\", {\n /**\n * Specifies whether a virtual keyboard (an on-screen, software keyboard) should display\n * when this InteractiveObject instance receives focus.\n *\n * By default, the value is false and focusing an InteractiveObject instance does\n * not raise a soft keyboard. If the needsSoftKeyboard property is set to true,\n * the runtime raises a soft keyboard when the InteractiveObject instance is ready to accept user input.\n * An InteractiveObject instance is ready to accept user input after a programmatic call to set the Stage\n * focus property or a user interaction, such as a \"tap.\" If the client system has a\n * hardware keyboard available or does not support virtual keyboards,\n * then the soft keyboard is not raised.The InteractiveObject instance dispatches softKeyboardActivating,\n * softKeyboardActivate, and softKeyboardDeactivate events\n * when the soft keyboard raises and lowers.Note: This property is not supported in AIR applications on iOS.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'get needsSoftKeyboard', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'set needsSoftKeyboard', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"softKeyboardInputAreaOfInterest\", {\n /**\n * Defines the area that should remain on-screen when a soft keyboard is displayed.\n *\n * If the needsSoftKeyboard property of this InteractiveObject is\n * true, then the runtime adjusts the display as needed to keep the\n * object in view while the user types. Ordinarily, the runtime uses the object\n * bounds obtained from the DisplayObject.getBounds() method. You can\n * specify a different area using this softKeyboardInputAreaOfInterest\n * property.Specify the softKeyboardInputAreaOfInterest in stage coordinates.\n * Note: On Android, the softKeyboardInputAreaOfInterest is not\n * respected in landscape orientations.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'get softKeyboardInputAreaOfInterest', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'set softKeyboardInputAreaOfInterest', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"tabEnabled\", {\n /**\n * Specifies whether this object is in the tab order. If this object is in the tab order,\n * the value is true; otherwise, the value is false. By default,\n * the value is false, except for the following:\n * For a SimpleButton object, the value is true.For a TextField object with type = \"input\",\n * the value is true.For a Sprite object or MovieClip object with buttonMode = true, the value is true.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'get tabEnabled', '');\n return false;\n },\n set: function (enabled) {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'set tabEnabled', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(InteractiveObject.prototype, \"tabIndex\", {\n /**\n * Specifies the tab ordering of objects in a SWF file. The tabIndex\n * property is -1 by default, meaning no tab index is set for the object.\n *\n * If any currently displayed object in the SWF file contains a tabIndex property, automatic\n * tab ordering is disabled, and the tab ordering is calculated from the tabIndex properties of\n * objects in the SWF file. The custom tab ordering includes only objects that have tabIndex\n * properties.The tabIndex property can be a non-negative integer. The objects are ordered according to\n * their tabIndex properties, in ascending order. An object with a tabIndex\n * value of 1 precedes an object with a tabIndex value of 2. Do not use the same tabIndex\n *\n * value for multiple objects.The custom tab ordering that the tabIndex property defines is flat.\n * This means that no attention is paid to the hierarchical relationships of objects in the SWF file.\n * All objects in the SWF file with tabIndex properties are placed in the tab order, and the\n * tab order is determined by the order of the tabIndex values.\n * Note: To set the tab order for TLFTextField instances, cast the display object child\n * of the TLFTextField as an InteractiveObject, then set the tabIndex property. For example:\n *\n * InteractiveObject(tlfInstance.getChildAt(1)).tabIndex = 3;\n *\n * To reverse the tab order from the default setting for three instances of a TLFTextField object\n * (tlfInstance1, tlfInstance2 and tlfInstance3), use:\n *\n * InteractiveObject(tlfInstance1.getChildAt(1)).tabIndex = 3;\n * InteractiveObject(tlfInstance2.getChildAt(1)).tabIndex = 2;\n * InteractiveObject(tlfInstance3.getChildAt(1)).tabIndex = 1;\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'get tabIndex', '');\n return 0;\n },\n set: function (index) {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'set tabIndex', '');\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Raises a virtual keyboard.\n *\n * Calling this method focuses the InteractiveObject instance and raises the soft keyboard, if necessary.\n * The needsSoftKeyboard must also be true. A keyboard is not raised\n * if a hardware keyboard is available, or if the client system does not support virtual keyboards.\n * Note: This method is not supported in AIR applications on iOS.\n * @return\tA value of true means that the soft keyboard request was granted;\n * false means that the soft keyboard was not raised.\n */\n InteractiveObject.prototype.requestSoftKeyboard = function () {\n // @todo\n Debug.throwPIR('playerglobals/display/InteractiveObject', 'requestSoftKeyboard', '');\n return false;\n };\n return InteractiveObject;\n}(DisplayObject));\nexport { InteractiveObject };\n","import { __extends } from \"tslib\";\nimport { Debug, Vector3D } from '@awayjs/core';\nimport { Billboard, TextField as AwayTextField, DisplayObjectContainer as AwayDisplayObjectContainer, Sprite as AwaySprite, MovieClip as AwayMovieClip, TextSprite, } from '@awayjs/scene';\nimport { InteractiveObject } from './InteractiveObject';\nimport { Event } from '../events/Event';\nimport { PickGroup } from '@awayjs/view';\nimport { constructClassFromSymbol, OrphanManager } from '@awayfl/avm2';\nimport { StaticEvents } from '../events/StaticEvents';\nimport { AVMStage } from '@awayfl/swf-loader';\nvar DisplayObjectContainer = /** @class */ (function (_super) {\n __extends(DisplayObjectContainer, _super);\n /**\n * The DisplayObjectContainer class is the base class for all objects that can serve as display object containers on\n * the display list. The display list manages all objects displayed in the Flash runtimes.\n * Use the DisplayObjectContainer class to arrange the display objects in the display list.\n * Each DisplayObjectContainer object has its own child list for organizing the z-order of the objects.\n * The z-order is the front-to-back order that determines which object is drawn in front, which is behind,\n * and so on.\n *\n * <p class=\"- topic/p \">DisplayObject is an abstract base class; therefore,\n * you cannot call DisplayObject directly. Invoking\n * <codeph class=\"+ topic/ph pr-d/codeph \">new DisplayObject()</codeph> throws an\n * <codeph class=\"+ topic/ph pr-d/codeph \">ArgumentError</codeph> exception.</p>\n *\n * The DisplayObjectContainer class is an abstract base class for all objects that can contain child objects.\n * It cannot be instantiated directly; calling the <codeph class=\"+ topic/ph pr-d/codeph \">\n * new DisplayObjectContainer()</codeph> constructor\n * throws an <codeph class=\"+ topic/ph pr-d/codeph \">ArgumentError</codeph> exception.\n *\n * <p class=\"- topic/p \">For more information, see the \"Display Programming\" chapter of the\n * <i class=\"+ topic/ph hi-d/i \">ActionScript 3.0 Developer's Guide</i>.</p>\n\n /**\n * Calling the new DisplayObjectContainer() constructor throws an\n * ArgumentError exception. You can, however, call constructors for\n * the following subclasses of DisplayObjectContainer:\n *\n * new Loader()new Sprite()new MovieClip()\n */\n function DisplayObjectContainer() {\n var _this = _super.call(this) || this;\n if (_this.adaptee) {\n for (var i = 0; i < _this.adaptee.numChildren; i++) {\n var mc = _this.adaptee.getChildAt(i);\n var mcadapter = mc.adapter;\n var constructorFunc = mcadapter.executeConstructor;\n if (constructorFunc) {\n mcadapter.executeConstructor = null;\n //console.log(randomVal, \"call constructor for \", mc.parent.name, mc.name);\n constructorFunc();\n //(<any>mcadapter).constructorHasRun=true;\n }\n if (mc.just_added_to_timeline && mc._sessionID != -1\n && mcadapter && mcadapter.dispatchStaticEvent) {\n mcadapter.dispatchStaticEvent('added', mcadapter);\n mc.just_added_to_timeline = false;\n mc.hasDispatchedAddedToStage = mc.isOnDisplayList();\n if (mc.hasDispatchedAddedToStage)\n mcadapter.dispatchStaticEvent('addedToStage', mcadapter);\n }\n }\n }\n return _this;\n }\n DisplayObjectContainer.prototype.addTimelineObjectAtDepth = function (child, depth) {\n };\n DisplayObjectContainer.prototype.getTimelineObjectAtDepth = function (depth) {\n return null;\n };\n DisplayObjectContainer.prototype.createAdaptee = function () {\n return new AwayDisplayObjectContainer();\n };\n //---------------------------stuff added to make it work:\n DisplayObjectContainer.prototype.clone = function () {\n if (!this._symbol) {\n throw ('_symbol not defined when cloning movieclip');\n }\n var clone = constructClassFromSymbol(this._symbol, this._symbol.symbolClass);\n clone.axInitializer();\n this.adaptee.copyTo(clone.adaptee);\n return clone;\n };\n DisplayObjectContainer.prototype.debugDisplayGraph = function (obj) {\n obj.object = this;\n obj.rectangle = 'x:' + this.x + ', y:' + this.y + ', width:' + this.width + ', height:' + this.height;\n obj.children = {};\n var i = 0;\n for (i = 0; i < this._adaptee.numChildren; i++) {\n var oneChild = this._adaptee.getChildAt(i);\n var childname = 'child_' + i + ' ' + oneChild.adapter.constructor.name;\n if (oneChild.isAsset(AwaySprite) || oneChild.isAsset(AwayDisplayObjectContainer)) {\n if (oneChild.adapter) {\n obj.children[childname] = {};\n oneChild.adapter.debugDisplayGraph(obj.children[childname]);\n }\n }\n else if (oneChild.isAsset(Billboard)) {\n obj.children[childname] = {};\n obj.children[childname].object = oneChild.adapter;\n obj.children[childname].name = oneChild.name;\n obj.children[childname].rectangle = 'x:' + oneChild.x + ', y:' + oneChild.y;\n }\n else if (oneChild.isAsset(AwayMovieClip)) {\n obj.children[childname] = {};\n obj.children[childname].object = oneChild.adapter;\n obj.children[childname].name = oneChild.name;\n obj.children[childname].rectangle = 'x:' + oneChild.x + ', y:' + oneChild.y;\n }\n else if (oneChild.isAsset(AwayTextField)) {\n obj.children[childname] = {};\n obj.children[childname].object = oneChild.adapter;\n obj.children[childname].text = oneChild.text;\n obj.children[childname].rectangle = 'x:' + oneChild.x + ', y:' + oneChild.y;\n var box = PickGroup.getInstance()\n .getBoundsPicker(AVMStage.instance().view.getNode(oneChild)).getBoxBounds(AVMStage.instance().view.getNode(oneChild));\n obj.children[childname].width = (box == null) ? 0 : box.width;\n obj.children[childname].height = (box == null) ? 0 : box.height;\n }\n }\n };\n //\toverwrite\n DisplayObjectContainer.prototype.dispatch_ADDED_TO_STAGE = function (dispatchForThisChild) {\n if (dispatchForThisChild === void 0) { dispatchForThisChild = false; }\n if (dispatchForThisChild) {\n this.adaptee.hasDispatchedAddedToStage = true;\n if (!StaticEvents.events[Event.ADDED_TO_STAGE])\n StaticEvents.events[Event.ADDED_TO_STAGE] =\n new this.sec.flash.events.Event(Event.ADDED_TO_STAGE);\n StaticEvents.events[Event.ADDED_TO_STAGE].target = this;\n this.dispatchEvent(StaticEvents.events[Event.ADDED_TO_STAGE]);\n }\n if (this._adaptee) {\n for (var i = 0; i < this._adaptee.numChildren; i++) {\n var oneChild = this._adaptee.getChildAt(i);\n if (oneChild.adapter && oneChild.adapter.dispatchEventRecursive\n && !oneChild.hasDispatchedAddedToStage) {\n oneChild.hasDispatchedAddedToStage = true;\n oneChild.adapter.dispatch_ADDED_TO_STAGE(true);\n }\n }\n }\n };\n DisplayObjectContainer.prototype.dispatch_REMOVED_FROM_STAGE = function (dispatchForThisChild) {\n if (dispatchForThisChild === void 0) { dispatchForThisChild = false; }\n if (dispatchForThisChild) {\n this.adaptee.hasDispatchedAddedToStage = false;\n if (!StaticEvents.events[Event.REMOVED_FROM_STAGE])\n StaticEvents.events[Event.REMOVED_FROM_STAGE] =\n new this.sec.flash.events.Event(Event.REMOVED_FROM_STAGE);\n StaticEvents.events[Event.REMOVED_FROM_STAGE].target = this;\n this.dispatchEvent(StaticEvents.events[Event.REMOVED_FROM_STAGE]);\n }\n if (this._adaptee) {\n for (var i = 0; i < this._adaptee.numChildren; i++) {\n var oneChild = this._adaptee.getChildAt(i);\n if (oneChild.adapter && oneChild.adapter.dispatchEventRecursive\n && oneChild.hasDispatchedAddedToStage) {\n oneChild.hasDispatchedAddedToStage = false;\n oneChild.adapter.dispatch_REMOVED_FROM_STAGE(true);\n }\n }\n }\n };\n Object.defineProperty(DisplayObjectContainer.prototype, \"mouseChildren\", {\n //---------------------------original as3 properties / methods:\n /**\n * Determines whether or not the children of the object are mouse, or user input device, enabled.\n * If an object is enabled, a user can interact with it by using a mouse or user input device. The default is true.\n *\n * This property is useful when you create a button with an instance of the Sprite class\n * (instead of using the SimpleButton class). When you use a Sprite instance to create a button,\n * you can choose to decorate the button by using the addChild() method to add additional\n * Sprite instances. This process can cause unexpected behavior with mouse events because\n * the Sprite instances you add as children can become the target object of a mouse event\n * when you expect the parent instance to be the target object. To ensure that the parent\n * instance serves as the target objects for mouse events, you can set the\n * mouseChildren property of the parent instance to false.\n * No event is dispatched by setting this property. You must use the\n * addEventListener() method to create interactive functionality.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n get: function () {\n return this._adaptee.mouseChildren;\n },\n set: function (enable) {\n this._adaptee.mouseChildren = enable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObjectContainer.prototype, \"numChildren\", {\n /**\n * Returns the number of children of this object.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n get: function () {\n return this._adaptee.numChildren;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObjectContainer.prototype, \"tabChildren\", {\n /**\n * Determines whether the children of the object are tab enabled. Enables or disables tabbing for the\n * children of the object. The default is true.\n * Note: Do not use the tabChildren property with Flex.\n * Instead, use the mx.core.UIComponent.hasFocusableChildren property.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tIllegalOperationError Calling this property of the Stage object\n * throws an exception. The Stage object does not implement this property.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObjectContainer', 'get tabChildren', '');\n return false;\n },\n set: function (enable) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObjectContainer', 'set tabChildren', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplayObjectContainer.prototype, \"textSnapshot\", {\n /**\n * Returns a TextSnapshot object for this DisplayObjectContainer instance.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObjectContainer', 'get textSnapshot', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Adds a child DisplayObject instance to this DisplayObjectContainer instance. The child is added\n * to the front (top) of all other children in this DisplayObjectContainer instance. (To add a child to a\n * specific index position, use the addChildAt() method.)\n *\n * If you add a child object that already has a different display object container as\n * a parent, the object is removed from the child list of the other display object container.\n * Note: The command stage.addChild() can cause problems with a published SWF file,\n * including security problems and conflicts with other loaded SWF files.\n * There is only one Stage within a Flash runtime instance,\n * no matter how many SWF files you load into the runtime. So, generally, objects\n * should not be added to the Stage, directly, at all. The only object the Stage should\n * contain is the root object. Create a DisplayObjectContainer to contain all of the items on the\n * display list. Then, if necessary, add that DisplayObjectContainer instance to the Stage.\n * @param\tchild\tThe DisplayObject instance to add as a child of this DisplayObjectContainer instance.\n * @return\tThe DisplayObject instance that you pass in the\n * child parameter.\n * @throws\tArgumentError Throws if the child is the same as the parent. Also throws if\n * the caller is a child (or grandchild etc.) of the child being added.\n */\n DisplayObjectContainer.prototype.addChild = function (child) {\n // it can happen that we addChild a existing timeline-child\n // in this case the timeline-child gets unregistered, and we need to register it again\n var registerChild = (child.adaptee._sessionID >= 0 && this.registerScriptObject);\n var dispatchAdded = !(child.adaptee.parent == this.adaptee);\n this.adaptee.addChild(child.adaptee);\n if (registerChild) {\n this.registerScriptObject(child.adaptee);\n }\n if (dispatchAdded) {\n child.dispatchStaticEvent(Event.ADDED, child);\n if (this.adaptee.isOnDisplayList()) {\n child.dispatch_ADDED_TO_STAGE(true);\n }\n }\n OrphanManager.removeOrphan(child.adaptee);\n return child;\n };\n /**\n * Adds a child DisplayObject instance to this DisplayObjectContainer\n * instance. The child is added\n * at the index position specified. An index of 0 represents the back (bottom)\n * of the display list for this DisplayObjectContainer object.\n *\n * For example, the following example shows three display objects, labeled a, b, and c, at\n * index positions 0, 2, and 1, respectively\n * If you add a child object that already has a different display object container as\n * a parent, the object is removed from the child list of the other display object container.\n * @param\tchild\tThe DisplayObject instance to add as a child of this\n * DisplayObjectContainer instance.\n * @param\tindex\tThe index position to which the child is added. If you specify a\n * currently occupied index position, the child object that exists at that position and all\n * higher positions are moved up one position in the child list.\n * @return\tThe DisplayObject instance that you pass in the\n * child parameter.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tRangeError Throws if the index position does not exist in the child list.\n * @throws\tArgumentError Throws if the child is the same as the parent. Also throws if\n * the caller is a child (or grandchild etc.) of the child being added.\n */\n DisplayObjectContainer.prototype.addChildAt = function (child, index) {\n // it can happen that we addChild a existing timeline-child\n // in this case the timeline-child gets unregistered, and we need to register it again\n var registerChild = (child.adaptee._sessionID >= 0 && this.registerScriptObject);\n var dispatchAdded = !(child.adaptee.parent == this.adaptee);\n // todo: this should be done much more efficient (in awayjs)\n this.adaptee.addChildAt(child.adaptee, index);\n if (registerChild) {\n this.registerScriptObject(child.adaptee);\n }\n if (dispatchAdded) {\n child.dispatchStaticEvent(Event.ADDED);\n if (this.adaptee.isOnDisplayList()) {\n child.dispatch_ADDED_TO_STAGE(true);\n }\n }\n OrphanManager.removeOrphan(child.adaptee);\n return child;\n };\n /**\n * Indicates whether the security restrictions\n * would cause any display objects to be omitted from the list returned by calling\n * the DisplayObjectContainer.getObjectsUnderPoint() method\n * with the specified point point. By default, content from one domain cannot\n * access objects from another domain unless they are permitted to do so with a call to the\n * Security.allowDomain() method. For more information, related to security,\n * see the Flash Player Developer Center Topic:\n * Security.\n *\n * The point parameter is in the coordinate space of the Stage,\n * which may differ from the coordinate space of the display object container (unless the\n * display object container is the Stage). You can use the globalToLocal() and\n * the localToGlobal() methods to convert points between these coordinate\n * spaces.\n * @param\tpoint\tThe point under which to look.\n * @return\ttrue if the point contains child display objects with security restrictions.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n DisplayObjectContainer.prototype.areInaccessibleObjectsUnderPoint = function (point) {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObjectContainer', 'areInaccessibleObjectsUnderPoint', '');\n return false;\n };\n /**\n * Determines whether the specified display object is a child of the DisplayObjectContainer instance or\n * the instance itself.\n * The search includes the entire display list including this DisplayObjectContainer instance. Grandchildren,\n * great-grandchildren, and so on each return true.\n * @param\tchild\tThe child object to test.\n * @return\ttrue if the child object is a child of the DisplayObjectContainer\n * or the container itself; otherwise false.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n DisplayObjectContainer.prototype.contains = function (child) {\n return this._adaptee.contains(child.adaptee);\n };\n /**\n * Returns the child display object instance that exists at the specified index.\n * @param\tindex\tThe index position of the child object.\n * @return\tThe child display object at the specified index position.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tRangeError Throws if the index does not exist in the child list.\n * @throws\tSecurityError This child display object belongs to a sandbox\n * to which you do not have access. You can avoid this situation by having\n * the child movie call Security.allowDomain().\n */\n DisplayObjectContainer.prototype.getChildAt = function (index) {\n var child = this._adaptee.getChildAt(index);\n if (!child.adapter || child.adapter == child) {\n // todo: this looks like it might cause trouble:\n // it adds a Sprite-adapter to the child, regardsless what type the child really is\n var sprite = child.adapter = new this.sec.flash.display.Shape();\n sprite.adaptee = child;\n }\n return child.adapter;\n };\n /**\n * Returns the child display object that exists with the specified name.\n * If more that one child display object has the specified name,\n * the method returns the first object in the child list.\n *\n * The getChildAt() method is faster than the\n * getChildByName() method. The getChildAt() method accesses\n * a child from a cached array, whereas the getChildByName() method\n * has to traverse a linked list to access a child.\n * @param\tname\tThe name of the child to return.\n * @return\tThe child display object with the specified name.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tSecurityError This child display object belongs to a sandbox\n * to which you do not have access. You can avoid this situation by having\n * the child movie call the Security.allowDomain() method.\n */\n DisplayObjectContainer.prototype.getChildByName = function (name) {\n return this._adaptee.getChildByName(name) ?\n this._adaptee.getChildByName(name).adapter : null;\n };\n /**\n * Returns the index position of a child DisplayObject instance.\n * @param\tchild\tThe DisplayObject instance to identify.\n * @return\tThe index position of the child display object to identify.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tArgumentError Throws if the child parameter is not a child of this object.\n */\n DisplayObjectContainer.prototype.getChildIndex = function (child) {\n return this._adaptee.getChildIndex(child.adaptee);\n };\n /**\n * Returns an array of objects that lie under the specified point and are children\n * (or grandchildren, and so on) of this DisplayObjectContainer instance. Any child objects that\n * are inaccessible for security reasons are omitted from the returned array. To determine whether\n * this security restriction affects the returned array, call the\n * areInaccessibleObjectsUnderPoint() method.\n *\n * The point parameter is in the coordinate space of the Stage,\n * which may differ from the coordinate space of the display object container (unless the\n * display object container is the Stage). You can use the globalToLocal() and\n * the localToGlobal() methods to convert points between these coordinate\n * spaces.\n * @param\tpoint\tThe point under which to look.\n * @return\tAn array of objects that lie under the specified point and are children\n * (or grandchildren, and so on) of this DisplayObjectContainer instance.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n DisplayObjectContainer.prototype.getObjectsUnderPoint = function (point) {\n var raycastPicker = PickGroup.getInstance().getRaycastPicker(AVMStage.instance().view.getNode(this.adaptee));\n var awayChildren = raycastPicker.getObjectsUnderPoint(new Vector3D(0, 0, -1000), new Vector3D(point.x, point.y, 1000));\n var avm2Children = [];\n var i = awayChildren.length;\n while (i > 0) {\n i--;\n var child = awayChildren[i];\n if (child instanceof TextSprite) {\n child = child.parent;\n }\n else if (child.isAsset(AwaySprite) && child.adapter == child) {\n child.adapter = new this.sec.flash.display.Sprite();\n child.adapter.adaptee = child;\n }\n avm2Children.push(child.adapter);\n }\n return avm2Children;\n };\n /**\n * Removes the specified child DisplayObject instance from the child list of the DisplayObjectContainer instance.\n * The parent property of the removed child is set to null\n * , and the object is garbage collected if no other\n * references to the child exist. The index positions of any display objects above the child in the\n * DisplayObjectContainer are decreased by 1.\n *\n * The garbage collector reallocates unused memory space. When a variable\n * or object is no longer actively referenced or stored somewhere, the garbage collector sweeps\n * through and wipes out the memory space it used to occupy if no other references to it exist.\n * @param\tchild\tThe DisplayObject instance to remove.\n * @return\tThe DisplayObject instance that you pass in the\n * child parameter.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tArgumentError Throws if the child parameter is not a child of this object.\n */\n DisplayObjectContainer.prototype.removeChild = function (child) {\n try {\n this._adaptee.removeChild(child.adaptee);\n }\n catch (e) {\n // The adaptee scene graph can diverge from the AS3 display list (orphan/unload\n // management), so a child that is still in the AS3 list may already be detached\n // here. Throwing Flash's #2025 in that case erupts through whatever frame\n // callback is running (e.g. a tween onComplete) and can kill the shared ticker.\n console.warn('[DisplayObjectContainer] removeChild: not a child (already removed?) — ignoring');\n }\n //OrphanManager.addOrphan(child.adaptee);\n return child;\n };\n /**\n * Removes a child DisplayObject from the specified index position in the child list of\n * the DisplayObjectContainer. The parent property of the removed child is set to\n * null, and the object is garbage collected if no other references to the child exist. The index\n * positions of any display objects above the child in the DisplayObjectContainer are decreased by 1.\n *\n * The garbage collector reallocates unused memory space. When a variable or\n * object is no longer actively referenced or stored somewhere, the garbage collector sweeps\n * through and wipes out the memory space it used to occupy if no other references to it exist.\n * @param\tindex\tThe child index of the DisplayObject to remove.\n * @return\tThe DisplayObject instance that was removed.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tSecurityError This child display object belongs to a sandbox\n * to which the calling object does not have access. You can avoid this situation by having\n * the child movie call the Security.allowDomain() method.\n * @throws\tRangeError Throws if the index does not exist in the child list.\n */\n DisplayObjectContainer.prototype.removeChildAt = function (index) {\n var child = this._adaptee.removeChildAt(index).adapter;\n //OrphanManager.addOrphan(child.adaptee);\n return child;\n };\n DisplayObjectContainer.prototype.removeChildren = function (beginIndex, endIndex) {\n if (beginIndex === void 0) { beginIndex = 0; }\n if (endIndex === void 0) { endIndex = 2147483647; }\n if (endIndex >= this._adaptee.numChildren)\n endIndex = this._adaptee.numChildren - 1;\n for (var i = endIndex - 1; i >= beginIndex; i--)\n this.removeChildAt(i);\n };\n /**\n * Changes the position of an existing child in the display object container.\n * This affects the layering of child objects. For example, the following example shows three\n * display objects, labeled a, b, and c, at index positions 0, 1, and 2, respectively:\n *\n * When you use the setChildIndex() method and specify an index position\n * that is already occupied, the only positions that change are those in between the display object's\n * former and new position.\n * All others will stay the same.\n * If a child is moved to an index LOWER than its current index,\n * all children in between will INCREASE by 1 for their index reference.\n * If a child is moved to an index HIGHER than its current index,\n * all children in between will DECREASE by 1 for their index reference.\n * For example, if the display object container\n * in the previous example is named container, you can swap the position\n * of the display objects labeled a and b by calling the following code:\n * <codeblock>\n * container.setChildIndex(container.getChildAt(1), 0);\n * </codeblock>\n * This code results in the following arrangement of objects:\n * @param\tchild\tThe child DisplayObject instance for which you want to change\n * the index number.\n * @param\tindex\tThe resulting index number for the child display object.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tRangeError Throws if the index does not exist in the child list.\n * @throws\tArgumentError Throws if the child parameter is not a child of this object.\n */\n DisplayObjectContainer.prototype.setChildIndex = function (child, index) {\n this.setChildIndexInternal(child, index);\n };\n DisplayObjectContainer.prototype.setChildIndexInternal = function (child, index) {\n var idx = this.adaptee.getChildIndex(child.adaptee);\n if (idx < 0)\n throw ('[DisplayObjectContainer.setChildindex] \\\n\t\t\t\t- todo: throw as3 error when child is not child of this obj');\n if (idx == index)\n return;\n if (index > this._adaptee.numChildren)\n throw ('[DisplayObjectContainer.setChildindex] - todo: throw as3 error when index is out of bounds');\n this.adaptee.setChildIndex(child.adaptee, index);\n };\n DisplayObjectContainer.prototype.stopAllMovieClips = function () {\n // @todo\n Debug.throwPIR('playerglobals/display/DisplayObjectContainer', 'stopAllMovieClips', '');\n };\n /**\n * Swaps the z-order (front-to-back order) of the two specified child objects. All other child\n * objects in the display object container remain in the same index positions.\n * @param\tchild1\tThe first child object.\n * @param\tchild2\tThe second child object.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tArgumentError Throws if either child parameter is not a child of this object.\n */\n DisplayObjectContainer.prototype.swapChildren = function (child1, child2) {\n this._adaptee.swapChildren(child1.adaptee, child2.adaptee);\n };\n /**\n * Swaps the z-order (front-to-back order) of the child objects at the two specified index positions in the\n * child list. All other child objects in the display object container remain in the same index positions.\n * @param\tindex1\tThe index position of the first child object.\n * @param\tindex2\tThe index position of the second child object.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @throws\tRangeError If either index does not exist in the child list.\n */\n DisplayObjectContainer.prototype.swapChildrenAt = function (index1, index2) {\n this._adaptee.swapChildrenAt(index1, index2);\n };\n return DisplayObjectContainer;\n}(InteractiveObject));\nexport { DisplayObjectContainer };\n","import { __extends } from \"tslib\";\nimport { Sprite as AwaySprite, MovieClip as AwayMovieClip, FrameScriptManager, MouseEvent } from '@awayjs/scene';\nimport { DisplayObjectContainer } from './DisplayObjectContainer';\nimport { Point, Debug } from '@awayjs/core';\nimport { constructClassFromSymbol } from '@awayfl/avm2';\nimport { release, AVMStage } from '@awayfl/swf-loader';\nvar Sprite = /** @class */ (function (_super) {\n __extends(Sprite, _super);\n /**\n * The Sprite class is a basic display list building block: a display list node that can display\n * graphics and can also contain children.\n *\n * <p class=\"- topic/p \">A Sprite object is similar to a movie clip, but does not have a timeline. Sprite is an\n * appropriate base class for objects that do not require timelines. For example, Sprite would be a\n * logical base class for user numbererface (UI) components that typically do not use the timeline.</p>\n * <p class=\"- topic/p \">The Sprite class is new in ActionScript 3.0.\n * It provides an alternative to the functionality of\n * the MovieClip class, which retains all the functionality of previous ActionScript releases to\n * provide backward compatibility.</p>\n *\n * Creates a new Sprite instance. After you create the Sprite instance, call the\n * DisplayObjectContainer.addChild() or DisplayObjectContainer.addChildAt()\n * method to add the Sprite to a parent DisplayObjectContainer.\n */\n function Sprite() {\n var _this = _super.call(this) || this;\n _this.dragListenerDelegate = function (event) { return _this.dragListener(event); };\n _this.stopDragDelegate = function (event) { return _this.stopDrag(event); };\n _this._syncGraphics(_this._adaptee);\n // our prototype is not MC (MC extends Sprite and we MUST check this)\n if (!_this.sec.flash.display.MovieClip.axIsType(_this)\n && _this.adaptee.isAsset(AwayMovieClip)) {\n // trap MC to sprite mode for timeline\n _this.adaptee.transformToSprite();\n }\n return _this;\n }\n Sprite.getNewSprite = function (adaptee) {\n if (Sprite._sprites.length) {\n var sprite = Sprite._sprites.pop();\n sprite.adaptee = adaptee;\n return sprite;\n }\n return new Sprite();\n };\n Sprite.prototype.initAdapter = function () { };\n Sprite.prototype.setChildIndexInternal = function (child, index) {\n // we should re-register child when swap indexes,\n // because internally we call removeChildAt that unregister it\n var isRegisteredChild = (this._registeredChildNames &&\n this._registeredChildNames.indexOf(child.name) > -1);\n _super.prototype.setChildIndexInternal.call(this, child, index);\n if (isRegisteredChild) {\n this.registerScriptObject(child.adaptee);\n }\n };\n Sprite.prototype.createAdaptee = function () {\n var newAdaptee = AwaySprite.getNewSprite();\n //console.log(\"createAdaptee AwaySprite\");\n newAdaptee.reset();\n //FrameScriptManager.execute_queue();\n return newAdaptee;\n };\n Sprite.prototype.addTimelineChildAtDepth = function (child, depth) {\n child.reset();\n var maxIndex = this.adaptee.numChildren - 1;\n var index = maxIndex + 1;\n var scriptChildsOffset = 0;\n for (var i = maxIndex; i >= 0; i--) {\n var current = this.adaptee.getChildAt(i);\n if (current._avmDepthID == -1) {\n scriptChildsOffset++;\n }\n if (current._avmDepthID > -1) {\n if (current._avmDepthID < depth) {\n index = i + 1 + scriptChildsOffset;\n break;\n }\n scriptChildsOffset = 0;\n index = i;\n }\n }\n child._avmDepthID = depth;\n child.just_added_to_timeline = true;\n this.adaptee._sessionID_childs[child._sessionID] = child;\n return this.adaptee.addChildAt(child, index);\n };\n Sprite.prototype.updateGraphics = function () {\n this._syncGraphics(this._adaptee);\n };\n Sprite.prototype.mapAdaptee = function (adaptee) {\n this._syncGraphics(adaptee);\n return _super.prototype.mapAdaptee.call(this, adaptee);\n };\n /**\n * Keep one AS3 Graphics wrapper per display object and point it at the\n * current AwayJS graphics (timeline graphics swaps, copy-on-write clear).\n */\n Sprite.prototype._syncGraphics = function (adaptee) {\n if (!adaptee)\n return;\n if (this._graphics)\n this._graphics._setAdaptee(adaptee.graphics);\n else\n this._graphics = new this.sec.flash.display.Graphics(adaptee.graphics);\n };\n Sprite.prototype.removeTimelineChildAt = function (value) {\n // in as3 we remove by sessionID\n var child = this.adaptee._sessionID_childs[value];\n if (child) {\n delete this.adaptee._sessionID_childs[value];\n this.adaptee.removeChild(child);\n }\n };\n Sprite.prototype.removeAllTimelineChilds = function () {\n var adaptee = this.adaptee;\n for (var key in adaptee._sessionID_childs) {\n var child = adaptee._sessionID_childs[key];\n if (child) {\n delete adaptee._sessionID_childs[key];\n adaptee.removeChild(child);\n }\n }\n };\n /**\n * queue the mc for executing framescripts\n * this only queues the frame-index as a number,\n * the actual framescripts will be retrieved in MovieClip.executeScripts\n * @param timeline\n * @param frame_idx\n * @param scriptPass1\n */\n Sprite.prototype.queueFrameScripts = function (timeline, frame_idx, scriptPass1) {\n //console.log(\"add framescript\", target_mc, target_mc.name, keyframe_idx, scriptPass1 );\n if (scriptPass1)\n FrameScriptManager.add_script_to_queue(this.adaptee, frame_idx);\n else\n FrameScriptManager.add_script_to_queue_pass2(this.adaptee, frame_idx);\n };\n Sprite.prototype.constructFrame = function (timeline, start_construct_idx, target_keyframe_idx, jump_forward, frame_idx, queue_pass2, queue_script) {\n var adaptee = this.adaptee;\n var len = adaptee.numChildren;\n var virtualSceneGraph = [];\n var existingSessionIDs = {};\n for (var i_1 = 0; i_1 < len; i_1++) {\n // collect the existing children into a virtual-scenegraph\n var child = adaptee.getChildAt(i_1);\n // if jumping forward, we continue from current frame, so we collect all objects\n // if jumping back, we want to only collect script-children. timeline childs are ignored\n if (jump_forward || child._sessionID == -1) {\n virtualSceneGraph[virtualSceneGraph.length] = {\n sessionID: child._sessionID,\n as3DepthID: child._avmDepthID,\n addedOnTargetFrame: false,\n child: child\n };\n }\n if (child._sessionID != -1)\n existingSessionIDs[child._sessionID] = child;\n }\n var i;\n var k;\n // step1: apply remove / add commands to virtual scenegraph. collect update commands aswell\n timeline._update_indices.length = 0;\n timeline._update_frames.length = 0;\n var update_cnt = 0;\n var start_index;\n var end_index;\n for (k = start_construct_idx; k <= target_keyframe_idx; k++) {\n var frame_command_idx = timeline.frame_command_indices[k];\n var frame_recipe = timeline.frame_recipe[k];\n if (frame_recipe & 2) {\n start_index = timeline.command_index_stream[frame_command_idx];\n end_index = start_index + timeline.command_length_stream[frame_command_idx++];\n var removeSessionIDs = {};\n for (i = start_index; i < end_index; i++) {\n removeSessionIDs[timeline.remove_child_stream[i]] = true;\n }\n var newVirtualSceneGraph = [];\n len = virtualSceneGraph.length;\n for (var i_2 = 0; i_2 < len; i_2++) {\n if (!removeSessionIDs[virtualSceneGraph[i_2].sessionID])\n newVirtualSceneGraph[newVirtualSceneGraph.length] = virtualSceneGraph[i_2];\n }\n virtualSceneGraph = newVirtualSceneGraph;\n }\n if (frame_recipe & 4) {\n start_index = timeline.command_index_stream[frame_command_idx];\n end_index = start_index + timeline.command_length_stream[frame_command_idx++];\n for (i = start_index; i < end_index; i++) {\n var maxIndex = virtualSceneGraph.length - 1;\n var depth = timeline.add_child_stream[i * 3 + 1];\n var index = maxIndex + 1;\n var scriptChildsOffset = 0;\n for (var i_3 = maxIndex; i_3 >= 0; i_3--) {\n var current = virtualSceneGraph[i_3];\n if (current.as3DepthID == -1) {\n scriptChildsOffset++;\n }\n if (current.as3DepthID > -1) {\n if (current.as3DepthID == depth &&\n current.sessionID == timeline.add_child_stream[i_3 * 3]) {\n index = -1;\n break;\n }\n if (current.as3DepthID < depth) {\n index = i_3 + 1 + scriptChildsOffset;\n break;\n }\n scriptChildsOffset = 0;\n index = i_3;\n }\n }\n if (index >= virtualSceneGraph.length) {\n virtualSceneGraph[virtualSceneGraph.length] = {\n sessionID: timeline.add_child_stream[i * 3],\n addedOnTargetFrame: k == target_keyframe_idx,\n symbolID: timeline.add_child_stream[i * 3 + 2],\n as3DepthID: timeline.add_child_stream[i * 3 + 1],\n };\n }\n else if (index > -1) {\n virtualSceneGraph.splice(index, 0, {\n sessionID: timeline.add_child_stream[i * 3],\n addedOnTargetFrame: k == target_keyframe_idx,\n symbolID: timeline.add_child_stream[i * 3 + 2],\n as3DepthID: timeline.add_child_stream[i * 3 + 1],\n });\n }\n }\n }\n if (frame_recipe & 8) {\n timeline._update_frames[update_cnt] = timeline.keyframe_firstframes[k];\n timeline._update_indices[update_cnt++] = frame_command_idx++; // execute update command later\n }\n if (frame_recipe & 16 && k == target_keyframe_idx) {\n timeline.start_sounds(adaptee, frame_command_idx);\n }\n }\n var newChildren = [];\n var vsItem;\n var newChilds = [];\n var newChildsOnTargetFrame = [];\n // step2: build new list of children from virtual-scenegraph\n adaptee._sessionID_childs = {};\n len = newChildren.length = virtualSceneGraph.length;\n for (var i_4 = 0; i_4 < len; i_4++) {\n vsItem = virtualSceneGraph[i_4];\n if (vsItem.sessionID == -1 && vsItem.child) {\n // this must be a script child\n newChildren[i_4] = vsItem.child.adaptee;\n }\n else if (existingSessionIDs[vsItem.sessionID]) {\n //\tthe same sessionID already is child of the mc\n var existingChild = existingSessionIDs[vsItem.sessionID];\n adaptee._sessionID_childs[vsItem.sessionID] = existingChild;\n newChildren[i_4] = existingChild;\n //console.log(\"vsItem.exists\", vsItem);\n if (!jump_forward) {\n if (newChildren[i_4]._adapter) {\n if (!newChildren[i_4].adapter.isColorTransformByScript()) {\n newChildren[i_4].transform.clearColorTransform();\n }\n if (!newChildren[i_4].adapter.isBlockedByScript()\n && !newChildren[i_4].noTimelineUpdate) {\n newChildren[i_4].transform.clearMatrix3D();\n newChildren[i_4].timelineMasks = undefined;\n }\n if (!newChildren[i_4].adapter.isVisibilityByScript()) {\n newChildren[i_4].visible = true;\n }\n }\n else {\n newChildren[i_4].transform.clearColorTransform();\n newChildren[i_4].transform.clearMatrix3D();\n newChildren[i_4].visible = true;\n newChildren[i_4].timelineMasks = undefined;\n }\n }\n }\n else {\n var newChild = timeline.getChildInstance(vsItem.symbolID, vsItem.sessionID);\n if (this.adaptee.isSlice9ScaledMC && newChild.assetType == '[asset Sprite]') {\n newChild.isSlice9ScaledSprite = true;\n }\n newChild._sessionID = vsItem.sessionID;\n newChild._avmDepthID = vsItem.as3DepthID;\n adaptee._sessionID_childs[vsItem.sessionID] = newChild;\n newChildren[i_4] = newChild;\n if (vsItem.addedOnTargetFrame) {\n newChildsOnTargetFrame[newChildsOnTargetFrame.length] = newChild;\n }\n else {\n newChilds[newChilds.length] = newChild;\n }\n }\n }\n // step3: remove children that no longer exists\n for (var i_5 = adaptee.numChildren - 1; i_5 >= 0; i_5--) {\n if (newChildren.indexOf(adaptee.getChildAt(i_5)) < 0) {\n adaptee.removeChildAt(i_5);\n }\n }\n // step4: setup new children that have not been added on new frame (prevent frame-scripts)\n for (var i_6 = 0; i_6 < newChildren.length; i_6++)\n if (!adaptee.contains(newChildren[i_6]))\n adaptee.addChildAt(newChildren[i_6], i_6);\n adaptee.preventScript = true;\n this.finalizeChildren(newChilds);\n // step5: queue frame-script for new frame\n if (queue_script)\n this.queueFrameScripts(timeline, frame_idx, !queue_pass2);\n // step6: setup children that have been added on new frame (allow frame-scripts)\n adaptee.preventScript = true;\n this.finalizeChildren(newChildsOnTargetFrame);\n };\n Sprite.prototype.finalizeChildren = function (children) {\n var len = children.length;\n for (var i = 0; i < len; i++) {\n var newChild = children[i];\n newChild.just_added_to_timeline = true;\n newChild.reset();\n }\n };\n //---------------------------stuff added to make it work:\n Sprite.prototype.registerScriptObject = function (child) {\n if (child.adapter == child) {\n release || console.log('warning: child registered for script that has no avms-adapter');\n return;\n }\n if (!child.name) {\n return;\n }\n if (child.name === 'mask') {\n // explicit scripted mask assignment\n this.adaptee.mask = child;\n return;\n }\n this.axSetPublicProperty(child.name, child.adapter);\n if (!this._registeredChildNames) {\n this._registeredChildNames = [child.name];\n }\n else if (this._registeredChildNames.indexOf(child.name) === -1) {\n this._registeredChildNames.push(child.name);\n }\n };\n Sprite.prototype.unregisterScriptObject = function (child) {\n if (this.axGetPublicProperty(child.name) == child.adapter) {\n this.axDeletePublicProperty(child.name);\n if (this._registeredChildNames) {\n this._registeredChildNames.splice(this._registeredChildNames.indexOf(child.name), 1);\n }\n }\n if (child.isAsset(AwayMovieClip))\n child.removeButtonListeners();\n };\n Sprite.prototype.clone = function () {\n var _this = this;\n if (!this._symbol) {\n throw ('_symbol not defined when cloning movieclip');\n }\n var clone = constructClassFromSymbol(this._symbol, this._symbol.symbolClass);\n var adaptee = new AwaySprite();\n this.adaptee.copyTo(adaptee);\n clone.adaptee = adaptee;\n clone._stage = this.activeStage;\n clone.executeConstructor = function () {\n clone.axInitializer();\n _this.constructorHasRun = true;\n };\n clone.adaptee.graphics = this.graphics;\n // in FP, a Sprite seem to always have only 1 frame:\n var timeline = adaptee.timeline;\n if (timeline) {\n var targetTimeline = timeline;\n targetTimeline.frame_command_indices = [timeline.frame_command_indices[0]];\n targetTimeline.frame_recipe = [timeline.frame_recipe[0]];\n targetTimeline.keyframe_constructframes = [timeline.keyframe_constructframes[0]];\n targetTimeline.keyframe_durations = [timeline.keyframe_durations[0]];\n targetTimeline.keyframe_firstframes = [timeline.keyframe_firstframes[0]];\n targetTimeline.keyframe_indices = [timeline.keyframe_indices[0]];\n if (this._registeredChildNames) {\n for (var _i = 0, _a = this._registeredChildNames; _i < _a.length; _i++) {\n var name_1 = _a[_i];\n clone.registerScriptObject(this[name_1]);\n }\n }\n }\n return clone;\n };\n /**\n * @inheritDoc\n */\n Sprite.prototype.dispose = function () {\n this.disposeValues();\n //Sprite._sprites.push(this);\n };\n Object.defineProperty(Sprite.prototype, \"buttonMode\", {\n //---------------------------original as3 properties / methods:\n /**\n * Specifies the button mode of this sprite. If true, this\n * sprite behaves as a button, which means that it triggers the display\n * of the hand cursor when the ponumberer passes over the sprite and can\n * receive a click event if the enter or space keys are pressed\n * when the sprite has focus. You can suppress the display of the hand cursor\n * by setting the useHandCursor property to false,\n * in which case the ponumberer is displayed.\n *\n * Although it is better to use the SimpleButton class to create buttons,\n * you can use the buttonMode property to give a sprite\n * some button-like functionality. To include a sprite in the tab order,\n * set the tabEnabled property (inherited from the\n * numbereractiveObject class and false by default) to\n * true. Additionally, consider whether you want\n * the children of your sprite to be user input enabled. Most buttons\n * do not enable user input numbereractivity for their child objects because\n * it confuses the event flow. To disable user input numbereractivity for all child\n * objects, you must set the mouseChildren property (inherited\n * from the DisplayObjectContainer class) to false.\n * If you use the buttonMode property with the MovieClip class (which is a\n * subclass of the Sprite class), your button might have some added\n * functionality. If you include frames labeled _up, _over, and _down,\n * Flash Player provides automatic state changes (functionality\n * similar to that provided in previous versions of ActionScript for movie\n * clips used as buttons). These automatic state changes are\n * not available for sprites, which have no timeline, and thus no frames\n * to label.\n */\n get: function () {\n return this.adaptee.buttonMode;\n },\n set: function (value) {\n this.adaptee.buttonMode = value;\n },\n enumerable: false,\n configurable: true\n });\n Sprite.prototype.setDropTarget = function (dropTarget) {\n if (dropTarget) {\n this._dropTarget = dropTarget.adapter;\n return;\n }\n this._dropTarget = null;\n };\n Object.defineProperty(Sprite.prototype, \"dropTarget\", {\n /**\n * Specifies the display object over which the sprite is being dragged, or on\n * which the sprite was dropped.\n */\n get: function () {\n return this._dropTarget;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sprite.prototype, \"graphics\", {\n /**\n * Specifies the Graphics object that belongs to this sprite where vector\n * drawing commands can occur.\n */\n get: function () {\n return this._graphics;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sprite.prototype, \"hitArea\", {\n /**\n * Designates another sprite to serve as the hit area for a sprite. If the hitArea\n * property does not exist or the value is null or undefined, the\n * sprite itself is used as the hit area. The value of the hitArea property can\n * be a reference to a Sprite object.\n *\n * You can change the hitArea property at any time; the modified sprite immediately\n * uses the new hit area behavior. The sprite designated as the hit area does not need to be\n * visible; its graphical shape, although not visible,\n * is still detected as the hit area.Note: You must set to false the mouseEnabled\n * property of the sprite designated as the hit area. Otherwise, your sprite button might\n * not work because the sprite designated as the hit area receives the user input events instead\n * of your sprite button.\n */\n get: function () {\n var _a;\n return ((_a = this.adaptee.pickObject) === null || _a === void 0 ? void 0 : _a.adapter) || null;\n },\n set: function (value) {\n this.adaptee.pickObject = value.adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sprite.prototype, \"soundTransform\", {\n /**\n * Controls sound within this sprite.\n *\n * Note: This property does not affect HTML content in an HTMLControl object (in Adobe AIR).\n */\n get: function () {\n //\twe not create this in the constructor, because it gets overwritten from Sound in most cases anyway\n //\tbut we still need a Soundtransform to be available in the getter\n if (!this._soundTransform) {\n this._soundTransform = new this.sec.flash.media.SoundTransform();\n }\n this._soundTransform.volume = this.adaptee.soundVolume;\n return this._soundTransform;\n },\n set: function (value) {\n this.adaptee.soundVolume = value ? value.volume : 1;\n this._soundTransform = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sprite.prototype, \"useHandCursor\", {\n /**\n * A boolean value that indicates whether the ponumbering hand (hand cursor) appears when the ponumberer rolls\n * over a sprite in which the buttonMode property is set to true.\n * The default value of the useHandCursor property is true.\n * If useHandCursor is set to true, the ponumbering hand used for buttons\n * appears when the ponumberer rolls over a button sprite. If useHandCursor is\n * false, the arrow ponumberer is used instead.\n *\n * You can change the useHandCursor property at any time; the modified sprite\n * immediately takes on the new cursor appearance. Note: In Flex or Flash Builder,\n * if your sprite has child sprites, you might want to\n * set the mouseChildren property to false. For example, if you want a hand\n * cursor to appear over a Flex <mx:Label> control, set the useHandCursor and\n * buttonMode properties to true, and the mouseChildren property\n * to false.\n */\n get: function () {\n return this.adaptee._useHandCursor;\n },\n set: function (value) {\n this.adaptee._useHandCursor = value;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Lets the user drag the specified sprite. The sprite remains draggable until explicitly\n * stopped through a call to the Sprite.stopDrag() method, or until\n * another sprite is made draggable. Only one sprite is draggable at a time.\n * Three-dimensional display objects follow the ponumberer and\n * Sprite.startDrag() moves the object within\n * the three-dimensional plane defined by the display object. Or, if the display object is a two-dimensional object\n * and the child of a three-dimensional object, the two-dimensional object\n * moves within the three dimensional plane defined by the three-dimensional parent object.\n * @param\tlockCenter\tSpecifies whether the draggable sprite is locked to the center of\n * the ponumberer position (true), or locked to the ponumber where the user first clicked the\n * sprite (false).\n * @param\tbounds\tValue relative to the coordinates of the Sprite's parent that specify a constranumber\n * rectangle for the Sprite.\n */\n Sprite.prototype.startDrag = function (lockCenter, bounds) {\n if (lockCenter === void 0) { lockCenter = false; }\n if (bounds === void 0) { bounds = null; }\n if (Sprite.currentDraggedMC && Sprite.currentDraggedMC != this) {\n Sprite.currentDraggedMC.stopDrag();\n }\n Sprite.currentDraggedMC = this;\n this._dragBounds = bounds;\n if (!this.isDragging) {\n this.isDragging = true;\n this.lockCenter = lockCenter;\n if (this.adaptee.parent) {\n this._setStartDragMCPosition(this._adaptee.parent);\n }\n if (this._dragBounds)\n this.checkBounds();\n var avmStage = AVMStage.instance();\n var dragNode = avmStage.view.getNode(this.adaptee);\n avmStage.mousePicker.dragNode = dragNode;\n var collision = avmStage.mousePicker.pickGroup.abstractions\n .getAbstraction(dragNode)\n .pickingCollision;\n // collision MUST has rootNode, otherwise will be drag bug\n collision.rootNode = dragNode;\n avmStage.mouseManager.startDragObject(collision);\n avmStage.root.addEventListener(MouseEvent.MOUSE_MOVE, this.dragListenerDelegate);\n }\n };\n Sprite.prototype.checkBounds = function () {\n if (this._adaptee.x < (this._dragBounds.left)) {\n this._adaptee.x = this._dragBounds.left;\n }\n if (this._adaptee.x > (this._dragBounds.right)) {\n this._adaptee.x = (this._dragBounds.right);\n }\n if (this._adaptee.y < this._dragBounds.top) {\n this._adaptee.y = this._dragBounds.top;\n }\n if (this._adaptee.y > (this._dragBounds.bottom)) {\n this._adaptee.y = this._dragBounds.bottom;\n }\n };\n Sprite.prototype.dragListener = function (e) {\n //console.log(\"drag\", e);\n if (this._adaptee.parent) {\n if (!this.startDragMCPosition) {\n this._setStartDragMCPosition(this._adaptee.parent);\n }\n var tmpPoint = AVMStage.instance().view.getNode(this._adaptee.parent).globalToLocal(new Point(this._stage.mouseX, this._stage.mouseY));\n this.adaptee.x = this.startDragMCPosition.x + tmpPoint.x;\n this.adaptee.y = this.startDragMCPosition.y + tmpPoint.y;\n if (this._dragBounds)\n this.checkBounds();\n }\n };\n /**\n * Lets the user drag the specified sprite on a touch-enabled device. The sprite remains draggable until explicitly\n * stopped through a call to the Sprite.stopTouchDrag() method, or until\n * another sprite is made draggable. Only one sprite is draggable at a time.\n * Three-dimensional display objects follow the ponumberer and\n * Sprite.startTouchDrag() moves the object within\n * the three-dimensional plane defined by the display object. Or, if the display object is a two-dimensional object\n * and the child of a three-dimensional object, the two-dimensional object\n * moves within the three dimensional plane defined by the three-dimensional parent object.\n * @param\ttouchPonumberID\tAn numbereger to assign to the touch ponumber.\n * @param\tlockCenter\tSpecifies whether the draggable sprite is locked to the center of\n * the ponumberer position (true), or locked to the ponumber where the user first clicked the\n * sprite (false).\n * @param\tbounds\tValue relative to the coordinates of the Sprite's parent that specify a constranumber\n * rectangle for the Sprite.\n */\n Sprite.prototype.startTouchDrag = function (touchPonumberID, lockCenter, bounds) {\n if (lockCenter === void 0) { lockCenter = false; }\n if (bounds === void 0) { bounds = null; }\n // @todo\n Debug.throwPIR('playerglobals/display/Sprite', 'startTouchDrag', '');\n };\n Sprite.prototype.stopDrag = function (e) {\n if (e === void 0) { e = null; }\n this.startDragMCPosition = null;\n if (Sprite.currentDraggedMC && Sprite.currentDraggedMC != this) {\n Sprite.currentDraggedMC.stopDrag();\n }\n this.isDragging = false;\n Sprite.currentDraggedMC = null;\n var avmStage = AVMStage.instance();\n var dragNode = avmStage.view.getNode(this.adaptee);\n avmStage.mousePicker.dragNode = null;\n avmStage.mouseManager.stopDragObject();\n avmStage.root.removeEventListener(MouseEvent.MOUSE_MOVE, this.dragListenerDelegate);\n };\n /**\n * Ends the startTouchDrag() method, for use with touch-enabled devices. A sprite that was made draggable with the\n * startTouchDrag() method remains draggable until a\n * stopTouchDrag() method is added, or until another\n * sprite becomes draggable. Only one sprite is draggable at a time.\n * @param\ttouchPonumberID\tThe numbereger assigned to the touch ponumber in the startTouchDrag method.\n */\n Sprite.prototype.stopTouchDrag = function (touchPonumberID) {\n // @todo\n Debug.throwPIR('playerglobals/display/Sprite', 'stopTouchDrag', '');\n };\n Sprite.prototype._setStartDragMCPosition = function (parent) {\n var startDragPoint = AVMStage.instance().view.getNode(parent).globalToLocal(new Point(this._stage.mouseX, this._stage.mouseY));\n if (this.lockCenter) {\n this.startDragMCPosition = new Point();\n this._adaptee.x = startDragPoint.x;\n this._adaptee.y = startDragPoint.y;\n }\n else {\n this.startDragMCPosition = new Point(this._adaptee.x - startDragPoint.x, this._adaptee.y - startDragPoint.y);\n }\n };\n Sprite._sprites = new Array();\n return Sprite;\n}(DisplayObjectContainer));\nexport { Sprite };\n","import { __extends } from \"tslib\";\nimport { MovieClip as AwayMovieClip, FrameScriptManager, Timeline } from '@awayjs/scene';\nimport { Sprite } from './Sprite';\nimport { Debug } from '@awayjs/core';\nimport { constructClassFromSymbol } from '@awayfl/avm2';\nimport { Event } from '../events/Event';\n/**\n * The MovieClip class inherits from the following classes: Sprite, DisplayObjectContainer,\n * InteractiveObject, DisplayObject, and EventDispatcher.\n *\n * <p class=\"- topic/p \">Unlike the Sprite object, a MovieClip object has a timeline.</p><p class=\"- topic/p \">>\n * In Flash Professional, the methods for the MovieClip class provide the same functionality\n * as actions that target movie clips. Some additional methods do not have equivalent\n * actions in the Actions toolbox in the Actions panel in the Flash authoring tool. </p>\n * <p class=\"- topic/p \">\n * Children instances placed on the Stage in Flash Professional\n * cannot be accessed by code from within the constructor of a parent instance\n * since they have not been created at that ponumber in code execution.\n * Before accessing the child, the parent must instead either create the child instance\n * by code or delay access to a callback that listens for the child to dispatch\n * its <codeph class=\"+ topic/ph pr-d/codeph \">Event.ADDED_TO_STAGE</codeph> event.\n * </p><p class=\"- topic/p \">\n * If you modify any of the following properties of a MovieClip object that contains a motion tween,\n * the playhead is stopped in that MovieClip object:\n * <codeph class=\"+ topic/ph pr-d/codeph \">alpha</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">blendMode</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">filters</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">height</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">opaqueBackground</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">rotation</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">scaleX</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">scaleY</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">scale9Grid</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">scrollRect</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">transform</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">visible</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">width</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">x</codeph>,\n * or <codeph class=\"+ topic/ph pr-d/codeph \">y</codeph>.\n * However, it does not stop the playhead in any child MovieClip objects of that\n * MovieClip object.</p><p class=\"- topic/p \">\n * <b class=\"+ topic/ph hi-d/b \">Note:</b>Flash Lite 4 supports the MovieClip.opaqueBackground property only if\n * FEATURE_BITMAPCACHE is defined. The default configuration of Flash Lite 4 does not define\n * FEATURE_BITMAPCACHE. To enable the MovieClip.opaqueBackground property for a suitable device,\n * define FEATURE_BITMAPCACHE in your project.</p>*/\nvar MovieClip = /** @class */ (function (_super) {\n __extends(MovieClip, _super);\n /**\n * Creates a new MovieClip instance. After creating the MovieClip, call the\n * addChild() or addChildAt() method of a\n * display object container that is onstage.\n */\n function MovieClip() {\n return _super.call(this) || this;\n }\n // \texecuted directly after a MC has been constructed via Object.create,\n //\tbefre the actual constructors have been run\n MovieClip.prototype.applySymbol = function () { };\n MovieClip.getNewMovieClip = function (adaptee) {\n if (MovieClip._movieClips.length) {\n var movieClip = MovieClip._movieClips.pop();\n movieClip.adaptee = adaptee;\n return movieClip;\n }\n return new MovieClip();\n };\n MovieClip.prototype.executeScript = function (scripts) {\n if (!this._framescripts || !this.allowScript && this.sec.swfVersion > 9) {\n return;\n }\n var script = this._framescripts[this.adaptee.currentFrameIndex];\n if (!script) {\n return;\n }\n this.allowScript = false;\n var prev_script_scope = MovieClip.current_script_scope;\n MovieClip.current_script_scope = this;\n script.axCall(this);\n MovieClip.current_script_scope = prev_script_scope;\n if (this.queuedNavigationAction) {\n // execute any pending FrameNavigation for this mc\n var queuedNavigationAction = this.queuedNavigationAction;\n this.queuedNavigationAction = null;\n queuedNavigationAction();\n }\n };\n MovieClip.prototype.initAdapter = function () { };\n MovieClip.prototype.createAdaptee = function () {\n var adaptee = AwayMovieClip.getNewMovieClip(new Timeline(this.sec.player.factory));\n adaptee.reset();\n //console.log(\"createAdaptee AwayMovieClip\");\n //FrameScriptManager.execute_queue();\n return adaptee;\n };\n MovieClip.prototype.freeFromScript = function () {\n //this.stopAllSounds();\n _super.prototype.freeFromScript.call(this);\n };\n MovieClip.prototype.clone = function () {\n var anyThis = this;\n if (!anyThis._symbol) {\n throw ('_symbol not defined when cloning movieclip');\n }\n var newMC = constructClassFromSymbol(anyThis._symbol, anyThis._symbol.symbolClass);\n var adaptee = new AwayMovieClip(this.adaptee.timeline);\n this.adaptee.copyTo(adaptee);\n newMC.adaptee = adaptee;\n newMC._stage = this.activeStage;\n newMC.executeConstructor = function () {\n //adaptee.timeline.resetScripts();\n newMC.axInitializer();\n newMC.constructorHasRun = true;\n };\n return newMC;\n };\n /**\n * @inheritDoc\n */\n MovieClip.prototype.dispose = function () {\n this.disposeValues();\n //MovieClip._movieClips.push(this);\n };\n Object.defineProperty(MovieClip.prototype, \"currentFrame\", {\n //---------------------------original as3 properties / methods:\n /**\n * Specifies the number of the frame in which the playhead is located in the timeline of\n * the MovieClip instance. If the movie clip has multiple scenes, this value is the\n * frame number in the current scene.\n */\n get: function () {\n var adaptee = this._adaptee;\n return adaptee.currentFrameIndexRelative + 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"currentFrameLabel\", {\n /**\n * The label at the current frame in the timeline of the MovieClip instance.\n * If the current frame has no label, currentLabel is null.\n */\n get: function () {\n return this.adaptee.timeline.getCurrentFrameLabel(this.adaptee);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"currentLabel\", {\n /**\n * The current label in which the playhead is located in the timeline of the MovieClip instance.\n * If the current frame has no label, currentLabel is set to the name of the previous frame\n * that includes a label. If the current frame and previous frames do not include a label,\n * currentLabel returns null.\n */\n get: function () {\n return this.adaptee.timeline.getCurrentLabel(this.adaptee);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"currentLabels\", {\n /**\n * Returns an array of FrameLabel objects from the current scene. If the MovieClip instance does\n * not use scenes, the array includes all frame labels from the entire MovieClip instance.\n */\n get: function () {\n //\tthis is called quite frequently in some games\n //\twe do not 100% support scenes, yet\n //\tas long as we do not have ull scene-support, we can cache the result\n if (this._currentLabels)\n return this._currentLabels;\n var labels = this.adaptee.timeline._labels;\n var keyframe_firstframes = this.adaptee.timeline.keyframe_firstframes;\n this._currentLabels = [];\n for (var key in labels) {\n this._currentLabels.push(new this.sec.flash.display.FrameLabel(labels[key].name, keyframe_firstframes[labels[key].keyFrameIndex] + 1));\n }\n return this._currentLabels;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"currentScene\", {\n /**\n * The current scene in which the playhead is located in the timeline of the MovieClip instance.\n */\n get: function () {\n //todo\n //console.log('currentScene not implemented yet in flash/MovieClip');\n var scene = this.adaptee.currentScene;\n var newLabels = { value: [] };\n for (var i = 0; i < scene.labels.length; i++) {\n newLabels.value.push(new this.sec.flash.display.FrameLabel(scene.labels[i].name, scene.labels[i].frame));\n }\n var as3Scene = new this.sec.flash.display.Scene(scene.name, newLabels, scene.offset, scene.numFrames);\n return as3Scene;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"enabled\", {\n /**\n * A boolean value that indicates whether a movie clip is enabled. The default value of enabled\n * is true. If enabled is set to false, the movie clip's\n * Over, Down, and Up frames are disabled. The movie clip\n * continues to receive events (for example, mouseDown,\n * mouseUp, keyDown, and keyUp).\n *\n * The enabled property governs only the button-like properties of a movie clip. You\n * can change the enabled property at any time; the modified movie clip is immediately\n * enabled or disabled. If enabled is set to false, the object is not\n * included in automatic tab ordering.\n */\n get: function () {\n return this.adaptee.buttonEnabled;\n },\n set: function (value) {\n this.adaptee.buttonEnabled = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"framesLoaded\", {\n /**\n * The number of frames that are loaded from a streaming SWF file. You can use the framesLoaded\n * property to determine whether the contents of a specific frame and all the frames before it\n * loaded and are available locally in the browser. You can also use it to monitor the downloading\n * of large SWF files. For example, you might want to display a message to users indicating that\n * the SWF file is loading until a specified frame in the SWF file finishes loading.\n *\n * If the movie clip contains multiple scenes, the framesLoaded property returns the number\n * of frames loaded for all scenes in the movie clip.\n */\n get: function () {\n return this.totalFrames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"isPlaying\", {\n get: function () {\n return this.adaptee.isPlaying;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"scenes\", {\n /**\n * An array of Scene objects, each listing the name, the number of frames,\n * and the frame labels for a scene in the MovieClip instance.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/MovieClip', 'get scenes', '');\n return [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"totalFrames\", {\n /**\n * The total number of frames in the MovieClip instance.\n *\n * If the movie clip contains multiple frames, the totalFrames property returns\n * the total number of frames in all scenes in the movie clip.\n */\n get: function () {\n return this._adaptee.numFrames;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MovieClip.prototype, \"trackAsMenu\", {\n /**\n * Indicates whether other display objects that are SimpleButton or MovieClip objects can receive\n * mouse release events or other user input release events. The trackAsMenu property lets you create menus. You\n * can set the trackAsMenu property on any SimpleButton or MovieClip object.\n * The default value of the trackAsMenu property is false.\n *\n * You can change the trackAsMenu property at any time; the modified movie\n * clip immediately uses the new behavior.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/MovieClip', 'get trackAsMenu', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/MovieClip', 'set trackAsMenu', '');\n },\n enumerable: false,\n configurable: true\n });\n MovieClip.prototype.addFrameScript = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // arguments are pairs of frameIndex and script/function\n // frameIndex is in range 0..totalFrames-1\n var numArgs = arguments.length;\n if (numArgs & 1) {\n this.sec.throwError('ArgumentError TooFewArgumentsError', numArgs, numArgs + 1);\n }\n //addFrameScript can be called before constructor\n if (!this._framescripts)\n this._framescripts = [];\n var adaptee = this.adaptee;\n var currentFrameScriptChanged = false;\n for (var i = 0; i < numArgs; i += 2) {\n var frameNum = (args[i] | 0);\n var fn = args[i + 1];\n this._framescripts[frameNum] = fn;\n if (frameNum == adaptee.currentFrameIndex)\n currentFrameScriptChanged = true;\n }\n //Navigation may already have consumed this frame's script.\n //Defer the new callback, reusing an exisiting queued visit.\n if (currentFrameScriptChanged && this.constructorHasRun\n && this.sec.swfVersion > 9\n && MovieClip.current_script_scope != this) {\n var script = this._framescripts[adaptee.currentFrameIndex];\n var queue = FrameScriptManager.get_queue();\n if (script && queue.queued_mcs.indexOf(adaptee) < 0\n && queue.queued_mcs_pass2.indexOf(adaptee) < 0) {\n FrameScriptManager.add_script_to_queue_pass2(adaptee, [script]);\n }\n }\n this.constructorHasRun = true;\n };\n /**\n * Starts playing the SWF file at the specified frame. This happens after all\n * remaining actions in the frame have finished executing. To specify a scene\n * as well as a frame, specify a value for the scene parameter.\n * @param\tframe\tA number representing the frame number, or a string representing the label of the\n * frame, to which the playhead is sent. If you specify a number, it is relative to the\n * scene you specify. If you do not specify a scene,\n * the current scene determines the global frame number to play. If you do specify a scene, the playhead\n * jumps to the frame number in the specified scene.\n * @param\tscene\tThe name of the scene to play. This parameter is optional.\n */\n MovieClip.prototype.gotoAndPlay = function (frame, scene, force) {\n if (scene === void 0) { scene = null; }\n if (force === void 0) { force = false; }\n this._gotoInternal(frame, scene, force, false);\n };\n /**\n * Brings the playhead to the specified frame of the movie clip and stops it there. This happens after all\n * remaining actions in the frame have finished executing. If you want to specify a scene in addition to a frame,\n * specify a scene parameter.\n * @param\tframe\tA number representing the frame number, or a string representing the label of the\n * frame, to which the playhead is sent. If you specify a number, it is relative to the\n * scene you specify. If you do not specify a scene, the current scene determines\n * the global frame number at which to go to and stop. If you do specify a scene,\n * the playhead goes to the frame number in the specified scene and stops.\n * @param\tscene\tThe name of the scene. This parameter is optional.\n * @throws\tArgumentError If the scene or frame specified are\n * not found in this movie clip.\n */\n MovieClip.prototype.gotoAndStop = function (frame, scene, force) {\n if (scene === void 0) { scene = null; }\n if (force === void 0) { force = false; }\n this._gotoInternal(frame, scene, force, true);\n };\n MovieClip.prototype._gotoInternal = function (frame, scene, force, stop) {\n var _this = this;\n if (scene === void 0) { scene = null; }\n if (force === void 0) { force = false; }\n if (stop === void 0) { stop = false; }\n if (Number.isNaN(frame))\n return;\n if (!force && MovieClip.current_script_scope == this) {\n this.queuedNavigationAction = function () { return _this._gotoInternal(frame, scene, true, stop); };\n return;\n }\n // in FP for frame==null, we need to stop the mc\n if (frame == null) {\n stop && this.stop();\n return;\n }\n var adaptee = this.adaptee;\n scene = scene || adaptee.currentSceneName;\n if (typeof frame === 'string') {\n if (adaptee.timeline._labels[frame] == null) {\n frame = parseInt(frame);\n if (!isNaN(frame)) {\n adaptee.jumpToIndex(frame - 1, scene);\n if (stop) {\n adaptee.stop();\n }\n else {\n adaptee.play();\n }\n }\n if (stop) {\n //\tfor FP>10 we should throw a error and stop the timeline\n if (this.sec.swfVersion > 10) {\n adaptee.currentFrameIndex = 0;\n }\n this.stop();\n }\n return;\n }\n }\n if (typeof frame === 'number' && frame <= 0) {\n if (MovieClip.current_script_scope == this) {\n return;\n }\n frame = 1;\n }\n if (stop) {\n this.stop();\n }\n else {\n this.play();\n }\n this._gotoFrame(frame, scene);\n };\n MovieClip.prototype._gotoFrame = function (frame, scene) {\n if (scene === void 0) { scene = null; }\n var adaptee = this._adaptee;\n var navigated;\n if (typeof frame === 'string') {\n navigated = adaptee.jumpToLabel(frame);\n }\n else if (typeof frame === 'number' && frame <= 0) {\n console.warn('[playerglobal/MovieClip] - gotoFrame called with invalid frame-index');\n navigated = true;\n }\n else {\n navigated = adaptee.jumpToIndex(frame - 1, scene);\n }\n //only execute scripts if playhead has moved or constructors have yet to run\n if (!navigated) {\n return;\n }\n //console.log(\"_gotoFrame\", this.name);\n FrameScriptManager.execute_as3_constructors_recursiv(this.adaptee);\n FrameScriptManager.execute_as3_constructors_finish_scene(this.activeStage.getChildAt(0).adaptee);\n // this is not true!\n // only in FP10 and above we want to execute scripts immediatly here\n // BUT ONLY ON SUB TIMELINES\n if (this.sec.swfVersion > 9 && this !== MovieClip.current_script_scope) {\n this.dispatchStaticBroadCastEvent(Event.FRAME_CONSTRUCTED);\n FrameScriptManager.execute_queue();\n this.dispatchStaticBroadCastEvent(Event.EXIT_FRAME);\n }\n };\n /**\n * Sends the playhead to the next frame and stops it. This happens after all\n * remaining actions in the frame have finished executing.\n */\n MovieClip.prototype.nextFrame = function (force) {\n var _this = this;\n if (force === void 0) { force = false; }\n if (!force && MovieClip.current_script_scope == this) {\n this.queuedNavigationAction = function () { return _this.nextFrame(true); };\n return;\n }\n this._adaptee.stop();\n ++this._adaptee.currentFrameIndex;\n FrameScriptManager.execute_as3_constructors_recursiv(this.adaptee);\n FrameScriptManager.execute_as3_constructors_finish_scene(this.activeStage.getChildAt(0).adaptee);\n // only in FP10 and above we want to execute scripts immediatly here\n if (this.sec.swfVersion > 9) {\n this.dispatchStaticBroadCastEvent(Event.FRAME_CONSTRUCTED);\n FrameScriptManager.execute_queue();\n this.dispatchStaticBroadCastEvent(Event.EXIT_FRAME);\n }\n };\n /**\n * Moves the playhead to the next scene of the MovieClip instance. This happens after all\n * remaining actions in the frame have finished executing.\n */\n MovieClip.prototype.nextScene = function (force) {\n var _this = this;\n if (force === void 0) { force = false; }\n if (!force && MovieClip.current_script_scope == this) {\n this.queuedNavigationAction = function () { return _this.nextScene(true); };\n return;\n }\n // @todo\n Debug.throwPIR('playerglobals/display/MovieClip', 'nextScene', '');\n };\n /**\n * Moves the playhead in the timeline of the movie clip.\n */\n MovieClip.prototype.play = function () {\n return this._adaptee.play();\n };\n /**\n * Sends the playhead to the previous frame and stops it. This happens after all\n * remaining actions in the frame have finished executing.\n */\n MovieClip.prototype.prevFrame = function (force) {\n var _this = this;\n if (force === void 0) { force = false; }\n if (!force && MovieClip.current_script_scope == this) {\n this.queuedNavigationAction = function () { return _this.prevFrame(true); };\n return;\n }\n var adaptee = this._adaptee;\n if (adaptee.currentFrameIndexRelative > 0) {\n adaptee.currentFrameIndexRelative--;\n }\n FrameScriptManager.execute_as3_constructors_recursiv(this.adaptee);\n FrameScriptManager.execute_as3_constructors_finish_scene(this.activeStage.getChildAt(0).adaptee);\n // only in FP10 and above we want to execute scripts immediatly here\n if (this.sec.swfVersion > 9) {\n this.dispatchStaticBroadCastEvent(Event.FRAME_CONSTRUCTED);\n FrameScriptManager.execute_queue();\n this.dispatchStaticBroadCastEvent(Event.EXIT_FRAME);\n }\n };\n /**\n * Moves the playhead to the previous scene of the MovieClip instance. This happens after all\n * remaining actions in the frame have finished executing.\n */\n MovieClip.prototype.prevScene = function (force) {\n var _this = this;\n if (force === void 0) { force = false; }\n if (!force && MovieClip.current_script_scope == this) {\n this.queuedNavigationAction = function () { return _this.prevScene(true); };\n return;\n }\n // @todo\n Debug.throwPIR('playerglobals/display/MovieClip', 'prevScene', '');\n };\n /**\n * Stops the playhead in the movie clip.\n */\n MovieClip.prototype.stop = function () {\n return this._adaptee.stop();\n };\n MovieClip._movieClips = new Array();\n MovieClip.current_script_scope = null;\n return MovieClip;\n}(Sprite));\nexport { MovieClip };\n","import { __extends } from \"tslib\";\nimport { Billboard, SceneImage2D } from '@awayjs/scene';\nimport { DisplayObject } from './DisplayObject';\nimport { BitmapImage2D } from '@awayjs/stage';\nimport { Debug } from '@awayjs/core';\nimport { MaterialManager } from '@awayjs/graphics';\n/**\n * The Bitmap class represents display objects that represent bitmap images. These can be images\n * that you load with the flash.display.Loader class, or they can be images that you create with\n * the <codeph class=\"+ topic/ph pr-d/codeph \">Bitmap()</codeph> constructor.\n *\n * <p class=\"- topic/p \">The <codeph class=\"+ topic/ph pr-d/codeph \">\n * Bitmap()</codeph> constructor allows you to create a Bitmap object that\n * contains a reference to a BitmapData object. After you create a Bitmap object, use the\n * <codeph class=\"+ topic/ph pr-d/codeph \">addChild()</codeph> or\n * <codeph class=\"+ topic/ph pr-d/codeph \">addChildAt()</codeph> method of the parent DisplayObjectContainer\n * instance to place the bitmap on the display list.</p><p class=\"- topic/p \">\n * A Bitmap object can share its BitmapData reference among several Bitmap objects,\n * independent of translation or rotation properties. Because you can create multiple Bitmap\n * objects that reference the same BitmapData object, multiple display objects can use the\n * same complex BitmapData object without incurring the memory overhead of a BitmapData\n * object for each display object instance.</p><p class=\"- topic/p \">\n * A BitmapData object can be drawn to the screen by a Bitmap object in one of two ways:\n * by using the vector renderer as a fill-bitmap shape, or by using a faster pixel-copying routine.\n * The pixel-copying routine is substantially faster than the vector renderer, but the Bitmap object\n * must meet certain conditions to use it:</p><ul class=\"- topic/ul \">\n * <li class=\"- topic/li \"> No stretching, rotation, or skewing can be applied to the Bitmap object.</li>\n * <li class=\"- topic/li \"> No color transform can be applied to the Bitmap object. </li>\n * <li class=\"- topic/li \"> No blend mode can be applied to the Bitmap object. </li>\n * <li class=\"- topic/li \"> No clipping can be done through mask layers or\n * <codeph class=\"+ topic/ph pr-d/codeph \">setMask()</codeph> methods. </li>\n * <li class=\"- topic/li \"> The image itself cannot be a mask. </li>\n * <li class=\"- topic/li \"> The destination coordinates must be on a whole pixel boundary. </li>\n * </ul><p class=\"- topic/p \">If you load a Bitmap object from a domain other than that of the Loader object used to\n * load the image, and there is no URL policy file that permits access to the domain of\n * the Loader object, then a script in that domain cannot access the Bitmap\n * object or its properties and methods. For more information, see the Flash Player Developer Center Topic:\n * <xref href=\"http://www.adobe.com/go/devnet_security_en\" scope=\"external\" class=\"- topic/xref \">\n * Security</xref>.</p><p class=\"- topic/p \"><b class=\"+ topic/ph hi-d/b \">Note:</b>\n * The Bitmap class is not a subclass of the InteractiveObject class, so\n * it cannot dispatch mouse events. However, you can use the <codeph class=\"+ topic/ph pr-d/codeph \">\n * addEventListener()</codeph> method\n * of the display object container that contains the Bitmap object.</p>\n */\nvar Bitmap = /** @class */ (function (_super) {\n __extends(Bitmap, _super);\n /**\n * Initializes a Bitmap object to refer to the specified BitmapData object.\n * @param\tbitmapData\tThe BitmapData object being referenced.\n * @param\tpixelSnapping\tWhether or not the Bitmap object is snapped to the nearest pixel.\n * @param\tsmoothing\tWhether or not the bitmap is smoothed when scaled. For example, the\n * following examples show the same bitmap scaled by a factor of 3, with\n * smoothing set to false (left) and true (right):\n */\n function Bitmap(bitmapData, pixelSnapping, smoothing) {\n if (bitmapData === void 0) { bitmapData = null; }\n if (pixelSnapping === void 0) { pixelSnapping = 'auto'; }\n if (smoothing === void 0) { smoothing = false; }\n var _this = _super.call(this) || this;\n if (!_this._bitmapData && bitmapData)\n _this.bitmapData = bitmapData;\n _this.pixelSnapping = pixelSnapping;\n _this.smoothing = smoothing;\n return _this;\n }\n Bitmap.getNewBitmap = function (bitmapData, pixelSnapping, smoothing) {\n if (bitmapData === void 0) { bitmapData = null; }\n if (pixelSnapping === void 0) { pixelSnapping = 'auto'; }\n if (smoothing === void 0) { smoothing = false; }\n if (Bitmap._bitmaps.length) {\n var bitmap = Bitmap._bitmaps.pop();\n bitmap.adaptee = Billboard.getNewBillboard(MaterialManager.getMaterialForBitmap(), pixelSnapping, smoothing);\n bitmap.adaptee.style.image = bitmapData.adaptee;\n return bitmap;\n }\n return new Bitmap(bitmapData, pixelSnapping, smoothing);\n };\n Bitmap.prototype.mapAdaptee = function (adaptee) {\n var mappedAdapt = adaptee;\n if (adaptee instanceof BitmapImage2D || adaptee instanceof SceneImage2D) {\n this._adaptee = mappedAdapt = Billboard.getNewBillboard(MaterialManager.getMaterialForBitmap(), 'auto', false);\n this._adaptee.style.image = adaptee;\n var bitmap = new this.sec.flash.display.BitmapData(adaptee);\n this.bitmapData = bitmap;\n this._bitmapMappedFromAsset = true;\n }\n return _super.prototype.mapAdaptee.call(this, mappedAdapt);\n };\n Bitmap.prototype.createAdaptee = function () {\n var newAdaptee = Billboard.getNewBillboard(MaterialManager.getMaterialForBitmap());\n return newAdaptee;\n };\n Bitmap.prototype.clone = function () {\n var newInstance = Bitmap.getNewBitmap(this._bitmapData);\n this._adaptee.copyTo(newInstance.adaptee);\n return newInstance;\n };\n /**\n * @inheritDoc\n */\n Bitmap.prototype.dispose = function () {\n this.disposeValues();\n Bitmap._bitmaps.push(this);\n };\n Bitmap.prototype.disposeValues = function () {\n this.bitmapData = null;\n _super.prototype.disposeValues.call(this);\n };\n Object.defineProperty(Bitmap.prototype, \"bitmapData\", {\n /**\n * The BitmapData object being referenced.\n */\n get: function () {\n return this._bitmapData;\n },\n set: function (value) {\n if (this._bitmapData == value && this._bitmapData && this._bitmapData.adaptee === value.adaptee)\n return;\n if (this._bitmapData)\n this._bitmapData._removeOwner(this);\n this._bitmapData = value;\n if (this._bitmapData)\n this._bitmapData._addOwner(this);\n this.adaptee.style.image = this._bitmapData ? this._bitmapData.adaptee : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Bitmap.prototype, \"pixelSnapping\", {\n /**\n * Controls whether or not the Bitmap object is snapped to the nearest pixel. The PixelSnapping\n * class includes possible values:\n *\n * PixelSnapping.NEVER—No pixel snapping occurs.PixelSnapping.ALWAYS—The image is always snapped to the nearest\n * pixel, independent of transformation.PixelSnapping.AUTO—The image is snapped\n * to the nearest pixel if it is drawn with no rotation\n * or skew and it is drawn at a scale factor of 99.9% to 100.1%. If these conditions are satisfied,\n * the bitmap image is drawn at 100% scale, snapped to the nearest pixel. Internally, this value allows the image\n * to be drawn as fast as possible using the vector renderer.\n */\n get: function () {\n return '';\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/Bitmap', 'set pixelSnapping', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Bitmap.prototype, \"smoothing\", {\n /**\n * Controls whether or not the bitmap is smoothed when scaled. If true, the bitmap is\n * smoothed when scaled. If false, the bitmap is not smoothed when scaled.\n */\n get: function () {\n return this.adaptee.style.sampler.smooth;\n },\n set: function (value) {\n this.adaptee.style.sampler.smooth = value;\n },\n enumerable: false,\n configurable: true\n });\n Bitmap._bitmaps = new Array();\n return Bitmap;\n}(DisplayObject));\nexport { Bitmap };\n","import { __extends } from \"tslib\";\nimport { Debug, Point as APoint } from '@awayjs/core';\nimport { StageManager } from '@awayjs/stage';\nimport { SceneImage2D } from '@awayjs/scene';\nimport { ASObject } from '@awayfl/avm2';\nvar ALER_TABLE = {};\nvar ALERT_ONCE = function (id, message) {\n if (ALER_TABLE[id])\n return;\n console.warn(\"\".concat(id, \":\"), message);\n ALER_TABLE[id] = true;\n};\nvar BitmapData = /** @class */ (function (_super) {\n __extends(BitmapData, _super);\n function BitmapData(width, height, transparent, fillColor) {\n if (transparent === void 0) { transparent = true; }\n if (fillColor === void 0) { fillColor = 0xffffffff; }\n var _this = _super.call(this) || this;\n _this._owners = [];\n if (typeof width === 'number') {\n if (!_this._adaptee) {\n _this._adaptee = SceneImage2D.getImage(width, height, transparent, fillColor, false, StageManager.getInstance().getStageAt(0));\n // we construct a SceneImage2D direct, use weak, that call dispose after garbaging\n _this._adaptee.useWeakRef();\n }\n }\n else {\n _this._adaptee = width;\n }\n _this._adaptee.adapter = _this;\n return _this;\n }\n // for AVM1:\n BitmapData.prototype.compare = function (other) {\n return true;\n };\n Object.defineProperty(BitmapData.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n set: function (value) {\n this._adaptee = value;\n },\n enumerable: false,\n configurable: true\n });\n BitmapData.loadBitmap = function (id) {\n // @todo\n Debug.throwPIR('playerglobals/display/BitmapData', 'loadBitmap', '');\n return null;\n };\n BitmapData.prototype.setPixels = function (rect, inputByteArray) {\n var count = (rect.width | 0) * (rect.height | 0);\n var argb = new Uint8ClampedArray(count * 4);\n // ByteArray holds 32-bit unmultiplied ARGB (readUnsignedInt order).\n for (var i = 0; i < count; i++) {\n var v = inputByteArray.readUnsignedInt() >>> 0;\n var o = i * 4;\n argb[o] = v >>> 24;\n argb[o + 1] = (v >>> 16) & 0xff;\n argb[o + 2] = (v >>> 8) & 0xff;\n argb[o + 3] = v & 0xff;\n }\n this.adaptee.setPixels(rect.adaptee, argb);\n };\n BitmapData.prototype.getPixels = function (rect) {\n // Adaptee returns unmultiplied ARGB bytes - wrap without channel reorder.\n var pixels = this.adaptee.getPixels(rect.adaptee);\n var buffer = pixels.buffer.slice(pixels.byteOffset, pixels.byteOffset + pixels.byteLength);\n var arr = new this.sec.flash.utils.ByteArray();\n // @ts-ignore\n arr.setArrayBuffer(buffer);\n return arr;\n };\n BitmapData.prototype.copyPixelsToByteArray = function (rect, data) {\n // @todo\n Debug.throwPIR('playerglobals/display/BitmapData', 'copyPixelsToByteArray', '');\n };\n BitmapData.prototype.getVector = function (rect) {\n // Adaptee returns unmultiplied ARGB bytes; pack as ARGB uint32s.\n var u8 = this.adaptee.getPixels(rect.adaptee);\n var vector = new this.sec.Uint32Vector(0, true);\n var count = (u8.length / 4) | 0;\n var u32 = new Uint32Array(count);\n for (var i = 0; i < count; i++) {\n var o = i * 4;\n u32[i] = ((u8[o] << 24) | (u8[o + 1] << 16) | (u8[o + 2] << 8) | u8[o + 3]) >>> 0;\n }\n // replace a buffer for avoid coping\n //@ts-ignore\n vector._buffer = u32;\n // remap size\n //@ts-ignore\n vector._length = u32.length;\n return vector;\n };\n BitmapData.prototype.setVector = function (rect, inputVector) {\n var count = (rect.width | 0) * (rect.height | 0);\n var argb = new Uint8ClampedArray(count * 4);\n var src = inputVector._view();\n for (var i = 0; i < count; i++) {\n var v = src[i] >>> 0;\n var o = i * 4;\n argb[o] = v >>> 24;\n argb[o + 1] = (v >>> 16) & 0xff;\n argb[o + 2] = (v >>> 8) & 0xff;\n argb[o + 3] = v & 0xff;\n }\n this.adaptee.setPixels(rect.adaptee, argb);\n };\n BitmapData.prototype.histogram = function (hRect) {\n if (hRect === void 0) { hRect = null; }\n // @todo\n Debug.throwPIR('playerglobals/display/BitmapData', 'histogram', '');\n return;\n };\n BitmapData.prototype.encode = function (rect, compressor, byteArray) {\n if (byteArray === void 0) { byteArray = null; }\n // @todo\n Debug.throwPIR('playerglobals/display/BitmapData', 'encode', '');\n return;\n };\n BitmapData.prototype.drawWithQuality = function (source, matrix, colorTransform, blendMode, clipRect, smoothing, quality) {\n if (matrix === void 0) { matrix = null; }\n if (colorTransform === void 0) { colorTransform = null; }\n if (blendMode === void 0) { blendMode = null; }\n if (clipRect === void 0) { clipRect = null; }\n if (smoothing === void 0) { smoothing = false; }\n if (quality === void 0) { quality = null; }\n this._adaptee.draw(source.adaptee, matrix === null || matrix === void 0 ? void 0 : matrix.adaptee, colorTransform === null || colorTransform === void 0 ? void 0 : colorTransform.adaptee, blendMode, clipRect === null || clipRect === void 0 ? void 0 : clipRect.adaptee, smoothing);\n };\n Object.defineProperty(BitmapData.prototype, \"transparent\", {\n get: function () {\n return this._adaptee.transparent;\n },\n set: function (value) {\n this._adaptee.transparent = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BitmapData.prototype, \"width\", {\n get: function () {\n return this._adaptee.width;\n },\n set: function (value) {\n this._adaptee.width = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BitmapData.prototype, \"height\", {\n get: function () {\n return this._adaptee.height;\n },\n set: function (value) {\n this._adaptee.height = value;\n },\n enumerable: false,\n configurable: true\n });\n BitmapData.prototype.clone = function () {\n var clone = new this.sec.flash.display.BitmapData(this._adaptee.width, this._adaptee.height, this._adaptee.transparent, null);\n // refclone\n if (this._adaptee.copyTo) {\n this._adaptee.copyTo(clone._adaptee);\n }\n else {\n clone.copyPixels(this, this.rect, new this.sec.flash.geom.Point());\n }\n return clone;\n };\n Object.defineProperty(BitmapData.prototype, \"rect\", {\n get: function () {\n return new this.sec.flash.geom.Rectangle(this._adaptee.rect.clone());\n },\n enumerable: false,\n configurable: true\n });\n BitmapData.prototype.getPixel = function (x, y) {\n return this._adaptee.getPixel(x, y);\n };\n BitmapData.prototype.getPixel32 = function (x, y) {\n return this._adaptee.getPixel32(x, y);\n };\n BitmapData.prototype.setPixel = function (x, y, color) {\n this._adaptee.setPixel(x, y, color);\n };\n BitmapData.prototype.setPixel32 = function (x, y, color) {\n this._adaptee.setPixel32(x, y, color);\n };\n BitmapData.prototype.applyFilter = function (sourceBitmap, sourceRect, destPoint, filter) {\n if (this._adaptee.applyFilter(sourceBitmap.adaptee, sourceRect.adaptee, destPoint.adaptee, filter.toAwayObject())) {\n return;\n }\n Debug.throwPIR('playerglobals/display/BitmapData', 'applyFilter', filter.axClassName);\n };\n BitmapData.prototype.colorTransform = function (rect, colorTransform) {\n this._adaptee.colorTransform(rect.adaptee, colorTransform.adaptee);\n };\n BitmapData.prototype.copyChannel = function (sourceBitmap, sourceRect, destPoint, sourceChannel, destChannel) {\n this._adaptee.copyChannel(sourceBitmap.adaptee, sourceRect.adaptee, destPoint.adaptee, sourceChannel, destChannel);\n };\n BitmapData.prototype.copyPixels = function (sourceBitmap, sourceRect, destPoint, alphaBitmapData, alphaPoint, mergeAlpha) {\n if (alphaBitmapData === void 0) { alphaBitmapData = null; }\n if (alphaPoint === void 0) { alphaPoint = null; }\n if (mergeAlpha === void 0) { mergeAlpha = false; }\n this._adaptee.copyPixels(sourceBitmap.adaptee, sourceRect.adaptee, destPoint.adaptee, alphaBitmapData ? alphaBitmapData.adaptee : null, alphaPoint ? alphaPoint.adaptee : null, mergeAlpha);\n };\n BitmapData.prototype.dispose = function () {\n // already disposed or not setted\n if (!this._adaptee)\n return;\n //remove all owners\n this._owners = [];\n if (this._adaptee.canUnload) {\n this._adaptee.dispose();\n }\n this._adaptee = null;\n };\n BitmapData.prototype.draw = function (source, matrix, colorTransform, blendMode, clipRect, smoothing) {\n if (colorTransform === void 0) { colorTransform = null; }\n if (blendMode === void 0) { blendMode = ''; }\n if (clipRect === void 0) { clipRect = null; }\n if (smoothing === void 0) { smoothing = false; }\n this._adaptee.draw(source.adaptee, matrix === null || matrix === void 0 ? void 0 : matrix.adaptee, colorTransform === null || colorTransform === void 0 ? void 0 : colorTransform.adaptee, blendMode, clipRect === null || clipRect === void 0 ? void 0 : clipRect.adaptee, smoothing);\n };\n BitmapData.prototype.fillRect = function (rect, color) {\n // var colorArr = ColorUtils.float32ColorToARGB(color);\n // color = ColorUtils.ARGBtoFloat32(colorArr[0], colorArr[3], colorArr[2], colorArr[1]);\n this._adaptee.fillRect(rect.adaptee, color);\n };\n BitmapData.prototype.floodFill = function (x, y, color) {\n ALERT_ONCE('floodFill:' + this._adaptee.id, 'Unsage implementation!');\n this._adaptee.floodFill(x, y, color);\n };\n BitmapData.prototype.generateFilterRect = function (sourceRect, filter) {\n Debug.throwPIR('playerglobals/display/BitmapData', 'generateFilterRect', '');\n return null;\n };\n BitmapData.prototype.getColorBoundsRect = function (mask, color, findColor) {\n Debug.throwPIR('playerglobals/display/BitmapData', 'getColorBoundsRect', '');\n return new this.sec.flash.geom.Rectangle(this._adaptee.getColorBoundsRect(mask, color, findColor));\n };\n BitmapData.prototype.hitTest = function (firstPoint, firstAlphaThreshold, secondObject, secondBitmapPoint, secondAlphaThreshold) {\n if (secondAlphaThreshold === void 0) { secondAlphaThreshold = 0; }\n Debug.throwPIR('playerglobals/display/BitmapData', 'hitTest', '');\n return this._adaptee.hitTest(firstPoint.adaptee, firstAlphaThreshold, secondObject === null || secondObject === void 0 ? void 0 : secondObject.adaptee, secondBitmapPoint === null || secondBitmapPoint === void 0 ? void 0 : secondBitmapPoint.adaptee, secondAlphaThreshold);\n };\n BitmapData.prototype.lock = function () {\n this._adaptee.lock();\n };\n BitmapData.prototype.merge = function (sourceBitmap, sourceRect, destPoint, redMult, greenMult, blueMult, alphaMult) {\n this._adaptee.merge(sourceBitmap.adaptee, sourceBitmap.rect.adaptee, destPoint.adaptee, redMult, greenMult, blueMult, alphaMult);\n };\n BitmapData.prototype.noise = function (randomSeed, low, high, channelOptions, grayScale) {\n this._adaptee.noise(randomSeed, low, high, channelOptions, grayScale);\n };\n BitmapData.prototype.paletteMap = function (sourceBitmap, sourceRect, destPoint, redArray, greenArray, blueArray, alphaArray) {\n Debug.throwPIR('playerglobals/display/BitmapData', 'paletteMap', '');\n };\n BitmapData.prototype.perlinNoise = function (baseX, baseY, numOctaves, randomSeed, stitch, fractalNoise, channelOptions, grayScale, offsets) {\n if (offsets === void 0) { offsets = null; }\n var map_offsets = offsets ? [] : null;\n if (offsets) {\n var value = offsets.value;\n var len = value.length;\n // this is VERY strange, some games use [1, 1] and then push Point to offsets, map to [x, y, x, y]\n for (var i = 0; i < len; i++) {\n if (typeof value[i] === 'number') {\n map_offsets.push(value[i]);\n }\n else if (typeof value[i].x === 'number') {\n map_offsets.push(value[i].x, value[i].y);\n }\n }\n }\n //@ts-ignore\n this._adaptee.perlinNoise(baseX, baseY, numOctaves, randomSeed, stitch, fractalNoise, channelOptions, grayScale, map_offsets);\n Debug.throwPIR('playerglobals/display/BitmapData', 'perlinNoise', 'Unsafe implementation, results not equal!');\n };\n BitmapData.prototype.pixelDissolve = function (sourceBitmap, sourceRect, destPoint, randomSeed, numberOfPixels, fillColor) {\n Debug.throwPIR('playerglobals/display/BitmapData', 'pixelDissolve', '');\n return 0;\n };\n BitmapData.prototype.scroll = function (x, y) {\n x = x | 0;\n y = y | 0;\n // 0, 0 scroll - is not scroll\n if (!x && !y)\n return;\n this._adaptee.copyPixels(this._adaptee, this._adaptee.rect, new APoint(x, y), null, null, false);\n //console.log('scroll not implemented yet in flash/BitmapData');\n };\n BitmapData.prototype.threshold = function (sourceBitmap, sourceRect, destPoint, operation, threshold, color, mask, copySource) {\n this._adaptee.threshold(sourceBitmap.adaptee, sourceRect.adaptee, destPoint.adaptee, operation, threshold, color, mask, copySource);\n return 0; //number of pixels is not implemented\n };\n BitmapData.prototype.unlock = function () {\n this._adaptee.unlock();\n };\n BitmapData.prototype._addOwner = function (owner) {\n //if (this._owners.indexOf(owner) == -1) this._owners.push(owner);\n };\n BitmapData.prototype._removeOwner = function (owner) {\n // const index: number = this._owners.indexOf(owner);\n // if (index != -1) {\n // \tthis._owners.splice(index, 1);\n // \tif (this._owners.length === 0)\n // \t\tthis._adaptee.clear();\n // }\n };\n return BitmapData;\n}(ASObject));\nexport { BitmapData };\n","import { __extends } from \"tslib\";\nimport { BitmapImage2D } from '@awayjs/stage';\nimport { Timeline, MovieClip, Sprite, Billboard, MorphSprite, FrameScriptManager, } from '@awayjs/scene';\nimport { DefaultSceneGraphFactory } from '@awayjs/scene';\nimport { SceneImage2D } from '@awayjs/scene';\nimport { Bitmap } from '../display/Bitmap';\nimport { BitmapData } from '../display/BitmapData';\nimport { Graphics, MaterialManager } from '@awayjs/graphics';\nimport { Multiname, constructClassFromSymbol, ABCFile, } from '@awayfl/avm2';\nvar FlashSceneGraphFactory = /** @class */ (function (_super) {\n __extends(FlashSceneGraphFactory, _super);\n function FlashSceneGraphFactory(sec, loaderInfo) {\n var _this = _super.call(this) || this;\n _this.imageStore = {};\n _this._sec = sec;\n _this._loaderInfo = loaderInfo;\n return _this;\n }\n Object.defineProperty(FlashSceneGraphFactory.prototype, \"appDomain\", {\n get: function () {\n if (this._loaderInfo) {\n return this._loaderInfo.applicationDomain.axApplicationDomain;\n }\n return this._sec.application;\n },\n enumerable: false,\n configurable: true\n });\n FlashSceneGraphFactory.prototype.executeABCBytes = function (abcBlocks) {\n for (var i = 0; i < abcBlocks.length; i++) {\n var abcBlock = abcBlocks[i];\n var abc = new ABCFile({ app: this.appDomain, url: '' }, abcBlock.data);\n if (abcBlock.flags) {\n // kDoAbcLazyInitializeFlag = 1 Indicates that the ABC block should not be executed\n // immediately.\n this.appDomain.loadABC(abc);\n }\n else {\n // TODO: probably delay execution until playhead reaches the frame.\n this.appDomain.loadAndExecuteABC(abc);\n }\n }\n return null;\n };\n FlashSceneGraphFactory.prototype.createSprite = function (_prefab, graphics, symbol) {\n if (_prefab === void 0) { _prefab = null; }\n if (graphics === void 0) { graphics = null; }\n if (symbol === void 0) { symbol = null; }\n if (!symbol || !this._sec)\n throw ('no symbol provided');\n var symbolClass = null;\n if (symbol.className)\n symbolClass = this.appDomain.getClass(Multiname.FromFQNString(symbol.className, 0 /* NamespaceType.Public */));\n else\n symbolClass = this._sec.flash.display.Sprite.axClass;\n symbol.symbolClass = symbolClass;\n //Graphicsadapter.currentAwayGraphics=graphics;\n // create the root for the root-symbol\n var asObj = constructClassFromSymbol(symbol, symbolClass);\n asObj.adaptee = new Sprite(graphics);\n asObj.adaptee.name = graphics.name;\n // manually call the axInitializer for now:\n //asObj.axInitializer(Sprite.getNewSprite(new this._sec.flash.display.Graphics(graphics).adaptee));\n return asObj.adaptee;\n };\n FlashSceneGraphFactory.prototype.createDisplayObjectContainer = function (_symbol) {\n if (_symbol === void 0) { _symbol = null; }\n return new this._sec.flash.display.DisplayObjectContainer().adaptee;\n };\n FlashSceneGraphFactory.prototype.createBinarySymbol = function (symbol) {\n if (symbol === void 0) { symbol = null; }\n this.appDomain.addBinarySymbol(symbol);\n };\n FlashSceneGraphFactory.prototype.createMovieClip = function (timeline, symbol) {\n if (timeline === void 0) { timeline = null; }\n if (symbol === void 0) { symbol = null; }\n if (!symbol || !this._sec)\n throw ('no symbol provided');\n var symbolClass = null;\n if (symbol.className) {\n symbolClass = this.appDomain.getClass(Multiname.FromFQNString(symbol.className, 0 /* NamespaceType.Public */));\n symbolClass._symbol = symbol;\n }\n else if (symbol.isButton) {\n symbolClass = this._sec.flash.display.SimpleButton.axClass;\n }\n else {\n symbolClass = this._sec.flash.display.MovieClip.axClass;\n }\n //console.log(\"parsed symbolClass\", symbolClass, symbol);\n symbol.symbolClass = symbolClass;\n // create the root for the root-symbol\n var rootSymbolClass = symbol.isButton\n ? this._sec.flash.display.SimpleButton.axClass\n : this._sec.flash.display.MovieClip.axClass;\n var asObj = constructClassFromSymbol(symbol, rootSymbolClass);\n asObj.adaptee = new MovieClip(timeline || new Timeline(this));\n symbol.timeline = asObj.adaptee.timeline;\n //(<MovieClip>asObj.adaptee).timeline.resetScripts();\n //(<any>asObj).axInitializer();\n return asObj.adaptee;\n };\n FlashSceneGraphFactory.prototype.createTextField = function (symbol) {\n if (symbol === void 0) { symbol = null; }\n var symbolClass = null;\n if (symbol.className) {\n symbolClass = this.appDomain.getClass(Multiname.FromFQNString(symbol.className, 0 /* NamespaceType.Public */));\n }\n else {\n symbolClass = this._sec.flash.text.TextField.axClass;\n }\n symbol.symbolClass = symbolClass;\n // create the root for the root-symbol\n var asObj = constructClassFromSymbol(symbol, symbolClass);\n // \tmanually call the axInitializer - this will run the constructor\n //\tcreating new Away-MovieClip and timeline, and registers framescripts on the timeline:\n asObj.axInitializer();\n return asObj.adaptee;\n };\n FlashSceneGraphFactory.prototype.createBillboard = function (material, _symbol) {\n if (_symbol === void 0) { _symbol = null; }\n return new Bitmap(material.style.image.adapter).adaptee;\n };\n FlashSceneGraphFactory.prototype.createImage2D = function (width, height, transparent, fillColor, _powerOfTwo, _symbol) {\n if (transparent === void 0) { transparent = true; }\n if (fillColor === void 0) { fillColor = null; }\n if (_powerOfTwo === void 0) { _powerOfTwo = true; }\n if (_symbol === void 0) { _symbol = null; }\n var image = new BitmapData(width, height, transparent, fillColor).adaptee;\n // drop weak ref for symbols\n image.unuseWeakRef();\n return image;\n };\n FlashSceneGraphFactory.prototype.createFrameScripts = function (_scripts, _frameIdx, _objName, _objID) {\n return _scripts;\n };\n /**\n * Get a instance for a given SymbolID and assign a sessionID to it.\n * This is used by timeline to create children\n *\n * @param symbolID\n * @param sessionID\n */\n FlashSceneGraphFactory.prototype.createChildInstanceForTimeline = function (timeline, symbolID, sessionID) {\n // if this was called we might have new constructors from timeline to process\n FrameScriptManager.invalidAS3Constructors = true;\n var asset = this.awaySymbols[symbolID];\n var clone;\n if (asset.isAsset(Graphics)) {\n clone = Sprite.getNewSprite(asset);\n clone.name = asset.name;\n clone.mouseEnabled = false;\n }\n else if (asset.isAsset(Sprite)) {\n clone = Sprite.getNewSprite(asset.graphics);\n clone.mouseEnabled = false;\n }\n else if (asset.isAsset(MorphSprite)) {\n clone = MorphSprite.getNewMorphSprite(asset.graphics.clone());\n clone.mouseEnabled = false;\n }\n else if (asset.isAsset(BitmapImage2D) || asset.isAsset(SceneImage2D)) {\n clone = Billboard.getNewBillboard(MaterialManager.getMaterialForBitmap());\n clone.mouseEnabled = false;\n clone.style.image = asset;\n }\n else {\n clone = asset.adapter.clone(false).adaptee;\n }\n clone._sessionID = sessionID;\n return clone;\n };\n return FlashSceneGraphFactory;\n}(DefaultSceneGraphFactory));\nexport { FlashSceneGraphFactory };\n","import { __extends } from \"tslib\";\nimport { release, notImplemented } from '@awayfl/swf-loader';\nimport { Event } from './Event';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: TextEvent\nvar TextEvent = /** @class */ (function (_super) {\n __extends(TextEvent, _super);\n function TextEvent(type, bubbles, cancelable, text) {\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._text = text;\n return _this;\n }\n Object.defineProperty(TextEvent.prototype, \"text\", {\n get: function () {\n return this._text;\n },\n set: function (value) {\n this._text = value;\n },\n enumerable: false,\n configurable: true\n });\n TextEvent.prototype.clone = function () {\n var textEvent = new TextEvent(this.type, this.bubbles, this.cancelable, this.text);\n //this.copyNativeData(textEvent);\n return textEvent;\n };\n TextEvent.prototype.toString = function () {\n return this.formatToString('TextEvent', 'type', 'bubbles', 'cancelable', 'text');\n };\n TextEvent.prototype.copyNativeData = function (event) {\n release || notImplemented('public flash.events.TextEvent::copyNativeData');\n };\n TextEvent.classInitializer = null;\n TextEvent.classSymbols = null;\n TextEvent.instanceSymbols = null;\n TextEvent.LINK = 'link';\n TextEvent.TEXT_INPUT = 'textInput';\n return TextEvent;\n}(Event));\nexport { TextEvent };\n","import { __extends } from \"tslib\";\nimport { TextEvent } from './TextEvent';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: ErrorEvent\nvar ErrorEvent = /** @class */ (function (_super) {\n __extends(ErrorEvent, _super);\n function ErrorEvent(type, bubbles, cancelable, text, id) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (text === void 0) { text = ''; }\n if (id === void 0) { id = 0; }\n var _this = _super.call(this, type, bubbles, cancelable, text) || this;\n _this.setID(id);\n return _this;\n }\n ErrorEvent.prototype.setID = function (id) {\n this._id = id;\n };\n Object.defineProperty(ErrorEvent.prototype, \"errorID\", {\n get: function () {\n return this._id;\n },\n enumerable: false,\n configurable: true\n });\n ErrorEvent.prototype.clone = function () {\n return new ErrorEvent(this.type, this.bubbles, this.cancelable, this.text, this.errorID);\n };\n ErrorEvent.prototype.toString = function () {\n return this.formatToString('ErrorEvent', 'type', 'bubbles', 'cancelable', 'text', 'errorID');\n };\n ErrorEvent.classInitializer = null;\n ErrorEvent.classSymbols = null;\n ErrorEvent.instanceSymbols = null;\n // JS -> AS Bindings\n ErrorEvent.ERROR = 'error';\n return ErrorEvent;\n}(TextEvent));\nexport { ErrorEvent };\n","import { __extends } from \"tslib\";\nimport { ErrorEvent } from './ErrorEvent';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: IOErrorEvent\nvar IOErrorEvent = /** @class */ (function (_super) {\n __extends(IOErrorEvent, _super);\n function IOErrorEvent(type, bubbles, cancelable, text, id) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (text === void 0) { text = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, type, bubbles, cancelable, text, id) || this;\n }\n IOErrorEvent.prototype.clone = function () {\n var event = new IOErrorEvent(this.type, this.bubbles, this.cancelable, this.text, this.errorID);\n //this.copyNativeData(event);\n return event;\n };\n IOErrorEvent.prototype.toString = function () {\n return this.formatToString('IOErrorEvent', 'type', 'bubbles', 'cancelable', 'text', 'errorID');\n };\n IOErrorEvent.classInitializer = null;\n IOErrorEvent.classSymbols = null;\n IOErrorEvent.instanceSymbols = null;\n // JS -> AS Bindings\n IOErrorEvent.IO_ERROR = 'ioError';\n IOErrorEvent.NETWORK_ERROR = 'networkError';\n IOErrorEvent.DISK_ERROR = 'diskError';\n IOErrorEvent.VERIFY_ERROR = 'verifyError';\n return IOErrorEvent;\n}(ErrorEvent));\nexport { IOErrorEvent };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { Event } from '../events/Event';\nimport { IOErrorEvent } from '../events/IOErrorEvent';\nimport { AssetLibrary, LoaderContext, WaveAudio, WaveAudioParser, URLRequest as URLRequestAway, AssetEvent, LoaderEvent, URLLoaderEvent } from '@awayjs/core';\n/**\n * Dispatched when data is received as a load operation progresses.\n * @eventType\tflash.events.ProgressEvent.PROGRESS\n [Event(name=\"progress\", type=\"flash.events.Progress [EventEvent\")]\n\n * Dispatched when a load operation starts.\n * @eventType\tflash.events.Event.OPEN\n [Event(name=\"open\", type=\"flash.events. [EventEvent\")]\n\n * Dispatched when an input/output error occurs that causes a load operation to fail.\n * @eventType\tflash.events.IOErrorEvent.IO_ERROR\n [Event(name=\"ioError\", type=\"flash.events.IOError [EventEvent\")]\n\n * Dispatched by a Sound object when ID3 data is available for an MP3 sound.\n * @eventType\tflash.events.Event.ID3\n [Event(name=\"id3\", type=\"flash.events. [EventEvent\")]\n\n * Dispatched when data has loaded successfully.\n * @eventType\tflash.events.Event.COMPLETE\n [Event(name=\"complete\", type=\"flash.events. [EventEvent\")]\n\n * Dispatched when the runtime requests new audio data.\n * @eventType\tflash.events.SampleDataEvent.SAMPLE_DATA\n [Event(name=\"sampleData\", type=\"flash.events.SampleData [EventEvent\")]\n\n * The Sound class lets you work with sound in an application. The Sound class\n * lets you create a Sound object, load and play an external MP3 file into that object,\n * close the sound stream, and access\n * data about the sound, such as information about the number of bytes in the stream and\n * ID3 metadata. More detailed control of the sound is performed through the sound source —\n * the SoundChannel or Microphone object for the sound — and through the properties\n * in the SoundTransform class that control the output of the sound to the computer's speakers.\n *\n * <p class=\"- topic/p \">In Flash Player 10 and later and AIR 1.5 and later, you can also use this\n * class to work with sound that is generated dynamically.\n * In this case, the Sound object uses the function you assign to a\n * <codeph class=\"+ topic/ph pr-d/codeph \">sampleData</codeph> event handler to\n * poll for sound data. The sound is played as it is retrieved from a ByteArray object that\n * you populate with sound data. You can use\n * <codeph class=\"+ topic/ph pr-d/codeph \">Sound.extract()</codeph> to extract sound data from a\n * Sound object,\n * after which you can manipulate it before writing it back to the stream for playback.\n * </p><p class=\"- topic/p \">To control sounds that are embedded in a SWF file,\n * use the properties in the SoundMixer class.</p><p class=\"- topic/p \">\n * <b class=\"+ topic/ph hi-d/b \">Note</b>: The ActionScript 3.0 Sound API differs from ActionScript 2.0.\n * In ActionScript 3.0, you cannot take sound objects and arrange them in a hierarchy\n * to control their properties.</p><p class=\"- topic/p \">\n * When you use this class, consider the following security model:\n * </p><ul class=\"- topic/ul \"><li class=\"- topic/li \">\n * Loading and playing a sound is not allowed if the calling file is in a network sandbox\n * and the sound file to be loaded is local.</li><li class=\"- topic/li \">\n * By default, loading and playing a sound is not allowed if the calling file is local and\n * tries to load and play a remote sound. A user must grant explicit permission to allow this type of access.\n * </li><li class=\"- topic/li \">Certain operations dealing with sound are restricted. The data in a loaded sound cannot\n * be accessed by a file in a different domain unless you implement a cross-domain policy file.\n * Sound-related APIs that fall under this restriction are <codeph class=\"+ topic/ph pr-d/codeph \">Sound.id3</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">SoundMixer.computeSpectrum()</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">SoundMixer.bufferTime</codeph>,\n * and the <codeph class=\"+ topic/ph pr-d/codeph \">SoundTransform</codeph> class.</li></ul>\n * <p class=\"- topic/p \">However, in Adobe AIR, content in the\n * <codeph class=\"+ topic/ph pr-d/codeph \">application</codeph> security sandbox (content\n * installed with the AIR application) are not restricted by these security limitations.</p>\n * <p class=\"- topic/p \">For more information related to security, see the Flash Player Developer Center Topic:\n * <xref href=\"http://www.adobe.com/go/devnet_security_en\" scope=\"external\" class=\"- topic/xref \">Security</xref>.</p>\n */\nvar Sound = /** @class */ (function (_super) {\n __extends(Sound, _super);\n /**\n * Creates a new Sound object. If you pass a valid URLRequest object to the\n * Sound constructor, the constructor automatically calls the load() function\n * for the Sound object.\n * If you do not pass a valid URLRequest object to the Sound constructor,\n * you must call the load() function for the Sound object yourself,\n * or the stream will not load.\n *\n * Once load() is called on a Sound object, you can't later load\n * a different sound file into that Sound object. To load a different sound file,\n * create a new Sound object.\n *\n * In Flash Player 10 and later and AIR 1.5 and later, instead of using load(),\n * you can use the sampleData event handler to load sound dynamically into the Sound object.\n * @param\tstream\tThe URL that points to an external MP3 file.\n * @param\tcontext\tAn optional SoundLoader context object, which can define the buffer time\n * (the minimum number of milliseconds of MP3 data to hold in the Sound object's\n * buffer) and can specify whether the application should check for a cross-domain\n * policy file prior to loading the sound.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n */\n function Sound(stream, context) {\n if (stream === void 0) { stream = null; }\n if (context === void 0) { context = null; }\n var _this = _super.call(this) || this;\n _this._bytesLoaded = 0;\n _this._onAssetCompleteDelegate = function (event) { return _this.onAssetComplete(event); };\n _this._onLoaderCompleteDelegate = function (event) { return _this.onLoaderComplete(event); };\n _this._onLoadErrorDelegate = function (event) { return _this.onLoadError(event); };\n if (stream) {\n _this.loadWaveAudio(stream);\n }\n return _this;\n }\n Sound.prototype.loadWaveAudio = function (stream) {\n this._url = stream.url;\n this._loading = true;\n AssetLibrary.removeEventListener(AssetEvent.ASSET_COMPLETE, this._onAssetCompleteDelegate);\n AssetLibrary.removeEventListener(LoaderEvent.LOADER_COMPLETE, this._onLoaderCompleteDelegate);\n AssetLibrary.removeEventListener(URLLoaderEvent.LOAD_ERROR, this._onLoadErrorDelegate);\n AssetLibrary.addEventListener(AssetEvent.ASSET_COMPLETE, this._onAssetCompleteDelegate);\n AssetLibrary.addEventListener(LoaderEvent.LOADER_COMPLETE, this._onLoaderCompleteDelegate);\n AssetLibrary.addEventListener(URLLoaderEvent.LOAD_ERROR, this._onLoadErrorDelegate);\n AssetLibrary.load(new URLRequestAway(this._url), new LoaderContext(), this._url, new WaveAudioParser());\n };\n Sound.prototype.onAssetComplete = function (event) {\n var asset = event.asset;\n if (asset.isAsset(WaveAudio)) {\n this._adaptee = asset;\n this._loading = false;\n if (this._pendingPlayCommand) {\n this.play(this._pendingPlayCommand.startTime / 1000, this._pendingPlayCommand.loops, this._pendingPlayCommand.sndTransform);\n this._playAfterLoad = false;\n }\n this._pendingPlayCommand = null;\n }\n };\n Sound.prototype.onLoaderComplete = function (event) {\n if (event.url != this._url) {\n return;\n }\n this._loading = false;\n this._bytesLoaded = 1000;\n AssetLibrary.removeEventListener(AssetEvent.ASSET_COMPLETE, this._onAssetCompleteDelegate);\n AssetLibrary.removeEventListener(LoaderEvent.LOADER_COMPLETE, this._onLoaderCompleteDelegate);\n AssetLibrary.removeEventListener(URLLoaderEvent.LOAD_ERROR, this._onLoadErrorDelegate);\n this.dispatchEvent(new this.sec.flash.events.Event(Event.COMPLETE));\n };\n Sound.prototype.onLoadError = function (event) {\n AssetLibrary.removeEventListener(AssetEvent.ASSET_COMPLETE, this._onAssetCompleteDelegate);\n AssetLibrary.removeEventListener(LoaderEvent.LOADER_COMPLETE, this._onLoaderCompleteDelegate);\n AssetLibrary.removeEventListener(URLLoaderEvent.LOAD_ERROR, this._onLoadErrorDelegate);\n console.log('load error in Sound', event);\n this._loading = false;\n this.dispatchEvent(new this.sec.flash.events.IOErrorEvent(IOErrorEvent.ERROR));\n };\n Object.defineProperty(Sound.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n set: function (adaptee) {\n this._adaptee = adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sound.prototype, \"bytesLoaded\", {\n /**\n * Returns the currently available number of bytes in this sound object. This property is\n * usually useful only for externally loaded files.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n */\n get: function () {\n return this._bytesLoaded;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sound.prototype, \"bytesTotal\", {\n /**\n * Returns the total number of bytes in this sound object.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n */\n get: function () {\n return 1000;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sound.prototype, \"id3\", {\n /**\n * Provides access to the metadata that is part of an MP3 file.\n *\n * MP3 sound files can contain ID3 tags, which provide metadata about the\n * file. If an MP3 sound that you load using the Sound.load()\n * method contains ID3 tags, you can query these properties. Only ID3 tags\n * that use the UTF-8 character set are supported.Flash Player 9 and later and AIR support\n * ID3 2.0 tags,\n * specifically 2.3 and 2.4. The following tables list the standard ID3 2.0 tags\n * and the type of content the tags represent. The Sound.id3 property provides\n * access to these tags through the format\n * my_sound.id3.COMM, my_sound.id3.TIME, and so on. The first\n * table describes tags that can be accessed either through the ID3 2.0 property name or\n * the ActionScript property name. The second table describes ID3 tags that are supported but do not have\n * predefined properties in ActionScript. ID3 2.0 tagCorresponding\n * The following table describes ID3 tags that are supported but do not have\n * predefined properties in the Sound class. You access them by calling\n * mySound.id3.TFLT, mySound.id3.TIME, and so on. NOTE: None of\n * these tags are supported in Flash Lite 4.\n * that are in the same security sandbox as the sound file. For files in other sandboxes, there\n * are security checks.When you load the sound, using the load() method of the Sound class, you can\n * specify a context parameter, which is a SoundLoaderContext object. If you set the\n * checkPolicyFile property of the SoundLoaderContext object to true, Flash Player\n * checks for a URL policy file on the server from which the sound is loaded. If a\n * policy file exists and permits access from the domain of the loading SWF file, then the file is allowed\n * to access the id3 property of the Sound object; otherwise it is not.However,\n * in Adobe AIR, content in the application security sandbox (content\n * installed with the AIR application) are not restricted by these security limitations.\n * For more information related to security, see the Flash Player Developer Center Topic:\n * Security.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n get: function () {\n console.log('id3 not implemented yet in flash/Sound');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sound.prototype, \"isBuffering\", {\n /**\n * Returns the buffering state of external MP3 files. If the value is true,\n * any playback is\n * currently suspended while the object waits for more data.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n */\n get: function () {\n console.log('isBuffering not implemented yet in flash/Sound');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sound.prototype, \"isURLInaccessible\", {\n /**\n * Indicates if the Sound.url property has been\n * truncated. When the isURLInaccessible value is true the\n * Sound.url value is only the domain of the final URL from which the sound loaded.\n * For example, the property is truncated if the sound is loaded from http://www.adobe.com/assets/hello.mp3,\n * and the Sound.url property has the value http://www.adobe.com.\n * The isURLInaccessible value is true only when all of the following are also true:\n *\n * An HTTP redirect occurred while loading the sound file.\n * The SWF file calling Sound.load() is from a different domain than\n * the sound file's final URL.The SWF file calling Sound.load() does not have permission to access\n * the sound file. Permission is granted to access the sound file the same way permission is granted\n * for the Sound.id3 property: establish a policy file and use the SoundLoaderContext.checkPolicyFile\n * property.Note: The isURLInaccessible property was added for Flash Player 10.1 and AIR 2.0.\n * However, this property is made available to SWF files of all versions when the\n * Flash runtime supports it. So, using some authoring tools in \"strict mode\" causes a compilation error.\n * To work around the error use the indirect syntax mySound[\"isURLInaccessible\"],\n * or disable strict mode. If you are using Flash Professional CS5\n * or Flex SDK 4.1, you can use and compile this API for runtimes released\n * before Flash Player 10.1 and AIR 2.For application\n * content in AIR, the value of this property is always false.\n * @langversion\t3.0\n * @playerversion\tFlash 10.1\n * @playerversion\tAIR 2\n */\n get: function () {\n console.log('isURLInaccessible not implemented yet in flash/Sound');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sound.prototype, \"length\", {\n /**\n * The length of the current sound in milliseconds.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n get: function () {\n if (!this._adaptee)\n return;\n return this._adaptee.duration * 1000;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sound.prototype, \"url\", {\n /**\n * The URL from which this sound was loaded. This property is applicable only to Sound\n * objects that were loaded using the Sound.load() method. For\n * Sound objects that are associated with a sound asset from a SWF file's library, the\n * value of the url property is null.\n *\n * When you first call Sound.load(), the url property\n * initially has a value of null, because the final URL is not yet known.\n * The url property will have a non-null value as soon as an\n * open event is dispatched from the Sound object.The url property contains the final,\n * absolute URL from which a sound was\n * loaded. The value of url is usually the same as the value passed to the\n * stream parameter of Sound.load().\n * However, if you passed a relative URL to Sound.load()\n * the value of the url property represents the absolute URL.\n * Additionally, if the original URL request is redirected by an HTTP server, the value\n * of the url property reflects the final URL from which the sound file was actually\n * downloaded. This reporting of an absolute, final URL is equivalent to the behavior of\n * LoaderInfo.url.In some cases, the value of the url property is truncated; see the\n * isURLInaccessible property for details.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n */\n get: function () {\n return this._url;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Closes the stream, causing any download of data to cease.\n * No data may be read from the stream after the close()\n * method is called.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n * @throws\tIOError The stream could not be closed, or\n * the stream was not open.\n */\n Sound.prototype.close = function () {\n console.log('close not implemented yet in flash/Sound');\n };\n /**\n * Extracts raw sound data from a Sound object.\n *\n * This method is designed to be used when you are working\n * with dynamically generated audio, using a function you assign\n * to the sampleData event for a different Sound object.\n * That is, you can use this method to extract sound data from a Sound object.\n * Then you can write the data to the byte array that another Sound object is using\n * to stream dynamic audio.The audio data is placed in the target byte\n * array starting from the current position of the byte array.\n * The audio data is always exposed as 44100 Hz Stereo. The sample type is a 32-bit floating-point value,\n * which can be converted to a Number using ByteArray.readFloat().\n * @param\ttarget\tA ByteArray object in which the extracted sound samples are placed.\n * @param\tlength\tThe number of sound samples to extract.\n * A sample contains both the left and right channels — that is, two 32-bit floating-point values.\n * @param\tstartPosition\tThe sample at which extraction begins.\n * If you don't specify a value, the first call to Sound.extract() starts at the beginning\n * of the sound; subsequent calls without a value for startPosition\n * progress sequentially through the file.\n * @return\tThe number of samples written to the ByteArray specified in the target parameter.\n * @langversion\t3.0\n * @playerversion\tFlash 10\n * @playerversion\tAIR 1.5\n * @refpath\n */\n Sound.prototype.extract = function (target, length, startPosition) {\n if (startPosition === void 0) { startPosition = -1; }\n console.log('extract not implemented yet in flash/Sound');\n return 0;\n };\n /**\n * Initiates loading of an external MP3 file from the specified URL. If you provide\n * a valid URLRequest object to the Sound constructor, the constructor calls\n * Sound.load() for you. You only need to call Sound.load()\n * yourself if you\n * don't pass a valid URLRequest object to the Sound constructor or you pass a null\n * value.\n *\n * Once load() is called on a Sound object, you can't later load\n * a different sound file into that Sound object. To load a different sound file,\n * create a new Sound object.When using this method, consider the following security model:Calling Sound.load()\n * is not allowed if the calling file is in the\n * local-with-file-system sandbox and the sound is in a network sandbox.\n * Access from the local-trusted or local-with-networking sandbox requires permission\n * from a website through a URL policy file.You cannot connect to commonly reserved ports.\n * For a complete list of blocked ports, see \"Restricting Networking APIs\" in the\n * ActionScript 3.0 Developer's Guide.You can prevent a SWF file from using this method by setting the\n * allowNetworking parameter of the object and embed\n * tags in the HTML page that contains the SWF content. In Flash Player 10 and later,\n * if you use a multipart Content-Type (for example \"multipart/form-data\")\n * that contains an upload (indicated by a \"filename\" parameter\n * in a \"content-disposition\" header within the POST body),\n * the POST operation is subject to the security rules applied to uploads:\n * The POST operation must be performed in response to a user-initiated action\n * such as a mouse click or key press.If the POST operation is cross-domain\n * (the POST target is not on the same server as the SWF file\n * that is sending the POST request),\n * the target server must provide a URL policy file that permits cross-domain access.\n * Also, for any multipart Content-Type, the syntax must be valid (according to the RFC2046 standards).\n * If the syntax appears to be invalid, the POST operation is subject to the security rules applied to uploads.\n * In Adobe AIR, content in the application security sandbox (content\n * installed with the AIR application) are not restricted by these security limitations.For more\n * information related to security, see the Flash Player Developer Center Topic:\n * Security.\n * @param\tstream\tA URL that points to an external MP3 file.\n * @param\tcontext\tAn optional SoundLoader context object, which can define the buffer time\n * (the minimum number of milliseconds of MP3 data to hold in the Sound object's\n * buffer) and can specify whether the application should check for a cross-domain\n * policy file prior to loading the sound.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n * @throws\tIOError A network error caused the load to fail.\n * @throws\tSecurityError Local untrusted files may not communicate with\n * the Internet. You can work around this by reclassifying this file\n * as local-with-networking or trusted.\n * @throws\tSecurityError You cannot connect to commonly reserved ports.\n * For a complete list of blocked ports, see \"Restricting Networking APIs\" in the\n * ActionScript 3.0 Developer's Guide.\n * @throws\tIOError The digest property of the stream object is not\n * null. You should only set the digest property of a URLRequest object\n * when calling the URLLoader.load() method when loading a SWZ file (an Adobe\n * platform component).\n */\n Sound.prototype.load = function (stream, context) {\n if (context === void 0) { context = null; }\n this.loadWaveAudio(stream);\n };\n Sound.prototype.loadCompressedDataFromByteArray = function (_bytes, _bytesLength) {\n console.log('loadCompressedDataFromByteArray not implemented yet in flash/Sound');\n };\n Sound.prototype.loadPCMFromByteArray = function (_bytes, _samples, _format, _stereo, _sampleRate) {\n if (_format === void 0) { _format = 'float'; }\n if (_stereo === void 0) { _stereo = true; }\n if (_sampleRate === void 0) { _sampleRate = 44100; }\n console.log('loadPCMFromByteArray not implemented yet in flash/Sound');\n };\n /**\n * Generates a new SoundChannel object to play back the sound. This method\n * returns a SoundChannel object, which you access to stop the sound and to monitor volume.\n * (To control the volume, panning, and balance, access the SoundTransform object assigned\n * to the sound channel.)\n * @param\tstartTime\tThe initial position in milliseconds at which playback should\n * start.\n * @param\tloops\tDefines the number of times a sound loops back to the startTime value\n * before the sound channel stops playback.\n * @param\tsndTransform\tThe initial SoundTransform object assigned to the sound channel.\n * @return\tA SoundChannel object, which you use to control the sound.\n * This method returns null if you have no sound card\n * or if you run out of available sound channels. The maximum number of\n * sound channels available at once is 32.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n */\n Sound.prototype.play = function (startTime, loops, sndTransform) {\n if (startTime === void 0) { startTime = 0; }\n if (loops === void 0) { loops = 0; }\n if (sndTransform === void 0) { sndTransform = null; }\n if (!this.adaptee && !this._loading) {\n console.warn('[Sound#play]: no adaptee exists!');\n // return empty SoundChannel to prevent crash when adaptee is not exist\n return new this.sec.flash.media.SoundChannel();\n }\n if (!this.adaptee && this._loading) {\n this._pendingPlayCommand = {\n startTime: startTime,\n loops: loops,\n sndTransform: sndTransform,\n sndChannel: new this.sec.flash.media.SoundChannel()\n };\n return this._pendingPlayCommand.sndChannel;\n }\n startTime = (isNaN(startTime) || startTime < 0) ? 0 : Math.floor(startTime);\n loops = isNaN(loops) ? 0 : loops < 1 ? 1 : Math.floor(loops);\n var channel = this._adaptee.play(startTime / 1000, loops);\n if (!channel) {\n console.debug('[Sound] Sound channel missed, channel pool overflow for:', this._adaptee.id);\n }\n var newSoundChannel = this._pendingPlayCommand ?\n this._pendingPlayCommand.sndChannel :\n new this.sec.flash.media.SoundChannel();\n sndTransform = sndTransform || new this.sec.flash.media.SoundTransform();\n newSoundChannel.init(channel, sndTransform);\n return newSoundChannel;\n };\n /* internal */ Sound.prototype.stopAll = function () {\n this._adaptee.stop();\n };\n return Sound;\n}(EventDispatcher));\nexport { Sound };\n","import { __extends } from \"tslib\";\nimport { SceneImage2D } from '@awayjs/scene';\nimport { MovieClip as AwayMovieClip } from '@awayjs/scene';\nimport { Sound } from '../media/Sound';\nimport { ASObject, Multiname, AXApplicationDomain } from '@awayfl/avm2';\n/**\n * The ApplicationDomain class is a container for discrete groups of class definitions.\n * Application domains are used to partition classes that are in the same security domain.\n * They allow multiple definitions of the same class to exist and allow children to reuse parent\n * definitions.\n *\n * <p class=\"- topic/p \">Application domains are used when an external SWF file is loaded through the Loader class.\n * All ActionScript 3.0 definitions in the loaded SWF file are stored in the application\n * domain, which is specified by the applicationDomain property of the LoaderContext\n * object that you pass as a context parameter of the Loader object's load() or\n * loadBytes() method. The LoaderInfo object also contains an\n * applicationDomain property, which is read-only.\n * All code in a SWF file is defined to exist in an application domain. The current application\n * domain is where your main application runs. The system domain contains all application domains,\n * including the current domain, which means that it contains all Flash Player classes.Every application domain,\n * except the system domain, has an associated parent domain.\n * The parent domain of your main application's application domain is the system domain.\n * Loaded classes are defined only when their parent doesn't already define them.\n * You cannot override a loaded class definition with a newer definition.\n * For usage examples of application domains, see the.\n * The ApplicationDomain() constructor function allows you to create an ApplicationDomain object.</p>\n *\n * @internal\tSecurity considerations for application domains are discussed in the\n * applicationDomain property entries of URLRequest and LoaderInfo.\n */\nvar ApplicationDomain = /** @class */ (function (_super) {\n __extends(ApplicationDomain, _super);\n /**\n * Creates a new application domain.\n * @param\tparentDomain\tIf no parent domain is passed in,\n * this application domain takes the system domain as its parent.\n */\n function ApplicationDomain(parentDomain, isSystemDomain) {\n if (parentDomain === void 0) { parentDomain = null; }\n if (isSystemDomain === void 0) { isSystemDomain = false; }\n var _this = _super.call(this) || this;\n if (!isSystemDomain && parentDomain == null && ApplicationDomain._currentDomain != null) {\n //ApplicationDomain.currentDomain;\n parentDomain = ApplicationDomain.getSystemDomain();\n }\n if (!ApplicationDomain._currentDomain)\n ApplicationDomain._currentDomain = _this;\n _this._parentDomain = parentDomain;\n _this._definitions = {};\n _this._font_definitions = {};\n _this._audio_definitions = {};\n if (isSystemDomain) {\n _this.axApplicationDomain = _this.sec.system;\n }\n else if (!parentDomain) {\n _this.axApplicationDomain = _this.sec.application;\n }\n else {\n _this.axApplicationDomain = new AXApplicationDomain(_this.sec, _this.parentDomain.axApplicationDomain);\n }\n //@ts-ignore\n // store crossref back\n _this.axApplicationDomain.awayApplicationDomain = _this;\n return _this;\n }\n ApplicationDomain.getSystemDomain = function () {\n if (ApplicationDomain._systemDomain == null) {\n if (!ApplicationDomain._currentDomain) {\n return null;\n }\n ApplicationDomain._systemDomain =\n new this._currentDomain.sec.flash.system.ApplicationDomain(null, true);\n }\n return ApplicationDomain._systemDomain;\n };\n Object.defineProperty(ApplicationDomain, \"currentDomain\", {\n /**\n * Gets the current application domain in which your code is executing.\n * @internal\tQuestion: Do you call System.currentDomain? or Loader.currentDomain or request.currentDomain?\n */\n get: function () {\n /*if(ApplicationDomain._systemDomain==null)\n ApplicationDomain._systemDomain=new ApplicationDomain();\n if(ApplicationDomain._currentDomain==null)\n ApplicationDomain._currentDomain=new ApplicationDomain(ApplicationDomain._systemDomain);*/\n return ApplicationDomain._currentDomain;\n },\n set: function (value) {\n ApplicationDomain._currentDomain = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ApplicationDomain.prototype, \"domainMemory\", {\n /**\n * Gets and sets the object on which domain-global memory operations\n * will operate within this ApplicationDomain.\n */\n get: function () {\n console.log('[UNSAFE IMPLEMENTATION!] domainMemory:flash/ApplicationDomain');\n return this._memory;\n },\n set: function (mem) {\n console.log('[UNSAFE IMPLEMENTATION!] domainMemory:flash/ApplicationDomain');\n // Missed types! ByteArray has buffer instead arraybuffer\n if (mem && this._memory && this._memory.buffer !== mem.buffer) {\n this._memoryView = new DataView(mem.buffer);\n }\n this._memory = mem;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ApplicationDomain.prototype, \"internal_memoryView\", {\n /**\n * Internal DataView for using domainMemory in runtime\n */\n get: function () {\n return this._memoryView;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ApplicationDomain, \"MIN_DOMAIN_MEMORY_LENGTH\", {\n /**\n * Gets the minimum memory object length required to be used as\n * ApplicationDomain.domainMemory.\n */\n get: function () {\n console.log('MIN_DOMAIN_MEMORY_LENGTH not implemented yet in flash/ApplicationDomain');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ApplicationDomain.prototype, \"parentDomain\", {\n /**\n * Gets the parent domain of this application domain.\n */\n get: function () {\n return this._parentDomain;\n },\n enumerable: false,\n configurable: true\n });\n ApplicationDomain.prototype.addDefinition = function (name, asset) {\n this._definitions[name] = asset;\n };\n ApplicationDomain.prototype.addAudioDefinition = function (name, asset) {\n this._audio_definitions[name] = asset;\n };\n ApplicationDomain.prototype.addFontDefinition = function (name, asset) {\n this._font_definitions[name] = asset;\n };\n ApplicationDomain.prototype.hasSymbolForClass = function (className) {\n var _a;\n return this._definitions[className] || this._font_definitions[className] || this._audio_definitions[className] || ((_a = this._parentDomain) === null || _a === void 0 ? void 0 : _a.hasSymbolForClass(className));\n };\n ApplicationDomain.prototype.getSymbolAdaptee = function (className) {\n var _a;\n var symbol = this._definitions[className];\n if (symbol) {\n if (symbol.isAsset && symbol.isAsset(SceneImage2D) || !symbol.adapter) {\n return symbol;\n }\n var clone = symbol.adapter.clone();\n if (clone.adaptee.isAsset(AwayMovieClip)) {\n clone.adaptee.currentFrameIndex = 0;\n }\n return clone.adaptee;\n }\n else if (this._font_definitions[className]) {\n return this._font_definitions[className];\n }\n else if (this._audio_definitions[className]) {\n return this._audio_definitions[className];\n }\n return (_a = this._parentDomain) === null || _a === void 0 ? void 0 : _a.getSymbolAdaptee(className);\n };\n ApplicationDomain.prototype.getSymbolDefinition = function (className) {\n var _a;\n var symbol = this._definitions[className];\n if (symbol) {\n if (symbol.isAsset && symbol.isAsset(SceneImage2D)) {\n return symbol;\n }\n var clone = symbol.adapter.clone();\n if (clone.adaptee.isAsset(AwayMovieClip)) {\n clone.adaptee.currentFrameIndex = 0;\n }\n return clone;\n }\n else if (this._font_definitions[className]) {\n return this._font_definitions[className];\n }\n else if (this._audio_definitions[className]) {\n var sound = new Sound();\n sound.adaptee = this._audio_definitions[className];\n //sound.adaptee.adapter=sound;\n return sound;\n }\n return (_a = this._parentDomain) === null || _a === void 0 ? void 0 : _a.getSymbolDefinition(className);\n };\n /**\n * Gets a public definition from the specified application domain.\n * The definition can be that of a class, a namespace, or a function.\n * @param\tname\tThe name of the definition.\n * @return\tThe object associated with the definition.\n * @internal\tthrows SecurityError The definition belongs to a domain to which\n * the calling code does not have access.\n * @throws\tReferenceError No public definition exists with the\n * specified name.\n */\n ApplicationDomain.prototype.getDefinition = function (name) {\n var _a;\n /**\n * @todo Cache a FromSimpleName\n */\n return this.axApplicationDomain.getClass(Multiname.FromSimpleName(name)) || ((_a = this._parentDomain) === null || _a === void 0 ? void 0 : _a.getDefinition(name));\n };\n ApplicationDomain.prototype.getFontDefinition = function (name) {\n var _a;\n return this._font_definitions[name] || ((_a = this._parentDomain) === null || _a === void 0 ? void 0 : _a.getFontDefinition(name));\n };\n ApplicationDomain.prototype.getAwayJSAudio = function (name) {\n var _a;\n return this._audio_definitions[name] || ((_a = this._parentDomain) === null || _a === void 0 ? void 0 : _a.getAwayJSAudio(name));\n };\n ApplicationDomain.prototype.getAudioDefinition = function (name) {\n var _a;\n var sound = new Sound();\n sound.adaptee = this._audio_definitions[name] || ((_a = this._parentDomain) === null || _a === void 0 ? void 0 : _a.getAudioDefinition(name));\n //sound.adaptee.adapter=sound;\n return sound;\n };\n ApplicationDomain.prototype.getQualifiedDefinitionNames = function () {\n var allDefinitionsnames = [];\n for (var key in this._definitions) {\n if (this._definitions.hasOwnProperty(key)) {\n allDefinitionsnames[allDefinitionsnames.length] = key;\n }\n }\n return allDefinitionsnames;\n };\n /**\n * Checks to see if a public definition exists within the specified application domain.\n * The definition can be that of a class, a namespace, or a function.\n * @param\tname\tThe name of the definition.\n * @return\tA value of true if the specified definition exists; otherwise, false.\n */\n ApplicationDomain.prototype.hasDefinition = function (name) {\n // Exception will thrown when definition not exist.\n try {\n // slow, because run lookup\n return !!this.getDefinition(name);\n }\n catch (e) {\n return false;\n }\n };\n ApplicationDomain.prototype.hasFontDefinition = function (name) {\n return this._font_definitions.hasOwnProperty(name);\n };\n ApplicationDomain.prototype.hasAudioDefinition = function (name) {\n return this._audio_definitions.hasOwnProperty(name);\n };\n return ApplicationDomain;\n}(ASObject));\nexport { ApplicationDomain };\n","import { __extends } from \"tslib\";\nimport { ApplicationDomain } from '../system/ApplicationDomain';\nimport { ASObject } from '@awayfl/avm2';\n/**\n * The LoaderContext class provides options for loading SWF files and other\n * media by using the Loader class. The LoaderContext class is used as the\n * `context` parameter in the `load()` and `loadBytes()` methods of the\n * Loader class.\n *\n * When loading SWF files with the `Loader.load()` method, you have two\n * decisions to make: into which security domain the loaded SWF file should\n * be placed, and into which application domain within that security domain?\n * For more details on these choices, see the `applicationDomain` and\n * `securityDomain` properties.\n *\n * When loading a SWF file with the `Loader.loadBytes()` method, you have the\n * same application domain choice to make as for `Loader.load()`, but it's\n * not necessary to specify a security domain, because `Loader.loadBytes()`\n * always places its loaded SWF file into the security domain of the loading\n * SWF file.\n *\n * When loading images (JPEG, GIF, or PNG) instead of SWF files, there is no\n * need to specify a SecurityDomain or an application domain, because those\n * concepts are meaningful only for SWF files. Instead, you have only one\n * decision to make: do you need programmatic access to the pixels of the\n * loaded image? If so, see the `checkPolicyFile` property. If you want to\n * apply deblocking when loading an image, use the JPEGLoaderContext class\n * instead of the LoaderContext class.\n */\nvar LoaderContext = /** @class */ (function (_super) {\n __extends(LoaderContext, _super);\n /**\n * Creates a new LoaderContext object, with the specified settings. For\n * complete details on these settings, see the descriptions of the\n * properties of this class.\n *\n * @param checkPolicyFile Specifies whether a check should be made for\n * the existence of a URL policy file before\n * loading the object.\n * @param applicationDomain Specifies the ApplicationDomain object to use\n * for a Loader object.\n * @param securityDomain Specifies the SecurityDomain object to use\n * for a Loader object.\n * _Note:_ Content in the air application\n * security sandbox cannot load content from\n * other sandboxes into its SecurityDomain.\n */\n function LoaderContext(checkPolicyFile, applicationDomain, securityDomain) {\n if (checkPolicyFile === void 0) { checkPolicyFile = false; }\n if (applicationDomain === void 0) { applicationDomain = null; }\n if (securityDomain === void 0) { securityDomain = null; }\n var _this = _super.call(this) || this;\n var sec = _this.sec;\n _this.checkPolicyFile = checkPolicyFile;\n _this.applicationDomain =\n applicationDomain || new sec.flash.system.ApplicationDomain(ApplicationDomain.currentDomain);\n _this.securityDomain = securityDomain;\n return _this;\n }\n return LoaderContext;\n}(ASObject));\nexport { LoaderContext };\n","import { __extends } from \"tslib\";\nimport { AssetEvent, WaveAudio, URLLoaderEvent, LoaderEvent, Debug } from '@awayjs/core';\nimport { Image2DParser, BitmapImage2D } from '@awayjs/stage';\nimport { Graphics } from '@awayjs/graphics';\nimport { LoaderContainer, Font, MovieClip as AwayMovieClip, Sprite as AwaySprite, TextField as AwayTextField, SceneImage2D, FrameScriptManager } from '@awayjs/scene';\nimport { SWFParser } from '@awayfl/swf-loader';\nimport { Errors } from '@awayfl/avm2';\nimport { FlashSceneGraphFactory } from '../factories/FlashSceneGraphFactory';\nimport { LoaderContext } from '../system/LoaderContext';\nimport { ApplicationDomain } from '../system/ApplicationDomain';\nimport { DisplayObjectContainer } from './DisplayObjectContainer';\nimport { matchRedirect } from '@awayfl/swf-loader';\n/**\n * The Loader class is used to load SWF files or image(JPG, PNG, or GIF)\n * files. Use the `load()` method to initiate loading. The loaded\n * display object is added as a child of the Loader object.\n *\n * Use the URLLoader class to load text or binary data.\n *\n * The Loader class overrides the following methods that it inherits,\n * because a Loader object can only have one child display object - the\n * display object that it loads. Calling the following methods throws an\n * exception: `addChild()`, `addChildAt()`,\n * `removeChild()`, `removeChildAt()`, and\n * `setChildIndex()`. To remove a loaded display object, you must\n * remove the _Loader_ object from its parent DisplayObjectContainer\n * child array.\n *\n * **Note:** The ActionScript 2.0 MovieClipLoader and LoadVars classes\n * are not used in ActionScript 3.0. The Loader and URLLoader classes replace\n * them.\n *\n * When you use the Loader class, consider the Flash Player and Adobe AIR\n * security model:\n *\n * * You can load content from any accessible source.\n * * Loading is not allowed if the calling SWF file is in a network\n * sandbox and the file to be loaded is local.\n * * If the loaded content is a SWF file written with ActionScript 3.0, it\n * cannot be cross-scripted by a SWF file in another security sandbox unless\n * that cross-scripting arrangement was approved through a call to the\n * `System.allowDomain()` or the `System.allowInsecureDomain()` method\n * in the loaded content file.\n * * If the loaded content is an AVM1 SWF file (written using ActionScript\n * 1.0 or 2.0), it cannot be cross-scripted by an AVM2 SWF file(written using\n * ActionScript 3.0). However, you can communicate between the two SWF files\n * by using the LocalConnection class.\n * * If the loaded content is an image, its data cannot be accessed by a\n * SWF file outside of the security sandbox, unless the domain of that SWF\n * file was included in a URL policy file at the origin domain of the\n * image.\n * * Movie clips in the local-with-file-system sandbox cannot script movie\n * clips in the local-with-networking sandbox, and the reverse is also\n * prevented.\n * * You cannot connect to commonly reserved ports. For a complete list of\n * blocked ports, see \"Restricting Networking APIs\" in the _ActionScript 3.0\n * Developer's Guide_.\n *\n * However, in AIR, content in the `application` security\n * sandbox(content installed with the AIR application) are not restricted by\n * these security limitations.\n *\n * For more information related to security, see the Flash Player Developer\n * Center Topic: [Security](http://www.adobe.com/go/devnet_security_en).\n *\n * When loading a SWF file from an untrusted source(such as a domain other\n * than that of the Loader object's root SWF file), you may want to define a\n * mask for the Loader object, to prevent the loaded content(which is a child\n * of the Loader object) from drawing to portions of the Stage outside of that\n * mask, as shown in the following code:\n */\nvar Loader = /** @class */ (function (_super) {\n __extends(Loader, _super);\n /**\n * Creates a Loader object that you can use to load files, such as SWF, JPEG,\n * GIF, or PNG files. Call the `load()` method to load the asset\n * as a child of the Loader instance. You can then add the Loader object to\n * the display list(for instance, by using the `addChild()`\n * method of a DisplayObjectContainer instance). The asset appears on the\n * Stage as it loads.\n *\n * You can also use a Loader instance \"offlist,\" that is without adding it\n * to a display object container on the display list. In this mode, the\n * Loader instance might be used to load a SWF file that contains additional\n * modules of an application.\n *\n * To detect when the SWF file is finished loading, you can use the events\n * of the LoaderInfo object associated with the\n * `contentLoaderInfo` property of the Loader object. At that\n * point, the code in the module SWF file can be executed to initialize and\n * start the module. In the offlist mode, a Loader instance might also be\n * used to load a SWF file that contains components or media assets. Again,\n * you can use the LoaderInfo object event notifications to detect when the\n * components are finished loading. At that point, the application can start\n * using the components and media assets in the library of the SWF file by\n * instantiating the ActionScript 3.0 classes that represent those components\n * and assets.\n *\n * To determine the status of a Loader object, monitor the following\n * events that the LoaderInfo object associated with the\n * `contentLoaderInfo` property of the Loader object:\n *\n * * The `open` event is dispatched when loading begins.\n * * The `ioError` or `securityError` event is\n * dispatched if the file cannot be loaded or if an error occured during the\n * load process.\n * * The `progress` event fires continuously while the file is\n * being loaded.\n * * The `complete` event is dispatched when a file completes\n * downloading, but before the loaded movie clip's methods and properties are\n * available.\n * * The `init` event is dispatched after the properties and\n * methods of the loaded SWF file are accessible, so you can begin\n * manipulating the loaded SWF file. This event is dispatched before the\n * `complete` handler. In streaming SWF files, the\n * `init` event can occur significantly earlier than the\n * `complete` event. For most purposes, use the `init`\n * handler.\n */\n function Loader() {\n var _this = _super.call(this) || this;\n _this._contentLoaderInfo = new _this.sec.flash.display.LoaderInfo(_this, _this.adaptee);\n _this._factory = new FlashSceneGraphFactory(_this.sec, _this._contentLoaderInfo);\n return _this;\n }\n Loader.executeQueue = function () {\n if (!Loader.loaderQueue.length)\n return;\n var queue = Loader.loaderQueue.concat();\n Loader.loaderQueue.length = 0;\n for (var _i = 0, queue_1 = queue; _i < queue_1.length; _i++) {\n var task = queue_1[_i];\n task();\n }\n };\n Object.defineProperty(Loader.prototype, \"contentLoaderInfo\", {\n /**\n * Returns a LoaderInfo object corresponding to the object being loaded.\n * LoaderInfo objects are shared between the Loader object and the loaded\n * content object. The LoaderInfo object supplies loading progress\n * information and statistics about the loaded file.\n *\n * Events related to the load are dispatched by the LoaderInfo object\n * referenced by the `contentLoaderInfo` property of the Loader\n * object. The `contentLoaderInfo` property is set to a valid\n * LoaderInfo object, even before the content is loaded, so that you can add\n * event listeners to the object prior to the load.\n *\n * To detect uncaught errors that happen in a loaded SWF, use the\n * `Loader.uncaughtErrorEvents` property, not the\n * `Loader.contentLoaderInfo.uncaughtErrorEvents` property.\n */\n get: function () {\n return this._contentLoaderInfo;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Loader.prototype, \"content\", {\n /**\n * Contains the root display object of the SWF file or image(JPG, PNG, or\n * GIF) file that was loaded by using the `load()` or\n * `loadBytes()` methods.\n * @throws SecurityError The loaded SWF file or image file belongs to a\n * security sandbox to which you do not have access.\n * For a loaded SWF file, you can avoid this situation\n * by having the file call the\n * `Security.allowDomain()` method or by\n * having the loading file specify a\n * `loaderContext` parameter with its\n * `securityDomain` property set to\n * `SecurityDomain.currentDomain` when you\n * call the `load()` or\n * `loadBytes()` method.\n */\n get: function () {\n return this._content;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Loader.prototype, \"uncaughtErrorEvents\", {\n /**\n * An object that dispatches an uncaughtError event when an unhandled error occurs in\n * the SWF that's loaded by this Loader object. An uncaught error happens when an\n * error is thrown outside of any `try..catch` blocks or when an ErrorEvent object is\n * dispatched with no registered listeners.\n *\n * Note that a Loader object's `uncaughtErrorEvents` property dispatches events that\n * bubble through it, not events that it dispatches directly. It never dispatches an\n * `uncaughtErrorEvent` in the target phase. It only dispatches the event in the\n * capture and bubbling phases. To detect an uncaught error in the current SWF (the\n * SWF in which the Loader object is defined) use the `LoaderInfo.uncaughtErrorEvents`\n * property instead.\n *\n * If the content loaded by the Loader object is an AVM1 (ActionScript 2) SWF file,\n * uncaught errors in the AVM1 SWF file do not result in an `uncaughtError` event.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Loader', 'get uncaughtErrorEvents', '');\n if (!this._uncaughtErrorEvents)\n this._uncaughtErrorEvents = new this.sec.flash.events.UncaughtErrorEvents();\n return this._uncaughtErrorEvents;\n },\n enumerable: false,\n configurable: true\n });\n Loader.prototype.createAdaptee = function () {\n var _this = this;\n this._onAssetCompleteDelegate = function (event) { return _this._onAssetComplete(event); };\n var loaderContainer = new LoaderContainer();\n loaderContainer.addEventListener(AssetEvent.ASSET_COMPLETE, this._onAssetCompleteDelegate);\n return loaderContainer;\n };\n Loader.prototype._onAssetComplete = function (event) {\n // \ttodo: take care of all needed asset-types (sounds / fonts / textfield)\n //\ttodo: update awd to support as3-class-identifier as extra property.\n // atm the name of the exported symbols will be the as3-class name,\n // and all exported symbols are handled as if exposed to as3\n var asset = event.asset;\n asset.adapter.loaderInfo = this._contentLoaderInfo;\n if (asset.isAsset(AwayTextField)) {\n this._contentLoaderInfo.applicationDomain.addDefinition(asset.name, asset);\n }\n else if (asset.isAsset(SceneImage2D) || asset.isAsset(BitmapImage2D)) {\n this._contentLoaderInfo.applicationDomain.addDefinition(asset.name, asset);\n // we should only do this for bitmaps loaded from jpg or png\n if (this._isImage) {\n this._content = new this.sec.flash.display.Bitmap(new this.sec.flash.display.BitmapData(asset));\n this._adaptee.addChild(this._content.adaptee);\n }\n //this.addChild(this._loaderInfo.content = new Bitmap(<BitmapData> (<SceneImage2D> asset).adapter));\n }\n else if (asset.isAsset(WaveAudio)) {\n this._contentLoaderInfo.applicationDomain.addAudioDefinition(asset.name, asset);\n }\n else if (asset.isAsset(Font)) {\n this._contentLoaderInfo.applicationDomain.addFontDefinition(asset.name, asset);\n }\n else if (asset.isAsset(AwaySprite)) {\n //if((<AwaySprite> asset).material)\n //\t(<AwaySprite> asset).material.bothSides=false;\n this._contentLoaderInfo.applicationDomain.addDefinition(asset.name, asset);\n }\n else if (asset.isAsset(AwayMovieClip)) {\n this._contentLoaderInfo.applicationDomain.addDefinition(asset.name, asset);\n // if this is the \"Scene 1\", we make it a child of the loader\n // \"Scene 1\" when AWDParser, isAVMScene when using SWFParser\n if (asset.name == 'Scene 1' || asset.isAVMScene) {\n this._content = asset.adapter.clone();\n this._content.loaderInfo = this._contentLoaderInfo;\n this._content.adaptee.reset();\n FrameScriptManager.invalidAS3Constructors = true;\n _super.prototype.addChild.call(this, this._content);\n FrameScriptManager.execute_as3_constructors_recursiv(this._content.adaptee);\n //this.addChild(this._loaderInfo.content = (<MovieClip>(<AwayMovieClip>asset).adapter));\n }\n }\n else if (asset.isAsset(Graphics)) {\n // supress lint\n }\n else {\n console.log('loaded unhandled asset-type:', asset.name);\n }\n };\n Loader.prototype.addChild = function (child) {\n this.sec.throwError('IllegalOperationError', Errors.InvalidLoaderMethodError);\n return null;\n };\n Loader.prototype.addChildAt = function (child, index) {\n this.sec.throwError('IllegalOperationError', Errors.InvalidLoaderMethodError);\n return null;\n };\n Loader.prototype.removeChild = function (child) {\n this.sec.throwError('IllegalOperationError', Errors.InvalidLoaderMethodError);\n return null;\n };\n Loader.prototype.removeChildAt = function (index) {\n this.sec.throwError('IllegalOperationError', Errors.InvalidLoaderMethodError);\n return null;\n };\n Loader.prototype.setChildIndex = function (child, index) {\n this.sec.throwError('IllegalOperationError', Errors.InvalidLoaderMethodError);\n };\n /**\n * Cancels a <code>load()</code> method operation that is currently in\n * progress for the Loader instance.\n *\n */\n Loader.prototype.close = function () {\n this.adaptee.close();\n };\n /**\n * Loads a SWF, JPEG, progressive JPEG, unanimated GIF, or PNG file into an\n * object that is a child of this Loader object. If you load an animated GIF\n * file, only the first frame is displayed. As the Loader object can contain\n * only a single child, issuing a subsequent `load()` request\n * terminates the previous request, if still pending, and commences a new\n * load.\n *\n * **Note**: In AIR 1.5 and Flash Player 10, the maximum size for a\n * loaded image is 8,191 pixels in width or height, and the total number of\n * pixels cannot exceed 16,777,215 pixels.(So, if an loaded image is 8,191\n * pixels wide, it can only be 2,048 pixels high.) In Flash Player 9 and\n * earlier and AIR 1.1 and earlier, the limitation is 2,880 pixels in height\n * and 2,880 pixels in width.\n *\n * A SWF file or image loaded into a Loader object inherits the position,\n * rotation, and scale properties of the parent display objects of the Loader\n * object.\n *\n * Use the `unload()` method to remove movies or images loaded\n * with this method, or to cancel a load operation that is in progress.\n *\n * You can prevent a SWF file from using this method by setting the\n * `allowNetworking` parameter of the the `object` and\n * `embed` tags in the HTML page that contains the SWF\n * content.\n *\n * When you use this method, consider the Flash Player security model,\n * which is described in the Loader class description.\n *\n * In Flash Player 10 and later, if you use a multipart Content-Type(for\n * example \"multipart/form-data\") that contains an upload(indicated by a\n * \"filename\" parameter in a \"content-disposition\" header within the POST\n * body), the POST operation is subject to the security rules applied to\n * uploads:\n *\n * * The POST operation must be performed in response to a user-initiated\n * action, such as a mouse click or key press.\n * * If the POST operation is cross-domain(the POST target is not on the\n * same server as the SWF file that is sending the POST request), the target\n * server must provide a URL policy file that permits cross-domain\n * access.\n *\n * Also, for any multipart Content-Type, the syntax must be valid\n * (according to the RFC2046 standard). If the syntax appears to be invalid,\n * the POST operation is subject to the security rules applied to\n * uploads.\n *\n * For more information related to security, see the Flash Player\n * Developer Center Topic: [Security](http://www.adobe.com/go/devnet_security_en).\n *\n * @param request The absolute or relative URL of the SWF, JPEG, GIF, or PNG\n * file to be loaded. A relative path must be relative to the\n * main SWF file. Absolute URLs must include the protocol\n * reference, such as http:// or file:///. Filenames cannot\n * include disk drive specifications.\n * @param context A LoaderContext object, which has properties that define\n * the following:\n *\n * * Whether or not to check for the existence of a policy\n * file upon loading the object\n * * The ApplicationDomain for the loaded object\n * * The SecurityDomain for the loaded object\n * * The ImageDecodingPolicy for the loaded image\n * object\n *\n * If the `context` parameter is not specified\n * or refers to a null object, the loaded content remains in\n * its own security domain.\n *\n * For complete details, see the description of the\n * properties in the [LoaderContext](../system/LoaderContext.html)\n * class.\n * @throws IOError The `digest` property of the\n * `request` object is not\n * `null`. You should only set the\n * `digest` property of a URLRequest\n * object when calling the\n * `URLLoader.load()` method when\n * loading a SWZ file(an Adobe platform\n * component).\n * @throws IllegalOperationError If the `requestedContentParent`\n * property of the `context`\n * parameter is a `Loader`.\n * @throws IllegalOperationError If the `LoaderContext.parameters`\n * parameter is set to non-null and has some\n * values which are not Strings.\n * @throws SecurityError The value of\n * `LoaderContext.securityDomain`\n * must be either `null` or\n * `SecurityDomain.currentDomain`.\n * This reflects the fact that you can only\n * place the loaded media in its natural\n * security sandbox or your own(the latter\n * requires a policy file).\n * @throws SecurityError Local SWF files may not set\n * LoaderContext.securityDomain to anything\n * other than `null`. It is not\n * permitted to import non-local media into a\n * local sandbox, or to place other local media\n * in anything other than its natural sandbox.\n * @throws SecurityError You cannot connect to commonly reserved\n * ports. For a complete list of blocked ports,\n * see \"Restricting Networking APIs\" in the\n * _ActionScript 3.0 Developer's Guide_.\n * @throws SecurityError If the `applicationDomain` or\n * `securityDomain` properties of\n * the `context` parameter are from\n * a disallowed domain.\n * @throws SecurityError If a local SWF file is attempting to use the\n * `securityDomain` property of the\n * `context` parameter.\n * @event asyncError Dispatched by the `contentLoaderInfo`\n * object if the\n * `LoaderContext.requestedContentParent`\n * property has been specified and it is not possible to\n * add the loaded content as a child to the specified\n * DisplayObjectContainer. This could happen if the\n * loaded content is a\n * `flash.display.AVM1Movie` or if the\n * `addChild()` call to the\n * requestedContentParent throws an error.\n * @event complete Dispatched by the `contentLoaderInfo`\n * object when the file has completed loading. The\n * `complete` event is always dispatched\n * after the `init` event.\n * @event httpStatus Dispatched by the `contentLoaderInfo`\n * object when a network request is made over HTTP and\n * Flash Player can detect the HTTP status code.\n * @event init Dispatched by the `contentLoaderInfo`\n * object when the properties and methods of the loaded\n * SWF file are accessible. The `init` event\n * always precedes the `complete` event.\n * @event ioError Dispatched by the `contentLoaderInfo`\n * object when an input or output error occurs that\n * causes a load operation to fail.\n * @event open Dispatched by the `contentLoaderInfo`\n * object when the loading operation starts.\n * @event progress Dispatched by the `contentLoaderInfo`\n * object as data is received while load operation\n * progresses.\n * @event securityError Dispatched by the `contentLoaderInfo`\n * object if a SWF file in the local-with-filesystem\n * sandbox attempts to load content in the\n * local-with-networking sandbox, or vice versa.\n * @event securityError Dispatched by the `contentLoaderInfo`\n * object if the\n * `LoaderContext.requestedContentParent`\n * property has been specified and the security sandbox\n * of the\n * `LoaderContext.requestedContentParent`\n * does not have access to the loaded SWF.\n * @event unload Dispatched by the `contentLoaderInfo`\n * object when a loaded object is removed.\n */\n Loader.prototype.load = function (request, context) {\n var _this = this;\n if (context === void 0) { context = null; }\n // when you create big lambda or `fuction() {}`, V8 create full function body every time\n Loader.loaderQueue.push(function () {\n _this._delayedLoad(request, context);\n });\n };\n Loader.prototype._delayedLoad = function (request, context) {\n var _this = this;\n if (context === void 0) { context = null; }\n // remove all after ?\n var directUrl = request.url || '';\n var cleanUrl = directUrl.replace(/\\?.*$/, '');\n var redirect = matchRedirect(directUrl, Loader.redirectRules);\n if (redirect) {\n if (redirect.supressLoad) {\n console.log('[LOADER] Load surpressed ', redirect.url);\n return;\n }\n console.log('[LOADER] Override loading url:', redirect.url);\n request.adaptee.url = redirect.url;\n }\n else {\n console.log('[LOADER] start loading the url:', cleanUrl);\n }\n var ext = cleanUrl.substr(-3).toLowerCase();\n this._isImage = (ext == 'jpg' || ext == 'png' /*|| ext == 'gif'*/);\n if (ext === 'gif') {\n console.warn('[Loader] Unsupported file type:', ext, cleanUrl);\n return;\n }\n //url.url=url.url.replace(\".swf\", \".awd\");\n this._loaderContext = context || new LoaderContext(false, ApplicationDomain.currentDomain);\n this._contentLoaderInfo._setApplicationDomain(this._loaderContext.applicationDomain);\n this._adaptee.load(request.adaptee, null, null, (this._isImage)\n ? new Image2DParser(this._factory)\n : new SWFParser(this._factory));\n if (redirect && redirect.supressErrors) {\n this.adaptee.addEventListener(URLLoaderEvent.LOAD_ERROR, function (event) {\n console.log('[LOADER] Error supressed by redirect rule as empty complete events!', event);\n _this._contentLoaderInfo._onLoaderCompleteDelegate(new LoaderEvent(LoaderEvent.LOADER_COMPLETE, event.urlLoader.url, null));\n });\n }\n };\n /**\n * Loads from binary data stored in a ByteArray object.\n *\n * The `loadBytes()` method is asynchronous. You must wait for\n * the \"init\" event before accessing the properties of a loaded object.\n *\n * When you use this method, consider the Flash Player security model,\n * which is described in the Loader class description.\n *\n * @param bytes A ByteArray object. The contents of the ByteArray can be\n * any of the file formats supported by the Loader class: SWF,\n * GIF, JPEG, or PNG.\n * @param context A LoaderContext object. Only the\n * `applicationDomain` property of the\n * LoaderContext object applies; the\n * `checkPolicyFile` and\n * `securityDomain` properties of the LoaderContext\n * object do not apply.\n *\n * If the `context` parameter is not specified\n * or refers to a null object, the content is loaded into the\n * current security domain - a process referred to as \"import\n * loading\" in Flash Player security documentation.\n * Specifically, if the loading SWF file trusts the remote SWF\n * by incorporating the remote SWF into its code, then the\n * loading SWF can import it directly into its own security\n * domain.\n *\n * For more information related to security, see the Flash\n * Player Developer Center Topic: [Security](http://www.adobe.com/go/devnet_security_en).\n * @throws ArgumentError If the `length` property of the\n * ByteArray object is not greater than 0.\n * @throws IllegalOperationError If the `checkPolicyFile` or\n * `securityDomain` property of the\n * `context` parameter are non-null.\n * @throws IllegalOperationError If the `requestedContentParent`\n * property of the `context`\n * parameter is a `Loader`.\n * @throws IllegalOperationError If the `LoaderContext.parameters`\n * parameter is set to non-null and has some\n * values which are not Strings.\n * @throws SecurityError If the provided\n * `applicationDomain` property of\n * the `context` property is from a\n * disallowed domain.\n * @throws SecurityError You cannot connect to commonly reserved\n * ports. For a complete list of blocked ports,\n * see \"Restricting Networking APIs\" in the\n * _ActionScript 3.0 Developer's Guide_.\n * @event asyncError Dispatched by the `contentLoaderInfo`\n * object if the\n * `LoaderContext.requestedContentParent`\n * property has been specified and it is not possible to\n * add the loaded content as a child to the specified\n * DisplayObjectContainer. This could happen if the\n * loaded content is a\n * `flash.display.AVM1Movie` or if the\n * `addChild()` call to the\n * requestedContentParent throws an error.\n * @event complete Dispatched by the `contentLoaderInfo`\n * object when the operation is complete. The\n * `complete` event is always dispatched\n * after the `init` event.\n * @event init Dispatched by the `contentLoaderInfo`\n * object when the properties and methods of the loaded\n * data are accessible. The `init` event\n * always precedes the `complete` event.\n * @event ioError Dispatched by the `contentLoaderInfo`\n * object when the runtime cannot parse the data in the\n * byte array.\n * @event open Dispatched by the `contentLoaderInfo`\n * object when the operation starts.\n * @event progress Dispatched by the `contentLoaderInfo`\n * object as data is transfered in memory.\n * @event securityError Dispatched by the `contentLoaderInfo`\n * object if the\n * `LoaderContext.requestedContentParent`\n * property has been specified and the security sandbox\n * of the\n * `LoaderContext.requestedContentParent`\n * does not have access to the loaded SWF.\n * @event unload Dispatched by the `contentLoaderInfo`\n * object when a loaded object is removed.\n */\n Loader.prototype.loadBytes = function (bytes, context) {\n var _this = this;\n if (context === void 0) { context = null; }\n if (!bytes) {\n console.warn('[Loader] Bytes byffer is `undefined`');\n return;\n }\n var u8 = bytes.bytes;\n if (u8[0] === 0 && u8[1] === 0 && u8[2] === 0) {\n console.warn('[Loader] Bytes buffer has empty magic number!');\n return;\n }\n Loader.loaderQueue.push(function () {\n // 80pro: todo\n //this._isImage = (ext == \"jpg\" || ext == \"png\");\n _this._loaderContext = context || new LoaderContext(false, ApplicationDomain.currentDomain);\n _this._contentLoaderInfo._setApplicationDomain(_this._loaderContext.applicationDomain);\n _this._contentLoaderInfo.source = bytes;\n _this._adaptee.loadData(u8, null, null, new SWFParser(_this._factory));\n /*\n this.adaptee.addEventListener(URLLoaderEvent.LOAD_ERROR, (event: URLLoaderEvent)=>{\n console.log(\"[LOADER] Error supressed by redirect rule as empty complete events!\", event);\n this._contentLoaderInfo._onLoaderCompleteDelegate(\n new LoaderEvent(LoaderEvent.LOADER_COMPLETE, event.urlLoader.url,null));\n })\n */\n /*\n // TODO: properly coerce object arguments to their types.\n var loaderClass = Loader.axClass;\n // In case this is the initial root loader, we won't have a loaderInfo object. That should\n // only happen in the inspector when a file is loaded from a Blob, though.\n this._contentLoaderInfo._url = (this.loaderInfo ? this.loaderInfo._url : '') +\n '/[[DYNAMIC]]/' + (++loaderClass._embeddedContentLoadCount);\n this._applyLoaderContext(context);\n this._loadingType = LoadingType.Bytes;\n this._fileLoader = new FileLoader(this, this._contentLoaderInfo);\n this._queuedLoadUpdate = null;\n if (!release && traceLoaderOption.value) {\n console.log(\"Loading embedded symbol \" + this._contentLoaderInfo._url);\n }\n // Just passing in the bytes won't do, because the buffer can contain slop at the end.\n this._fileLoader.loadBytes(new Uint8Array((<any>data).bytes, 0, data.length));\n\n release || assert(loaderClass._loadQueue.indexOf(this) === -1);\n loaderClass._loadQueue.push(this);\n */\n });\n };\n /**\n * Removes a child of this Loader object that was loaded by using the\n * `load()` method. The `property` of the associated\n * LoaderInfo object is reset to `null`. The child is not\n * necessarily destroyed because other objects might have references to it;\n * however, it is no longer a child of the Loader object.\n *\n * As a best practice, before you unload a child SWF file, you should\n * explicitly close any streams in the child SWF file's objects, such as\n * LocalConnection, NetConnection, NetStream, and Sound objects. Otherwise,\n * audio in the child SWF file might continue to play, even though the child\n * SWF file was unloaded. To close streams in the child SWF file, add an\n * event listener to the child that listens for the `unload`\n * event. When the parent calls `Loader.unload()`, the\n * `unload` event is dispatched to the child. The following code\n * shows how you might do this:\n *\n * ```\n * function closeAllStreams(evt:Event) {\n * \tmyNetStream.close();\n * \tmySound.close();\n * \tmyNetConnection.close();\n * \tmyLocalConnection.close();\n * }\n * myMovieClip.loaderInfo.addEventListener(Event.UNLOAD,\n * closeAllStreams);\n * ```\n */\n Loader.prototype.unload = function () {\n this._unload(false, false);\n };\n /**\n * Attempts to unload child SWF file contents and stops the execution of\n * commands from loaded SWF files. This method attempts to unload SWF files\n * that were loaded using `Loader.load()` or\n * `Loader.loadBytes()` by removing references to EventDispatcher,\n * NetConnection, Timer, Sound, or Video objects of the child SWF file. As a\n * result, the following occurs for the child SWF file and the child SWF\n * file's display list:\n * * Sounds are stopped.\n * * Stage event listeners are removed.\n * * Event listeners for `enterFrame`, `frameConstructed`, `exitFrame`,\n * `activate` and `deactivate` are removed.\n * * Timers are stopped.\n * * Camera and Microphone instances are detached\n * * Movie clips are stopped.\n *\n * @param gc Provides a hint to the garbage collector to run on the child SWF\n * objects(`true`) or not(`false`). If you\n * are unloading many objects asynchronously, setting the\n * `gc` paramter to `false` might improve\n * application performance. However, if the parameter is set to\n * `false`, media and display objects of the child SWF\n * file might persist in memory after running the\n * `unloadAndStop()` command.\n */\n Loader.prototype.unloadAndStop = function (gc) {\n // TODO: remove all DisplayObjects originating from the unloaded SWF from all lists and stop\n // them.\n this._unload(true, !!gc);\n };\n Loader.prototype._unload = function (stopExecution, gc) {\n // @todo\n Debug.throwPIR('playerglobals/display/Loader', '_unload', '');\n // if (this._loadStatus < LoadStatus.Initialized) {\n // this._loadStatus = LoadStatus.Unloaded;\n // return;\n // }\n // this.close();\n // this._content = null;\n // this._contentLoaderInfo._loader = null;\n // this._loadStatus = LoadStatus.Unloaded;\n // this.dispatchEvent(Event.axClass.getInstance(Event.UNLOAD));\n };\n Loader.redirectRules = [];\n Loader.loaderQueue = [];\n return Loader;\n}(DisplayObjectContainer));\nexport { Loader };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: ProgressEvent\nvar ProgressEvent = /** @class */ (function (_super) {\n __extends(ProgressEvent, _super);\n function ProgressEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (bytesLoaded === void 0) { bytesLoaded = 0; }\n if (bytesTotal === void 0) { bytesTotal = 0; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._bytesLoaded = bytesLoaded;\n _this._bytesTotal = bytesTotal;\n return _this;\n }\n Object.defineProperty(ProgressEvent.prototype, \"bytesLoaded\", {\n get: function () {\n return this._bytesLoaded;\n },\n set: function (value) {\n this._bytesLoaded = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ProgressEvent.prototype, \"bytesTotal\", {\n get: function () {\n return this._bytesTotal;\n },\n set: function (value) {\n this._bytesTotal = value;\n },\n enumerable: false,\n configurable: true\n });\n ProgressEvent.prototype.clone = function () {\n return new ProgressEvent(this._type, this._bubbles, this._cancelable, this._bytesLoaded, this._bytesTotal);\n };\n ProgressEvent.prototype.toString = function () {\n return this.formatToString('ProgressEvent', 'bubbles', 'cancelable', 'eventPhase', 'bytesLoaded', 'bytesTotal');\n };\n ProgressEvent.classInitializer = null;\n ProgressEvent.classSymbols = null;\n ProgressEvent.instanceSymbols = null;\n // JS -> AS Bindings\n ProgressEvent.PROGRESS = 'progress';\n ProgressEvent.SOCKET_DATA = 'socketData';\n return ProgressEvent;\n}(Event));\nexport { ProgressEvent };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { ApplicationDomain } from '../system/ApplicationDomain';\nimport { IOErrorEvent } from '../events/IOErrorEvent';\nimport { ProgressEvent } from '../events/ProgressEvent';\nimport { Event } from '../events/Event';\nimport { Loader } from './Loader';\nimport { URLLoaderEvent, LoaderEvent as AwayLoaderEvent, Debug } from '@awayjs/core';\nimport { PickGroup } from '@awayjs/view';\nimport { AVMStage } from '@awayfl/swf-loader';\nfunction parseQueryString(url) {\n var result = {};\n var index = url ? url.indexOf('?') : -1;\n if (index === -1) {\n return result;\n }\n new URLSearchParams(url.substring(index + 1).split('#')[0]).forEach(function (value, key) {\n result[key] = value;\n });\n return result;\n}\nvar LoaderInfoCompleteQueue = /** @class */ (function () {\n function LoaderInfoCompleteQueue() {\n }\n LoaderInfoCompleteQueue.addQueue = function (LoaderInfo) {\n this._queue.push({\n loaderInfo: LoaderInfo,\n delayCnt: this.DELAY\n });\n };\n LoaderInfoCompleteQueue.executeQueue = function () {\n var queue = this._queue;\n var i = queue.length;\n var allDone = true;\n while (i > 0) {\n i--;\n var loderInfoItem = queue[i];\n loderInfoItem.delayCnt--;\n if (loderInfoItem.delayCnt > 0) {\n allDone = false;\n }\n else if (loderInfoItem.delayCnt == 0) {\n var newEvent = new loderInfoItem.loaderInfo.sec.flash.events.Event(Event.COMPLETE);\n newEvent.currentTarget = loderInfoItem.loaderInfo;\n loderInfoItem.loaderInfo.dispatchEvent(newEvent);\n }\n }\n if (allDone)\n queue.length = 0;\n };\n LoaderInfoCompleteQueue._queue = [];\n LoaderInfoCompleteQueue.DELAY = 2;\n return LoaderInfoCompleteQueue;\n}());\nexport { LoaderInfoCompleteQueue };\n/**\n * The LoaderInfo export class provides information about a loaded SWF file or a\n * loaded image file(JPEG, GIF, or PNG). LoaderInfo objects are available for\n * any display object. The information provided includes load progress, the\n * URLs of the loader and loaded content, the number of bytes total for the\n * media, and the nominal height and width of the media.\n *\n * You can access LoaderInfo objects in two ways:\n *\n * * The `contentLoaderInfo` property of a flash.display.Loader\n * object - The `contentLoaderInfo` property is always available\n * for any Loader object. For a Loader object that has not called the\n * `load()` or `loadBytes()` method, or that has not\n * sufficiently loaded, attempting to access many of the properties of the\n * `contentLoaderInfo` property throws an error.\n * * The `loaderInfo` property of a display object.\n *\n * The `contentLoaderInfo` property of a Loader object provides\n * information about the content that the Loader object is loading, whereas\n * the `loaderInfo` property of a DisplayObject provides\n * information about the root SWF file for that display object.\n *\n * When you use a Loader object to load a display object(such as a SWF\n * file or a bitmap), the `loaderInfo` property of the display\n * object is the same as the `contentLoaderInfo` property of the\n * Loader object(`DisplayObject.loaderInfo =\n * Loader.contentLoaderInfo`). Because the instance of the main export class of\n * the SWF file has no Loader object, the `loaderInfo` property is\n * the only way to access the LoaderInfo for the instance of the main export class of\n * the SWF file.\n *\n * The following diagram shows the different uses of the LoaderInfo\n * object - for the instance of the main export class of the SWF file, for the\n * `contentLoaderInfo` property of a Loader object, and for the\n * `loaderInfo` property of a loaded object:\n *\n * When a loading operation is not complete, some properties of the\n * `contentLoaderInfo` property of a Loader object are not\n * available. You can obtain some properties, such as\n * `bytesLoaded`, `bytesTotal`, `url`,\n * `loaderURL`, and `applicationDomain`. When the\n * `loaderInfo` object dispatches the `init` event, you\n * can access all properties of the `loaderInfo` object and the\n * loaded image or SWF file.\n *\n * **Note:** All properties of LoaderInfo objects are read-only.\n *\n * The `EventDispatcher.dispatchEvent()` method is not\n * applicable to LoaderInfo objects. If you call `dispatchEvent()`\n * on a LoaderInfo object, an IllegalOperationError exception is thrown.\n *\n * @event complete Dispatched when data has loaded successfully. In other\n * words, it is dispatched when all the content has been\n * downloaded and the loading has finished. The\n * `complete` event is always dispatched after\n * the `init` event. The `init` event\n * is dispatched when the object is ready to access, though\n * the content may still be downloading.\n * @event httpStatus Dispatched when a network request is made over HTTP and\n * an HTTP status code can be detected.\n * @event init Dispatched when the properties and methods of a loaded\n * SWF file are accessible and ready for use. The content,\n * however, can still be downloading. A LoaderInfo object\n * dispatches the `init` event when the following\n * conditions exist:\n *\n * * All properties and methods associated with the\n * loaded object and those associated with the LoaderInfo\n * object are accessible.\n * * The constructors for all child objects have\n * completed.\n * * All ActionScript code in the first frame of the\n * loaded SWF's main timeline has been executed.\n *\n * For example, an `Event.INIT` is dispatched\n * when the first frame of a movie or animation is loaded.\n * The movie is then accessible and can be added to the\n * display list. The complete movie, however, can take\n * longer to download. The `Event.COMPLETE` is\n * only dispatched once the full movie is loaded.\n *\n * The `init` event always precedes the\n * `complete` event.\n * @event ioError Dispatched when an input or output error occurs that\n * causes a load operation to fail.\n * @event open Dispatched when a load operation starts.\n * @event progress Dispatched when data is received as the download\n * operation progresses.\n * @event unload Dispatched by a LoaderInfo object whenever a loaded\n * object is removed by using the `unload()`\n * method of the Loader object, or when a second load is\n * performed by the same Loader object and the original\n * content is removed prior to the load beginning.\n */\nvar LoaderInfo = /** @class */ (function (_super) {\n __extends(LoaderInfo, _super);\n function LoaderInfo(loader, container) {\n var _this = _super.call(this) || this;\n _this._bytesLoaded = 0;\n _this._bytesTotal = 0;\n _this._urlParameters = {};\n _this._flashVars = {};\n _this._parameters = null;\n // Events that are supposed to be working are registered as eventMappingExtern:\n _this.eventMappingExtern[Event.COMPLETE] = 'LoaderInfo:Event.COMPLETE';\n _this.eventMappingExtern[ProgressEvent.PROGRESS] = 'LoaderInfo:ProgressEvent.PROGRESS';\n _this.eventMappingExtern[IOErrorEvent.IO_ERROR] = 'LoaderInfo:IOErrorEvent.IO_ERROR';\n // Events not supported yet are registered as eventMappingDummys:\n _this.eventMappingDummys[Event.UNLOAD] = 'LoaderInfo:Event.UNLOAD';\n //this.eventMappingDummys[IOErrorEvent.IO_ERROR]=\"LoaderInfo:IOErrorEvent.IO_ERROR\";\n //this.eventMappingDummys[HTTPStatusEvent.IO_ERROR]=\"HTTPStatusEvent.IO_ERROR\";\n _this.eventMappingDummys[Event.OPEN] = 'LoaderInfo:Event.OPEN';\n _this.eventMappingDummys[Event.INIT] = 'LoaderInfo:Event.INIT';\n _this._onLoaderStartDelegate = function (event) { return _this._onLoaderStart(event); };\n _this._onLoadProgressDelegate = function (event) { return _this._onLoadProgress(event); };\n _this._onLoaderCompleteDelegate = function (event) { return _this._onLoaderComplete(event); };\n _this._onLoaderErrorDelegate = _this._onLoadeError.bind(_this);\n _this._loader = loader;\n _this._container = container;\n _this._container.addEventListener(AwayLoaderEvent.LOADER_START, _this._onLoaderStartDelegate);\n _this._container.addEventListener(URLLoaderEvent.LOAD_PROGRESS, _this._onLoadProgressDelegate);\n _this._container.addEventListener(AwayLoaderEvent.LOADER_COMPLETE, _this._onLoaderCompleteDelegate);\n _this._container.addEventListener(URLLoaderEvent.LOAD_ERROR, _this._onLoaderErrorDelegate);\n return _this;\n }\n Object.defineProperty(LoaderInfo.prototype, \"actionScriptVersion\", {\n /**\n * The ActionScript version of the loaded SWF file. The language\n * version is specified by using the enumerations in the\n * ActionScriptVersion class, such as\n * `ActionScriptVersion.ACTIONSCRIPT2` and `ActionScriptVersion.ACTIONSCRIPT3`.\n *\n * **Note:** This property always has a value of either\n * `ActionScriptVersion.ACTIONSCRIPT2` or `ActionScriptVersion.ACTIONSCRIPT3`.\n * ActionScript 1.0 and 2.0 are both reported as\n * `ActionScriptVersion.ACTIONSCRIPT2` (version 2.0). This property only\n * distinguishes ActionScript 1.0 and 2.0 from ActionScript 3.0.\n *\n * @throws\tError If the file is not downloaded sufficiently to retrieve the\n * requested information.\n * @throws\tError If the file is not a SWF file.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get actionScriptVersion', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"source\", {\n set: function (value) {\n this._source = value;\n this._bytesTotal = (value === null || value === void 0 ? void 0 : value.length) || 0;\n },\n enumerable: false,\n configurable: true\n });\n // for AVM:\n LoaderInfo.prototype.getSymbolById = function (value) { };\n LoaderInfo.prototype._onLoadeError = function (event) {\n var newEvent = new this.sec.flash.events.IOErrorEvent(IOErrorEvent.IO_ERROR);\n newEvent.currentTarget = this;\n this.dispatchEvent(newEvent);\n };\n LoaderInfo.prototype._onLoaderStart = function (event) {\n var _a;\n this._bytesLoaded = 0;\n this._bytesTotal = ((_a = this._source) === null || _a === void 0 ? void 0 : _a.length) || 0;\n this._setURL(new URL(event.url, document.baseURI).href);\n };\n LoaderInfo.prototype._setURL = function (value) {\n this._url = value;\n // read now, as the url getter strips the query string\n this._urlParameters = parseQueryString(value);\n this._parameters = null;\n };\n /**\n * Sets the FlashVars passed to the main SWF file by the embedding page\n */\n LoaderInfo.prototype._setFlashVars = function (value) {\n this._flashVars = {};\n for (var key in value) {\n this._flashVars[key] = String(value[key]);\n }\n this._parameters = null;\n };\n LoaderInfo.prototype._onLoadProgress = function (event) {\n this._bytesLoaded = event.urlLoader.bytesLoaded;\n this._bytesTotal = event.urlLoader.bytesTotal;\n var newEvent = new this.sec.flash.events.ProgressEvent(ProgressEvent.PROGRESS, null, null, event.urlLoader.bytesLoaded, event.urlLoader.bytesTotal);\n newEvent.currentTarget = this;\n this.dispatchEvent(newEvent);\n };\n LoaderInfo.prototype._onLoaderComplete = function (event) {\n if (this._source) {\n this._bytesTotal = this._bytesLoaded = this._source.length;\n }\n else if (event.assets && event.assets.length) {\n // use count of assets instead real bytes\n this._bytesLoaded = event.assets.length;\n this._bytesTotal = event.assets.length;\n }\n else {\n this._bytesTotal = this._bytesLoaded = this._bytesTotal || 1; //avoid devide on 0\n }\n this._url = new URL(event.url, document.baseURI).href;\n LoaderInfoCompleteQueue.addQueue(this);\n };\n Object.defineProperty(LoaderInfo.prototype, \"applicationDomain\", {\n /**\n * When an external SWF file is loaded, all ActionScript 3.0 definitions\n * contained in the loaded class are stored in the\n * `applicationDomain` property.\n *\n * All code in a SWF file is defined to exist in an application domain.\n * The current application domain is where your main application runs. The\n * system domain contains all application domains, including the current\n * domain and all classes used by Flash Player or Adobe AIR.\n *\n * All application domains, except the system domain, have an associated\n * parent domain. The parent domain of your main application's\n * `applicationDomain` is the system domain. Loaded classes are\n * defined only when their parent doesn't already define them. You cannot\n * override a loaded class definition with a newer definition.\n *\n * For usage examples of application domains, see the \"Client System\n * Environment\" chapter in the _ActionScript 3.0 Developer's Guide_.\n *\n * @throws SecurityError This security sandbox of the caller is not allowed\n * to access this ApplicationDomain.\n */\n get: function () {\n return this._applicationDomain;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"bytes\", {\n /**\n * The bytes associated with a LoaderInfo object.\n *\n * @throws SecurityError If the object accessing this API is prevented from\n * accessing the loaded object due to security\n * restrictions. This situation can occur, for\n * instance, when a Loader object attempts to access\n * the `contentLoaderInfo.content` property\n * and it is not granted security permission to access\n * the loaded content.\n *\n * For more information related to security, see the\n * Flash Player Developer Center Topic:\n * [Security](http://www.adobe.com/go/devnet_security_en).\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get bytes', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"bytesLoaded\", {\n /**\n * The number of bytes that are loaded for the media. When this number equals\n * the value of `bytesTotal`, all of the bytes are loaded.\n */\n get: function () {\n return this._bytesLoaded;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"bytesTotal\", {\n /**\n * The number of compressed bytes in the entire media file.\n *\n * Before the first `progress` event is dispatched by this\n * LoaderInfo object's corresponding Loader object, `bytesTotal`\n * is 0. After the first `progress` event from the Loader object,\n * `bytesTotal` reflects the actual number of bytes to be\n * downloaded.\n */\n get: function () {\n return this._bytesTotal;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"childAllowsParent\", {\n /**\n * Expresses the trust relationship from content (child) to the Loader (parent).\n * If the child has allowed the parent access, true; otherwise, false. This\n * property is set to true if the child object has called the `allowDomain()`\n * method to grant permission to the parent domain or if a URL policy is loaded\n * at the child domain that grants permission to the parent domain. If child\n * and parent are in the same domain, this property is set to true.\n *\n * For more information related to security, see the Flash Player Developer\n * Center Topic: [Security](http://www.adobe.com/go/devnet_security_en).\n *\n * @throws Error Thrown if the file is not downloaded sufficiently to retrieve\n * the requested information.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get childAllowsParent', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"childSandboxBridge\", {\n /**\n * A object that can be set by the loaded content's code to expose properties\n * and methods that can be accessed by code in the Loader object's sandbox.\n * This _sandbox bridge_ lets content from a non-application domain have\n * controlled access to scripts in the AIR application sandbox, and vice versa.\n * The sandbox bridge serves as a gateway between the sandboxes, providing\n * explicit interaction between application and non-application security\n * sandboxes.\n *\n * @throws SecurityError Only content in the loaded content's sandbox can set\n * this property.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get childSandboxBridge', '');\n return null;\n },\n set: function (door) {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'set childSandboxBridge', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"content\", {\n /**\n * The loaded object associated with this LoaderInfo object.\n *\n * @throws SecurityError If the object accessing this API is prevented from\n * accessing the loaded object due to security\n * restrictions. This situation can occur, for\n * instance, when a Loader object attempts to access\n * the `contentLoaderInfo.content` property\n * and it is not granted security permission to access\n * the loaded content.\n *\n * For more information related to security, see the\n * Flash Player Developer Center Topic:\n * [Security](http://www.adobe.com/go/devnet_security_en).\n */\n get: function () {\n return this._loader.content;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"contentType\", {\n /**\n * The MIME type of the loaded file. The value is `null` if not\n * enough of the file has loaded in order to determine the type. The\n * following list gives the possible values:\n *\n * * `\"application/x-shockwave-flash\"`\n * * `\"image/jpeg\"`\n * * `\"image/gif\"`\n * * `\"image/png\"`\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get contentType', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"frameRate\", {\n /**\n * The nominal frame rate, in frames per second, of the loaded SWF file. This\n * number is often an integer, but need not be.\n *\n * This value may differ from the actual frame rate in use. Flash Player\n * or Adobe AIR only uses a single frame rate for all loaded SWF files at any\n * one time, and this frame rate is determined by the nominal frame rate of\n * the main SWF file. Also, the main frame rate may not be able to be\n * achieved, depending on hardware, sound synchronization, and other\n * factors.\n *\n * @throws Error If the file is not downloaded sufficiently to retrieve the\n * requested information.\n * @throws Error If the file is not a SWF file.\n */\n get: function () {\n return AVMStage.instance().frameRate;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"height\", {\n /**\n * The nominal height of the loaded file. This value might differ from the\n * actual height at which the content is displayed, since the loaded content\n * or its parent display objects might be scaled.\n *\n * @throws Error If the file is not downloaded sufficiently to retrieve the\n * requested information.\n */\n get: function () {\n var node = AVMStage.instance().view.getNode(this._container);\n var box = PickGroup.getInstance().getBoundsPicker(node).getBoxBounds(node);\n return (box == null) ? 0 : box.height;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"isURLInaccessible\", {\n /**\n * Indicates if the `LoaderInfo.url` property has been truncated.\n *\n * When the `isURLInaccessible` value is true the `LoaderInfo.url` value is only\n * the domain of the final URL from which the content loaded. For example, the\n * property is truncated if the content is loaded from\n * `http://www.adobe.com/assets/hello.swf`, and the `LoaderInfo.url` property\n * has the value `http://www.adobe.com`. The `isURLInaccessible`\n * value is true only when all of the following are also true:\n *\n * * An HTTP redirect occurred while loading the content.\n * * The SWF file calling `Loader.load()` is from a different domain than the\n * content's final URL.\n * * The SWF file calling `Loader.load()` does not have permission to access\n * the content. Permission is granted to access the content the same way\n * permission is granted for `BitmapData.draw()`: call `Security.allowDomain()`\n * to access a SWF file (or for non-SWF file content, establish a policy\n * file and use the `LoaderContext.checkPolicyFile` property).\n *\n * **Note:** The `isURLInaccessible` property was added for Flash Player 10.1 and\n * AIR 2.0. However, this property is made available to SWF files of all\n * versions when the Flash runtime supports it. So, using some authoring tools\n * in \"strict mode\" causes a compilation error. To work around the error use\n * the indirect syntax `myLoaderInfo[\"isURLInaccessible\"]`, or disable strict\n * mode. If you are using Flash Professional CS5 or Flex SDK 4.1, you can use\n * and compile this API for runtimes released before Flash Player 10.1 and AIR 2.\n *\n * For application content in AIR, the value of this property is always false.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get isURLInaccessible', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"loader\", {\n /**\n * The Loader object associated with this LoaderInfo object. If this\n * LoaderInfo object is the `loaderInfo` property of the instance\n * of the main export class of the SWF file, no Loader object is associated.\n *\n * @throws SecurityError If the object accessing this API is prevented from\n * accessing the Loader object because of security\n * restrictions. This can occur, for instance, when a\n * loaded SWF file attempts to access its\n * `loaderInfo.loader` property and it is\n * not granted security permission to access the\n * loading SWF file.\n *\n * For more information related to security, see the\n * Flash Player Developer Center Topic:\n * [Security](http://www.adobe.com/go/devnet_security_en).\n */\n get: function () {\n return (this._loader instanceof Loader) ? this._loader : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"loaderURL\", {\n /**\n * The URL of the SWF file that initiated the loading of the media described\n * by this LoaderInfo object. For the instance of the main class of the SWF\n * file, this URL is the same as the SWF file's own URL.\n */\n get: function () {\n return this._loader.activeStage.getChildAt(0).loaderInfo.url;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"parameters\", {\n /**\n * An object that contains name-value pairs that represent the parameters\n * provided to the loaded SWF file.\n *\n * You can use a `for-in` loop to extract all the names and\n * values from the `parameters` object.\n *\n * The two sources of parameters are: the query string in the URL of the\n * main SWF file, and the value of the `FlashVars` HTML parameter\n * (this affects only the main SWF file).\n *\n * The `parameters` property replaces the ActionScript 1.0 and\n * 2.0 technique of providing SWF file parameters as properties of the main\n * timeline.\n *\n * The value of the `parameters` property is null for Loader\n * objects that contain SWF files that use ActionScript 1.0 or 2.0. It is\n * only non-null for Loader objects that contain SWF files that use\n * ActionScript 3.0.\n */\n get: function () {\n if (!this._parameters) {\n this._parameters = this.sec.createObjectFromJS(Object.assign({}, this._urlParameters, this._flashVars));\n }\n return this._parameters;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"parentAllowsChild\", {\n /**\n * Expresses the trust relationship from Loader(parent) to the content\n * (child). If the parent has allowed the child access, `true`;\n * otherwise, `false`. This property is set to `true`\n * if the parent object called the `allowDomain()` method to grant\n * permission to the child domain or if a URL policy file is loaded at the\n * parent domain granting permission to the child domain. If child and parent\n * are in the same domain, this property is set to `true`.\n *\n * For more information related to security, see the Flash Player\n * Developer Center Topic: [Security](http://www.adobe.com/go/devnet_security_en).\n *\n * @throws Error Thrown if the file is not downloaded sufficiently to\n * retrieve the requested information.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get parentAllowsChild', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"parentSandboxBridge\", {\n /**\n * A object that can be set by code in the Loader object's sandbox to expose\n * properties and methods that can be accessed by the loaded content's code.\n * This _sandbox bridge_ lets content from a non-application domain have\n * controlled access to scripts in the AIR application sandbox, and vice versa.\n * The sandbox bridge serves as a gateway between the sandboxes, providing\n * explicit interaction between application and non-application security\n * sandboxes.\n *\n * @throws SecurityError Only content in the Loader object's sandbox can set\n * this property.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get parentSandboxBridge', '');\n return null;\n },\n set: function (door) {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'set parentSandboxBridge', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"sameDomain\", {\n /**\n * Expresses the domain relationship between the loader and the content:\n * `true` if they have the same origin domain; `false`\n * otherwise.\n *\n * @throws Error Thrown if the file is not downloaded sufficiently to\n * retrieve the requested information.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get sameDomain', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"sharedEvents\", {\n /**\n * An EventDispatcher instance that can be used to exchange events across\n * security boundaries. Even when the Loader object and the loaded content\n * originate from security domains that do not trust one another, both can\n * access `sharedEvents` and send and receive events via this\n * object.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'get sharedEvents', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"swfVersion\", {\n /**\n * The file format version of the loaded SWF file. The file format is\n * specified using the enumerations in the SWFVersion class, such as\n * `SWFVersion.FLASH7` and `SWFVersion.FLASH9`.\n *\n * @throws Error If the file is not downloaded sufficiently to retrieve\n * the requested information.\n * @throws Error If the file is not a SWF file.\n */\n get: function () {\n return this._swfVersion;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"uncaughtErrorEvents\", {\n /**\n * An object that dispatches an `uncaughtError` event when an\n * unhandled error occurs in code in this LoaderInfo object's SWF file. An\n * uncaught error happens when an error is thrown outside of any\n * `try..catch` blocks or when an ErrorEvent object is dispatched\n * with no registered listeners.\n *\n * This property is created when the SWF associated with this LoaderInfo\n * has finished loading. Until then the `uncaughtErrorEvents`\n * property is `null`. In an ActionScript-only project, you can\n * access this property during or after the execution of the constructor\n * function of the main class of the SWF file. For a Flex project, the\n * `uncaughtErrorEvents` property is available after the\n * `applicationComplete` event is dispatched.\n */\n get: function () {\n return this._loader.uncaughtErrorEvents;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"url\", {\n /**\n * The URL of the media being loaded.\n *\n * Before the first `progress` event is dispatched by this\n * LoaderInfo object's corresponding Loader object, the value of the\n * `url` property might reflect only the initial URL specified in\n * the call to the `load()` method of the Loader object. After the\n * first `progress` event, the `url` property reflects\n * the media's final URL, after any redirects and relative URLs are\n * resolved.\n *\n * In some cases, the value of the `url` property is truncated;\n * see the `isURLInaccessible` property for details.\n */\n get: function () {\n if (this._url.includes('?')) {\n this._url = this._url.substr(0, this._url.indexOf('?'));\n }\n return this._url;\n },\n set: function (value) {\n this._setURL(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LoaderInfo.prototype, \"width\", {\n /**\n * The nominal width of the loaded content. This value might differ from the\n * actual width at which the content is displayed, since the loaded content\n * or its parent display objects might be scaled.\n *\n * @throws Error If the file is not downloaded sufficiently to retrieve the\n * requested information.\n */\n get: function () {\n var node = AVMStage.instance().view.getNode(this._container);\n var box = PickGroup.getInstance().getBoundsPicker(node).getBoxBounds(node);\n return (box == null) ? 0 : box.width;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the LoaderInfo object associated with a SWF file defined as an\n * object.\n *\n * @param object The object for which you want to get an associated\n * LoaderInfo object.\n * @return The associated LoaderInfo object. Returns null when called\n * in non-debugger builds (or when debugging is not enabled) or if\n * the referenced object does not have an associated LoaderInfo\n * object (such as some objects used by the AIR runtime).\n * @throws SecurityError The caller is not running in the local trusted\n * sandbox.\n */\n LoaderInfo.getLoaderInfoByDefinition = function (object) {\n // @todo\n Debug.throwPIR('playerglobals/display/LoaderInfo', 'static getLoaderInfoByDefinition', '');\n return null;\n };\n LoaderInfo.prototype._setApplicationDomain = function (value) {\n this._applicationDomain = value\n || new this.sec.flash.system.ApplicationDomain(ApplicationDomain.currentDomain);\n };\n return LoaderInfo;\n}(EventDispatcher));\nexport { LoaderInfo };\n","import { __extends } from \"tslib\";\nimport { AVMStage } from '@awayfl/swf-loader';\nimport { Event } from '../events/Event';\nimport { DisplayObjectContainer } from './DisplayObjectContainer';\nimport { DisplayObject } from './DisplayObject';\nimport { FrameScriptManager } from '@awayjs/scene';\nimport { OrphanManager } from '@awayfl/avm2';\nimport { Loader as PlayerGlobalLoader } from './Loader';\nimport { LoaderInfoCompleteQueue } from './LoaderInfo';\nimport { Debug } from '@awayjs/core';\n/**\n * Dispatched by the Stage object when the state of the stageVideos property changes.\n * @eventType\tflash.events.StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY\n [Event(name=\"stageVideoAvailability\", type=\"flash.events.StageVideoAvailabilityEvent\")]\n\n * Dispatched by the Stage object when the stage orientation changes.\n * @eventType\tflash.events.StageOrientationEvent.ORIENTATION_CHANGE\n [Event(name=\"orientationChange\", type=\"flash.events.StageOrientationEvent\")]\n\n * Dispatched by the Stage object when the stage orientation begins changing.\n * @eventType\tflash.events.StageOrientationEvent.ORIENTATION_CHANGING\n [Event(name=\"orientationChanging\", type=\"flash.events.StageOrientationEvent\")]\n\n * Dispatched when the Stage object enters, or leaves, full-screen mode.\n * @eventType\tflash.events.FullScreenEvent.FULL_SCREEN\n [Event(name=\"fullScreen\", type=\"flash.events.FullScreenEvent\")]\n\n * Dispatched when the scaleMode property of the Stage object is set to\n * StageScaleMode.NO_SCALE and the SWF file is resized.\n * @eventType\tflash.events.Event.RESIZE\n [Event(name=\"resize\", type=\"flash.events.Event\")]\n\n * Dispatched by the Stage object when the pointer moves out of the\n * stage area.\n * @eventType\tflash.events.Event.MOUSE_LEAVE\n [Event(name=\"mouseLeave\", type=\"flash.events.Event\")]\n\n * The Stage class represents the main drawing area.\n *\n * <p class=\"- topic/p \">For SWF content running in the browser (in\n * Flash<sup class=\"+ topic/ph hi-d/sup \">®</sup> Player), the Stage represents the entire area where Flash\n * content is shown. For content running in AIR on desktop operating systems,\n * each NativeWindow object has a corresponding\n * Stage object.</p><p class=\"- topic/p \">The Stage object is not globally accessible.\n * You need to access it through the\n * <codeph class=\"+ topic/ph pr-d/codeph \">stage</codeph> property of a DisplayObject instance.\n * </p><p class=\"- topic/p \">The Stage class has several ancestor classes — DisplayObjectContainer, InteractiveObject,\n * DisplayObject, and EventDispatcher — from which it inherits properties and methods.\n * Many of these properties and methods are either inapplicable to Stage objects,\n * or require security checks when called on a Stage object. The properties and methods that\n * require security checks are documented as part of the Stage class.</p><p class=\"- topic/p \">\n * In addition, the following inherited properties are inapplicable to Stage objects. If you\n * try to set them, an IllegalOperationError is thrown. These properties may always be read, but\n * since they cannot be set, they will always contain default values.</p><ul class=\"- topic/ul \">\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">accessibilityProperties</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">alpha</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">blendMode</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">cacheAsBitmap</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">contextMenu</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">filters</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">focusRect</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">loaderInfo</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">mask</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">mouseEnabled</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">name</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">opaqueBackground</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">rotation</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">scale9Grid</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">scaleX</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">scaleY</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">scrollRect</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">tabEnabled</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">tabIndex</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">transform</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">visible</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">x</codeph></li>\n * <li class=\"- topic/li \"><codeph class=\"+ topic/ph pr-d/codeph \">y</codeph></li>\n * </ul>\n * <p class=\"- topic/p \">Some events that you might expect to be a part of the Stage class,\n * such as <codeph class=\"+ topic/ph pr-d/codeph \">enterFrame</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">exitFrame</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">frameConstructed</codeph>,\n * and <codeph class=\"+ topic/ph pr-d/codeph \">render</codeph>,\n * cannot be Stage events because a reference to the Stage object\n * cannot be guaranteed to exist in every situation where these events\n * are used. Because these events cannot be dispatched by the Stage\n * object, they are instead dispatched by every DisplayObject instance,\n * which means that you can add an event listener to\n * any DisplayObject instance to listen for these events.\n * These events, which are part of the DisplayObject class,\n * are called broadcast events to differentiate them from events\n * that target a specific DisplayObject instance.\n * Two other broadcast events, <codeph class=\"+ topic/ph pr-d/codeph \">activate</codeph>\n * and <codeph class=\"+ topic/ph pr-d/codeph \">deactivate</codeph>,\n * belong to DisplayObject's superclass, EventDispatcher.\n * The <codeph class=\"+ topic/ph pr-d/codeph \">activate</codeph>\n * and <codeph class=\"+ topic/ph pr-d/codeph \">deactivate</codeph> events\n * behave similarly to the DisplayObject broadcast events, except\n * that these two events are dispatched not only by all DisplayObject\n * instances, but also by all EventDispatcher instances and instances\n * of other EventDispatcher subclasses.\n * For more information on broadcast events, see the DisplayObject class.</p>\n *\n * EXAMPLE:\n *\n * The following example uses the <codeph class=\"+ topic/ph pr-d/codeph \">StageExample</codeph> class to dispatch\n * events whenever the stage is activated or resized. This is accomplished by performing the following steps:\n * <ol class=\"- topic/ol \"><li class=\"- topic/li \">\n * The class constructor first sets the Flash application to be fixed, regardless of the size of\n * the Flash Player window and then adds two event listeners with the\n * <codeph class=\"+ topic/ph pr-d/codeph \">activateHandler()</codeph>\n * and <codeph class=\"+ topic/ph pr-d/codeph \">resizeHandler()</codeph> methods.</li>\n * <li class=\"- topic/li \">The <codeph class=\"+ topic/ph pr-d/codeph \">activateHandler()\n * </codeph> method runs when the left mouse button is clicked.</li><li class=\"- topic/li \">\n * The <codeph class=\"+ topic/ph pr-d/codeph \">resizeHandler()</codeph> method runs when the stage is resized.</li>\n * </ol><codeblock xml:space=\"preserve\" class=\"+ topic/pre pr-d/codeblock \">\n * package {\n * import flash.display.Sprite;\n * import flash.display.StageAlign;\n * import flash.display.StageScaleMode;\n * import flash.events.Event;\n *\n * public class StageExample extends Sprite {\n *\n * public StageExample() {\n * stage.scaleMode = StageScaleMode.NO_SCALE;\n * stage.align = StageAlign.TOP_LEFT;\n * stage.addEventListener(Event.ACTIVATE, activateHandler);\n * stage.addEventListener(Event.RESIZE, resizeHandler);\n * }\n *\n * private activateHandler(event:Event):void {\n * trace(\"activateHandler: \" + event);\n * }\n *\n * private resizeHandler(event:Event):void {\n * trace(\"resizeHandler: \" + event);\n * trace(\"stageWidth: \" + stage.stageWidth + \" stageHeight: \" + stage.stageHeight);\n * }\n * }\n * }\n * </codeblock>\n */\nvar Stage = /** @class */ (function (_super) {\n __extends(Stage, _super);\n function Stage() {\n var _this = _super.call(this) || this;\n _this._isStage = true;\n _this._stage3Ds = [];\n // resize event listens on window\n _this._resizeCallbackDelegate = function (event) { return _this.resizeCallback(event); };\n window.addEventListener('resize', _this._resizeCallbackDelegate);\n _this.eventMapping[Event.RESIZE] = {\n adaptedType: '',\n addListener: _this.initResizeListener,\n removeListener: _this.removeResizeListener,\n callback: _this._resizeCallbackDelegate\n };\n // mouse leave event listens on window\n _this._mouseLeaveCallbackDelegate = function (event) { return _this.mouseLeaveCallback(event); };\n _this.eventMapping[Event.MOUSE_LEAVE] = {\n adaptedType: '',\n addListener: _this.initMouseLeaveListener,\n removeListener: _this.removeMouseLeaveListener,\n callback: _this._mouseLeaveCallbackDelegate\n };\n // set this as active stage.\n // this makes sure all DisplayObject.constructor can set a reference to stage,\n // befor constructors of Sprite or MovieClips are processed\n _this.sec.flash.display.DisplayObject.axClass._activeStage = _this;\n _this._stage = _this;\n _this._resizeCallbackDelegate(null);\n return _this;\n }\n Object.defineProperty(Stage.prototype, \"view\", {\n get: function () {\n return AVMStage.instance().view;\n },\n enumerable: false,\n configurable: true\n });\n // ---------- event mapping functions Event.RESIZE\n Stage.prototype.initResizeListener = function (type, callback) {\n //window.addEventListener(\"resize\", callback);\n };\n Stage.prototype.removeResizeListener = function (type, callback) {\n //window.removeEventListener(\"resize\", callback);\n };\n Stage.prototype.resizeCallback = function (event) {\n if (event === void 0) { event = null; }\n this.dispatchEvent(new this.sec.flash.events.Event(Event.RESIZE));\n };\n Stage.prototype.show = function () {\n //this._view.renderer.stage.container.style.display=\"initial\";\n };\n // ---------- event mapping functions Event.MOUSE_LEAVE\n Stage.prototype.initMouseLeaveListener = function (type, callback) {\n window.addEventListener('mouseleave', callback);\n };\n Stage.prototype.removeMouseLeaveListener = function (type, callback) {\n window.removeEventListener('mouseleave', callback);\n };\n Stage.prototype.initListener = function (type, callback, listener) {\n if (!this._listnersCallbacksByType[type]) {\n this.adaptee.addEventListener(type, callback);\n AVMStage.instance().view.stage.addEventListener(type, callback);\n this._listnersCallbacksByType[type] = [listener];\n return;\n }\n this._listnersCallbacksByType[type].push(listener);\n };\n Stage.prototype.removeListener = function (type, callback, listener) {\n if (this._listnersCallbacksByType[type]) {\n var idx = this._listnersCallbacksByType[type].indexOf(listener);\n if (idx != -1) {\n if (this._listnersCallbacksByType[type].length == 1) {\n delete this._listnersCallbacksByType[type];\n this.adaptee.removeEventListener(type, callback);\n AVMStage.instance().view.stage.removeEventListener(type, callback);\n return;\n }\n this._listnersCallbacksByType[type].splice(idx, 1);\n }\n }\n };\n Stage.prototype.mouseLeaveCallback = function (event) {\n if (event === void 0) { event = null; }\n this.dispatchEvent(new Event(Event.MOUSE_LEAVE));\n };\n Stage.prototype.enterFrame = function () {\n PlayerGlobalLoader.executeQueue();\n if (this._stage.adaptee.numChildren == 0) {\n return;\n }\n /**\n * todo: order of executions should look like this:\n *\n * \t\t- timeline-pass1:\n *\n * \t\t\t\t- remove Childs from timeline.\n * \t\t\t\t- dispatch REMOVED and REMOVED_FROM_STAGE\n * \t\t\t\t- update childs that still exists\n * \t\t\t\t- declare new childs (not create them yet)\n * \t\t\t\t- update currentFrame and numChildren\n * \t\t\t\t- queue mcs for framescripts\n *\n * \t\t- dispatch ENTER_FRAME (skip on first frame when timeline is played)\n *\n * \t\t- timeline-pass2:\n *\n * \t\t\t\t- add new childs + update their properties\n * \t\t\t\t- execute constructors\n * \t\t\t\t- dispatch ADDED and ADDED_TO_STAGE\n *\n * \t\t- dispatch FRAME_CONSTRUCTED\n *\n * \t\t- execute framescripts\n *\n * \t\t- dispatch EXIT_FRAME\n *\n * \t\t- dispatch RENDER (only if stage.invalidate was called)\n * */\n OrphanManager.updateOrphans();\n // run all queued framescripts\n FrameScriptManager.execute_queue();\n //\tadvance the stage - this updates the timeline\n //\tobjects get removed, created and updated - framescripts get queued\n this._stage.adaptee.advanceFrame();\n // execute pending constructors:\n FrameScriptManager.execute_as3_constructors_enterFrame(this._stage.adaptee);\n //\tin FP, the first enterFrame after a swf-load is ignored:\n var child = this._stage.adaptee.getChildAt(0);\n if (child.firstFrameOnSWFStart) {\n child.firstFrameOnSWFStart = false;\n }\n else {\n this._stage.dispatchStaticBroadCastEvent(Event.ENTER_FRAME);\n //FrameScriptManager.execute_as3_constructors_enterFrame(<any> this._stage.adaptee);\n //FrameScriptManager.execute_queue();\n }\n // broadcast FRAME_CONSTRUCTED event to all objects\n this._stage.dispatchStaticBroadCastEvent(Event.FRAME_CONSTRUCTED);\n // run all queued framescripts\n FrameScriptManager.execute_queue();\n // broadcast FRAME_CONSTRUCTED event to all objects\n this._stage.dispatchStaticBroadCastEvent(Event.EXIT_FRAME);\n FrameScriptManager.execute_queue();\n LoaderInfoCompleteQueue.executeQueue();\n if (this._sendEventRender) {\n this._stage.dispatchStaticBroadCastEvent(Event.RENDER);\n FrameScriptManager.execute_queue();\n this._sendEventRender = false;\n }\n };\n Object.defineProperty(Stage.prototype, \"mouseX\", {\n //---------------------------original as3 properties / methods:\n get: function () {\n return AVMStage.instance().getLocalMouseX(AVMStage.instance().view.getNode(this.adaptee)) | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"mouseY\", {\n /**\n * Indicates the y coordinate of the mouse or user input device position, in pixels.\n *\n * Note: For a DisplayObject that has been rotated, the returned y coordinate will reflect the\n * non-rotated any.\n */\n get: function () {\n return AVMStage.instance().getLocalMouseY(AVMStage.instance().view.getNode(this.adaptee)) | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"accessibilityImplementation\", {\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'set accessibilityImplementation', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"align\", {\n /**\n * A value from the StageAlign class that specifies the alignment of the stage in\n * Flash Player or the browser. The following are valid values:\n *\n * ValueVertical\n * AlignmentHorizontalStageAlign.TOP\n * TopCenterStageAlign.BOTTOM\n * BottomCenterStageAlign.LEFT\n * CenterLeftStageAlign.RIGHT\n * CenterRightStageAlign.TOP_LEFT\n * TopLeftStageAlign.TOP_RIGHT\n * TopRightStageAlign.BOTTOM_LEFT\n * BottomLeftStageAlign.BOTTOM_RIGHT\n * BottomRight\n * The align property is only available to an object that is in the same security sandbox\n * as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the\n * calling object by calling the Security.allowDomain() method or the Security.alowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n return this.adaptee.align;\n },\n set: function (value) {\n this.adaptee.align = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"allowsFullScreen\", {\n /**\n * Specifies whether this stage allows the use of the full screen mode\n * @langversion\t3.0\n * @playerversion\tFlash 10.2\n * @oldexample\tThe following example traces the value of this read-only property:\n * <pre xml:space=\"preserve\" class=\"- topic/pre \">\n * trace(Stage.allowsFullsreen);\n * </pre>\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get allowsFullScreen', '');\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"allowsFullScreenInteractive\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get allowsFullScreenInteractive', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"browserZoomFactor\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get browserZoomFactor', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"color\", {\n get: function () {\n return this.adaptee.color;\n },\n set: function (color) {\n this.adaptee.color = color;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"colorCorrection\", {\n /**\n * Controls Flash runtime color correction for displays.\n * Color correction works only if the main monitor is assigned a valid ICC color profile, which specifies\n * the device's particular color attributes.\n * By default, the Flash runtime tries to match the color correction of its host (usually a browser).\n *\n * Use the Stage.colorCorrectionSupport property\n * to determine if color correction is available on the current system and the default state.\n * . If color correction is available, all colors on the stage are assumed to be in\n * the sRGB color space, which is the most standard color space.\n * Source profiles of input devices are not considered during color correction.\n * No input color correction is applied; only the stage output is mapped to the main\n * monitor's ICC color profile.In general, the benefits of activating color management include predictable\n * and consistent color, better conversion,\n * accurate proofing and more efficient cross-media output. Be aware, though, that color management does not provide\n * perfect conversions due to devices having a different gamut from each other or original images.\n * Nor does color management eliminate the need for custom or edited profiles.\n * Color profiles are dependent on browsers, operating systems (OS), OS extensions,\n * output devices, and application support.Applying color correction degrades the Flash runtime performance.\n * A Flash runtime's color correction is document style color correction because\n * all SWF movies are considered documents with implicit sRGB profiles.\n * Use the Stage.colorCorrectionSupport property to tell the Flash runtime\n * to correct colors when displaying the SWF file (document) to the display color space.\n * Flash runtimes only compensates for differences between monitors, not for differences between input devices\n * (camera/scanner/etc.).\n * The three possible values are strings with corresponding constants in the flash.display.ColorCorrection\n * class:\"default\": Use the same color correction as the host system.\"on\":\n * Always perform color correction.\"off\": Never perform color correction.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get colorCorrection', '');\n return '';\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'set colorCorrection', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"colorCorrectionSupport\", {\n /**\n * Specifies whether the Flash runtime is running on an operating system that supports\n * color correction and whether the color profile of the main (primary)\n * monitor can be read and understood by the Flash runtime. This property also returns the default state\n * of color correction on the host system (usually the browser).\n * Currently the return values can be:\n * The three possible values are strings with corresponding constants in the\n * flash.display.ColorCorrectionSupport class:\"unsupported\":\n * Color correction is not available.\"defaultOn\":\n * Always performs color correction.\"defaultOff\": Never performs color correction.\n \n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get colorCorrectionSupport', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"contentsScaleFactor\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get contentsScaleFactor', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"displayContextInfo\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get displayContextInfo', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"displayState\", {\n /**\n * A value from the StageDisplayState class that specifies which display state to use. The following\n * are valid values:\n *\n * StageDisplayState.FULL_SCREEN Sets AIR application or Flash runtime to expand the\n * stage over the user's entire screen, with keyboard input disabled.StageDisplayState.FULL_SCREEN_INTERACTIVE\n * Sets the AIR application to expand the\n * stage over the user's entire screen, with keyboard input allowed.\n * (Not available for content running in Flash Player.)StageDisplayState.NORMAL\n * Sets the Flash runtime back to the standard stage display mode.\n * The scaling behavior of the movie in full-screen mode is determined by the scaleMode\n * setting (set using the Stage.scaleMode property or the SWF file's embed\n * tag settings in the HTML file). If the scaleMode property is set to noScale\n * while the application transitions to full-screen mode, the Stage width and height\n * properties are updated, and the Stage dispatches a resize event. If any other scale mode is set,\n * the stage and its contents are scaled to fill the new screen dimensions. The Stage object retains its original\n * width and height values and does not dispatch a resize event.\n * The following restrictions apply to SWF files that play within an HTML page (not those using the stand-alone\n * Flash Player or not running in the AIR runtime):To enable full-screen mode,\n * add the allowFullScreen parameter to the object\n * and embed tags in the HTML page that includes the SWF file, with allowFullScreen set\n * to \"true\", as shown in the following example:\n *\n * <codeblock>\n * <param name=\"allowFullScreen\" value=\"true\" />\n * ...\n * <embed src=\"example.swf\" allowFullScreen=\"true\" ... >\n * </codeblock>\n * An HTML page may also use a script to generate SWF-embedding tags. You need to alter the script\n * so that it inserts the proper allowFullScreen settings. HTML pages generated by Flash Professional and\n * Flash Builder use the AC_FL_RunContent() to embed references to SWF files, and you\n * need to add the allowFullScreen parameter settings, as in the following:\n * <codeblock>\n * AC_FL_RunContent( ... \"allowFullScreen\", \"true\", ... )\n * </codeblock>\n * Full-screen mode is initiated in response to a mouse click or key press by the user; the movie cannot change\n * Stage.displayState without user input. Flash runtimes restrict keyboard input in full-screen mode.\n * Acceptable keys include keyboard shortcuts that terminate full-screen mode and non-printing keys such as arrows,\n * space, Shift,\n * and Tab keys. Keyboard shortcuts that terminate full-screen mode are:\n * Escape (Windows, Linux, and Mac), Control+W (Windows),\n * Command+W (Mac), and Alt+F4.\n * A Flash runtime dialog box appears over the movie when users enter full-screen mode\n * to inform the users they are in\n * full-screen mode and that they can press the Escape key to end full-screen mode.\n * Starting with Flash Player 9.0.115.0, full-screen works the same in windowless mode as it does in window mode.\n * If you set the Window Mode (wmode in the HTML) to Opaque Windowless (opaque)\n * or Transparent Windowless (transparent), full-screen can be initiated,\n * but the full-screen window will always be opaque.\n * These restrictions are not present for SWF content running in the\n * stand-alone Flash Player or in AIR.\n * AIR supports an interactive full-screen mode which allows keyboard input.\n * For AIR content running in full-screen mode, the system screen saver\n * and power saving options are disabled while video content is playing and until either the video stops\n * or full-screen mode is exited.On Linux, setting displayState to StageDisplayState.FULL_SCREEN or\n * StageDisplayState.FULL_SCREEN_INTERACTIVE is an asynchronous operation.\n * @throws\tSecurityError Calling the displayState property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n * Trying to set the displayState property while the settings dialog is displayed, without a user response, or\n * if the param or embed HTML tag's allowFullScreen attribute is not set to\n * true throws a security error.\n */\n get: function () {\n return AVMStage.instance().displayState;\n },\n set: function (value) {\n AVMStage.instance().displayState = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"focus\", {\n /**\n * The interactive object with keyboard focus; or null if focus is not set\n * or if the focused object belongs to a security sandbox to which the calling object does not\n * have access.\n * @throws\tError Throws an error if focus cannot be set to the target.\n */\n get: function () {\n var _a;\n return (_a = AVMStage.instance().mouseManager.getFocus()) === null || _a === void 0 ? void 0 : _a.container.adapter;\n },\n set: function (newFocus) {\n AVMStage.instance().mouseManager.setFocus(newFocus === null || newFocus === void 0 ? void 0 : newFocus.node);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"frameRate\", {\n /**\n * Gets and sets the frame rate of the stage. The frame rate is defined as frames per second.\n * By default the rate is set to the frame rate of the first SWF file loaded. Valid range for the frame rate\n * is from 0.01 to 1000 frames per second.\n *\n * Note: An application might not be able to follow\n * high frame rate settings, either because the target platform is not fast enough or the player is\n * synchronized to the vertical blank timing of the display device (usually 60 Hz on LCD devices).\n * In some cases, a target platform might also choose to lower the maximum frame rate if it\n * anticipates high CPU usage.For content running in Adobe AIR, setting the frameRate property of one Stage\n * object changes the frame rate for all Stage objects (used by different NativeWindow objects).\n * @throws\tSecurityError Calling the frameRate property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n return AVMStage.instance().frameRate;\n },\n set: function (value) {\n AVMStage.instance().frameRate = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"fullScreenHeight\", {\n /**\n * Returns the height of the monitor that will be used when going to full screen size, if that state\n * is entered immediately. If the user has multiple monitors, the monitor that's used is the\n * monitor that most of the stage is on at the time.\n *\n * Note: If the user has the opportunity to move the browser from one\n * monitor to another between retrieving the value and going to full screen\n * size, the value could be incorrect. If you retrieve the value in an event handler that\n * sets Stage.displayState to StageDisplayState.FULL_SCREEN, the value will be\n * correct.This is the pixel height of the monitor and is the same as the\n * stage height would be if Stage.align is set to StageAlign.TOP_LEFT\n * and Stage.scaleMode is set to StageScaleMode.NO_SCALE.\n */\n get: function () {\n return window.screen.height;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"fullScreenSourceRect\", {\n /**\n * Sets the Flash runtime to scale a specific region of the stage to full-screen mode.\n * If available, the Flash runtime scales in hardware, which uses the graphics and video card on a user's computer,\n * and generally displays content more quickly than software scaling.\n *\n * When this property is set to a valid rectangle and the displayState property is set to full-screen mode,\n * the Flash runtime scales the specified area. The actual Stage size in pixels within ActionScript does not change.\n * The Flash runtime enforces a minimum limit for the size of the rectangle to accommodate the standard\n * \"Press Esc to exit full-screen mode\" message.\n * This limit is usually around 260 by 30 pixels but can vary on platform and Flash runtime version.\n * This property can only be set when the Flash runtime is not in full-screen mode.\n * To use this property correctly, set this property first,\n * then set the displayState property to full-screen mode, as shown in the code examples.To enable scaling,\n * set the fullScreenSourceRect property to a rectangle object:\n * <codeblock>\n *\n * // valid, will enable hardware scaling\n * stage.fullScreenSourceRect = new Rectangle(0,0,320,240);\n *\n * </codeblock>\n * To disable scaling, set the fullScreenSourceRect=null in ActionScript 3.0, and undefined in ActionScript 2.0.\n * <codeblock>\n *\n * stage.fullScreenSourceRect = null;\n *\n * </codeblock>\n * The end user also can select within Flash Player Display Settings to turn off hardware scaling,\n * which is enabled by default.\n * For more information, see www.adobe.com/go/display_settings.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get fullScreenSourceRect', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'set fullScreenSourceRect', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"fullScreenWidth\", {\n /**\n * Returns the width of the monitor that will be used when going to full screen size, if that state\n * is entered immediately. If the user has multiple monitors, the monitor that's used is the\n * monitor that most of the stage is on at the time.\n *\n * Note: If the user has the opportunity to move the browser from one\n * monitor to another between retrieving the value and going to full screen\n * size, the value could be incorrect. If you retrieve the value in an event handler that\n * sets Stage.displayState to StageDisplayState.FULL_SCREEN, the value will be\n * correct.This is the pixel width of the monitor and is the same as the stage width would be if\n * Stage.align is set to StageAlign.TOP_LEFT and\n * Stage.scaleMode is set to StageScaleMode.NO_SCALE.\n */\n get: function () {\n return window.screen.width;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"mouseLock\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get mouseLock', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'set mouseLock', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"quality\", {\n /**\n * A value from the StageQuality class that specifies which rendering quality is used.\n * The following are valid values:\n *\n * StageQuality.LOW—Low rendering quality. Graphics are not\n * anti-aliased, and bitmaps are not smoothed, but runtimes still use mip-mapping.StageQuality.\n * MEDIUM—Medium rendering quality. Graphics are\n * anti-aliased using a 2 x 2 pixel grid, bitmap smoothing is dependent on the Bitmap.smoothing setting.\n * Runtimes use mip-mapping. This setting is suitable for movies that do not contain text.\n * StageQuality.HIGH—High rendering quality. Graphics are anti-aliased\n * using a 4 x 4 pixel grid, and bitmap smoothing is dependent on the Bitmap.smoothing setting.\n * Runtimes use mip-mapping. This is the default rendering quality setting that Flash Player uses.\n * StageQuality.BEST—Very high rendering quality. Graphics are\n * anti-aliased using a 4 x 4 pixel grid. If Bitmap.smoothing is true the runtime uses a high quality\n * downscale algorithm that produces fewer artifacts\n * (however, using StageQuality.BEST with Bitmap.smoothing set to true\n * slows performance significantly and is not a recommended setting).\n * Higher quality settings produce better rendering of scaled bitmaps. However, higher\n * quality settings are computationally more expensive. In particular, when rendering scaled video,\n * using higher quality settings can reduce the frame rate.\n * In the desktop profile of Adobe AIR, quality can be set\n * to StageQuality.BEST or StageQuality.HIGH (and the default value\n * is StageQuality.HIGH). Attempting to set it to another value has no effect\n * (and the property remains unchanged). In the moble profile of AIR, all four quality settings\n * are available. The default value on mobile devices is StageQuality.MEDIUM.\n * For content running in Adobe AIR, setting the quality property of one Stage\n * object changes the rendering quality for all Stage objects (used by different NativeWindow objects).\n * Note: The operating system draws the device fonts,\n * which are therefore unaffected by the quality property.\n * @throws\tSecurityError Calling the quality property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n return AVMStage.instance().quality.toUpperCase();\n },\n set: function (value) {\n AVMStage.instance().quality = value.toLowerCase();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"scaleMode\", {\n /**\n * A value from the StageScaleMode class that specifies which scale mode to use.\n * The following are valid values:\n *\n * StageScaleMode.EXACT_FIT—The entire application is visible\n * in the specified area without trying to preserve the original aspect ratio.\n * Distortion can occur, and the application may appear stretched or compressed.\n * StageScaleMode.SHOW_ALL—The entire application is visible\n * in the specified area without distortion while maintaining the original aspect ratio of the application.\n * Borders can appear on two sides of the application.\n * StageScaleMode.NO_BORDER—The entire application fills the specified area,\n * without distortion but possibly with some cropping, while maintaining the original aspect ratio\n * of the application.\n * StageScaleMode.NO_SCALE—The entire application is fixed, so that\n * it remains unchanged even as the size of the player window changes. Cropping might\n * occur if the player window is smaller than the content.\n * @throws\tSecurityError Calling the scaleMode property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n return AVMStage.instance().scaleMode;\n },\n set: function (value) {\n AVMStage.instance().scaleMode = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"showDefaultContextMenu\", {\n /**\n * Specifies whether to show or hide the default items in the Flash runtime\n * context menu.\n *\n * If the showDefaultContextMenu property is set to true (the\n * default), all context menu items appear. If the showDefaultContextMenu property\n * is set to false, only the Settings and About... menu items appear.\n * @throws\tSecurityError Calling the showDefaultContextMenu property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get showDefaultContextMenu', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'set showDefaultContextMenu', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"softKeyboardRect\", {\n /**\n * The area of the stage that is currently covered by the software keyboard.\n *\n * The area has a size of zero (0,0,0,0) when the soft keyboard is not visible.\n * When the keyboard opens, the softKeyboardRect is set at the time the\n * softKeyboardActivate event is dispatched. If the keyboard changes size while open,\n * the runtime updates the softKeyboardRect property and dispatches an\n * additional softKeyboardActivate event.Note: On Android, the area covered by the keyboard is estimated when\n * the operating system does not provide the information necessary to determine the exact\n * area. This problem occurs in fullscreen mode and also when the keyboard opens in response to\n * an InteractiveObject receiving focus or invoking the requestSoftKeyboard() method.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get softKeyboardRect', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"stage3Ds\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get stage3Ds', '');\n return this._stage3Ds;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"stage\", {\n get: function () {\n // this override only works when called from ts\n // when called from avm, it will still call DisplayObject.stage,\n // because abc does not know stage overrides this getter\n return this;\n },\n set: function (value) {\n this._stage = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"stageFocusRect\", {\n /**\n * Specifies whether or not objects display a glowing border when they have focus.\n * @throws\tSecurityError Calling the stageFocusRect property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get stageFocusRect', '');\n return false;\n },\n set: function (on) {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'set stageFocusRect', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"stageHeight\", {\n /**\n * The current height, in pixels, of the Stage.\n *\n * If the value of the Stage.scaleMode property is set to StageScaleMode.NO_SCALE\n * when the user resizes the window, the Stage content maintains its size while the\n * stageHeight property changes to reflect the new height size of the screen area occupied by\n * the SWF file. (In the other scale modes, the stageHeight property always reflects the original\n * height of the SWF file.) You can add an event listener for the resize event and then use the\n * stageHeight property of the Stage class to determine the actual pixel dimension of the resized\n * Flash runtime window. The event listener allows you to control how\n * the screen content adjusts when the user resizes the window.\n * Air for TV devices have slightly different behavior than desktop devices\n * when you set the stageHeight property.\n * If the Stage.scaleMode\n * property is set to StageScaleMode.NO_SCALE and you set the stageHeight\n * property, the stage height does not change until the next\n * frame of the SWF.Note: In an HTML page hosting the SWF file,\n * both the object and embed tags' height attributes must be set to a percentage (such as 100%), not pixels. If the\n * settings are generated by JavaScript code, the height parameter of the AC_FL_RunContent()\n * method must be set to a percentage, too. This percentage is applied to the stageHeight\n * value.\n * @throws\tSecurityError Calling the stageHeight property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n return AVMStage.instance().stageHeight;\n },\n set: function (value) {\n AVMStage.instance().stageHeight = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"stageVideos\", {\n /**\n * A list of StageVideo objects available for playing external videos.\n *\n * You can use only a limited number of StageVideo objects at a time.\n * When a SWF begins to run, the number of available StageVideo objects depends on the platform\n * and on available hardware.\n * To use a StageVideo object, assign a member of the stageVideos Vector object to a StageVideo variable.\n * All StageVideo objects are displayed on the stage behind any display objects.\n * The StageVideo objects are displayed on the stage in the order they appear in\n * the stageVideos Vector object. For example, if the stageVideos Vector object contains\n * three entries:The StageVideo object in the 0 index of the stageVideos Vector object is\n * displayed behind all StageVideo objects.The StageVideo object at index 1 is displayed in front\n * of the StageVideo object at index 0.The StageVideo object at index 2 is displayed in front\n * of the StageVideo object at index 1.Use the StageVideo.depth property to change this ordering.\n * Note: AIR for TV devices support only one StageVideo object.\n */\n get: function () {\n // @todo any is StageVideo\n Debug.throwPIR('playerglobals/display/Stage', 'get stageVideos', '');\n return [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"stageWidth\", {\n /**\n * Specifies the current width, in pixels, of the Stage.\n *\n * If the value of the Stage.scaleMode property is set to StageScaleMode.NO_SCALE\n * when the user resizes the window, the Stage content maintains its defined size while the stageWidth\n * property changes to reflect the new width size of the screen area occupied by the SWF file. (In the other scale\n * modes, the stageWidth property always reflects the original width of the SWF file.) You can add an event\n * listener for the resize event and then use the stageWidth property of the Stage class to\n * determine the actual pixel dimension of the resized Flash runtime window.\n * The event listener allows you to control how\n * the screen content adjusts when the user resizes the window.\n * Air for TV devices have slightly different behavior than desktop devices\n * when you set the stageWidth property.\n * If the Stage.scaleMode\n * property is set to StageScaleMode.NO_SCALE and you set the stageWidth\n * property, the stage width does not change until the next\n * frame of the SWF.Note: In an HTML page hosting the SWF file,\n * both the object and embed tags' width attributes must be set to a percentage (such as 100%), not pixels. If the\n * settings are generated by JavaScript code, the width parameter of the AC_FL_RunContent()\n * method must be set to a percentage, too. This percentage is applied to the stageWidth\n * value.\n * @throws\tSecurityError Calling the stageWidth property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n return AVMStage.instance().stageWidth;\n },\n set: function (value) {\n AVMStage.instance().stageWidth = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"tabChildren\", {\n /**\n * Determines whether the children of the object are tab enabled. Enables or disables tabbing for the\n * children of the object. The default is true.\n * Note: Do not use the tabChildren property with Flex.\n * Instead, use the mx.core.UIComponent.hasFocusableChildren property.\n * @throws\tSecurityError Referencing the tabChildren property of a Stage object throws an exception for\n * any caller that is not in the same security sandbox as the Stage owner (the main SWF file).\n * To avoid this, the Stage owner can grant permission to the domain of the caller by calling\n * the Security.allowDomain() method or the Security.allowInsecureDomain() method.\n * For more information, see the \"Security\" chapter in the ActionScript 3.0 Developer's Guide.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get tabChildren', '');\n return false;\n },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"textSnapshot\", {\n /**\n * Returns a TextSnapshot object for this DisplayObjectContainer instance.\n * @throws\tIllegalOperationError Referencing the textSnapshot property of a Stage object throws an\n * exception because the Stage class does not implement this property. To avoid this, call the\n * textSnapshot property of a display object container other than the Stage object.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get textSnapshot', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"wmodeGPU\", {\n /**\n * Indicates whether GPU compositing is available and in use. The wmodeGPU value is trueonly\n * when all three of the following conditions exist:\n * GPU compositing has been requested.GPU compositing is available.\n * GPU compositing is in use.Specifically, the wmodeGPU property indicates one of the following:\n * GPU compositing has not been requested or is unavailable. In this case, the wmodeGPU property value is false.\n * GPU compositing has been requested (if applicable and available),\n * but the environment is operating in \"fallback mode\"\n * (not optimal rendering) due to limitations of the content.\n * In this case, the wmodeGPU property value is true.\n * GPU compositing has been requested (if applicable and available),\n * and the environment is operating in the best mode. In this case, the\n * wmodeGPU property value is also true.In other words, the wmodeGPU property identifies the capability\n * and state of the rendering environment. For runtimes\n * that do not support GPU compositing, such as AIR 1.5.2,\n * the value is always false, because (as stated above) the value is\n * true only when GPU compositing has been requested, is available, and is in use.\n * The wmodeGPU property is useful to determine, at runtime, whether or not GPU compositing is in use.\n * The value of wmodeGPU indicates if your content is going to be scaled by hardware, or not,\n * so you can present graphics at the correct size.\n * You can also determine if you're rendering in a fast path or not,\n * so that you can adjust your content complexity accordingly.For Flash Player in a browser,\n * GPU compositing can be requested by the value of gpu for the wmode HTML\n * parameter in the page hosting the SWF file. For other configurations,\n * GPU compositing can be requested in the header of a SWF file\n * (set using SWF authoring tools).However,\n * the wmodeGPU property does not identify the current rendering performance.\n * Even if GPU compositing is \"in use\" the rendering\n * process might not be operating in the best mode. To adjust your content for optimal rendering,\n * use a Flash runtime debugger version,\n * and set the DisplayGPUBlendsetting in your mm.cfg file.Note:\n * This property is always false when referenced\n * from ActionScript that runs before the runtime performs its first rendering\n * pass. For example, if you examine wmodeGPU from a script in Frame 1 of\n * Adobe Flash Professional, and your SWF file is the first SWF file loaded in a new\n * instance of the runtime, then the wmodeGPU value is false.\n * To get an accurate value, wait until at least one rendering pass\n * has occurred. If you write an event listener for the\n * exitFrame event of any DisplayObject, the wmodeGPU value at\n * is the correct value.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'get wmodeGPU', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"accessibilityProperties\", {\n //empty functions to prevent inherited actions\n set: function (value) { } //todo: any is AccessibilityImplementation\n ,\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"alpha\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"blendMode\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"cacheAsBitmap\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"contextMenu\", {\n set: function (value) { } // todo: any is ContextMenu\n ,\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"filters\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"focusRect\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"mask\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"mouseChildren\", {\n get: function () { return false; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"mouseEnabled\", {\n get: function () { return false; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"numChildren\", {\n get: function () { return 0; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"width\", {\n get: function () {\n var _a;\n var descriptor = Object.getOwnPropertyDescriptor(DisplayObject.prototype, \"width\");\n return (_a = descriptor === null || descriptor === void 0 ? void 0 : descriptor.get) === null || _a === void 0 ? void 0 : _a.call(this);\n },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"height\", {\n get: function () { return 0; },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"opaqueBackground\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"name\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"rotation\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"rotationX\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"rotationY\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"rotationZ\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"scale9Grid\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"scaleX\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"scaleY\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"scaleZ\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"scrollRect\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"tabEnabled\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"tabIndex\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"transform\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"visible\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"x\", {\n get: function () {\n return this.adaptee.x;\n },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"y\", {\n get: function () {\n return this.adaptee.y;\n },\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Stage.prototype, \"z\", {\n set: function (value) { },\n enumerable: false,\n configurable: true\n });\n // 80pro: todo: this was added because otherwise avm2 cant find these on Stage\n //\tbut it should find them anyway, because its inheriting from Sprite...\n //____________________________________\n Stage.prototype.addChild = function (child) {\n child.dispatch_ADDED_TO_STAGE();\n var returnChild = _super.prototype.addChild.call(this, child);\n child.adaptee.hasDispatchedAddedToStage = true;\n child.dispatchStaticEvent(Event.ADDED_TO_STAGE, child);\n return returnChild;\n };\n Stage.prototype.addChildAt = function (child, index) {\n child.dispatch_ADDED_TO_STAGE();\n var returnChild = _super.prototype.addChildAt.call(this, child, index);\n child.adaptee.hasDispatchedAddedToStage = true;\n child.dispatchStaticEvent(Event.ADDED_TO_STAGE, child);\n return returnChild;\n };\n Stage.prototype.removeChildAt = function (index) {\n return _super.prototype.removeChildAt.call(this, index);\n };\n Stage.prototype.swapChildrenAt = function (index, index2) { return _super.prototype.swapChildrenAt.call(this, index, index2); };\n Stage.prototype.setChildIndex = function (child, index) { return null; };\n Stage.prototype.addEventListener = function (type, listener, useCapture, priority, useWeakReference) {\n if (useCapture === void 0) { useCapture = false; }\n if (priority === void 0) { priority = 0; }\n if (useWeakReference === void 0) { useWeakReference = false; }\n _super.prototype.addEventListener.call(this, type, listener, useCapture = false, priority, useWeakReference);\n };\n Stage.prototype.hasEventListener = function (type) {\n return _super.prototype.hasEventListener.call(this, type);\n };\n Stage.prototype.willTrigger = function () { return _super.prototype.willTrigger.call(this); };\n Stage.prototype.dispatchEvent = function (event) {\n return _super.prototype.dispatchEvent.call(this, event);\n };\n Object.defineProperty(Stage.prototype, \"loaderInfo\", {\n //____________________________________\n get: function () {\n return this.getChildAt(0).loaderInfo;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Calling the invalidate() method signals Flash runtimes to alert display objects\n * on the next opportunity it has to render the display list (for example, when the playhead\n * advances to a new frame). After you call the invalidate() method, when the display\n * list is next rendered, the Flash runtime sends a render event to each display object that has\n * registered to listen for the render event. You must call the invalidate()\n * method each time you want the Flash runtime to send render events.\n *\n * The render event gives you an opportunity to make changes to the display list\n * immediately before it is actually rendered. This lets you defer updates to the display list until the\n * latest opportunity. This can increase performance by eliminating unnecessary screen updates.\n * The render event is dispatched only to display objects that are in the same\n * security domain as the code that calls the stage.invalidate() method,\n * or to display objects from a security domain that has been granted permission via the\n * Security.allowDomain() method.\n */\n Stage.prototype.invalidate = function () {\n this._sendEventRender = true;\n };\n /**\n * Determines whether the Stage.focus property returns null for\n * security reasons.\n * In other words, isFocusInaccessible returns true if the\n * object that has focus belongs to a security sandbox to which the SWF file does not have access.\n * @return\ttrue if the object that has focus belongs to a security sandbox to which\n * the SWF file does not have access.\n */\n Stage.prototype.isFocusInaccessible = function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Stage', 'isFocusInaccessible', '');\n return false;\n };\n return Stage;\n}(DisplayObjectContainer));\nexport { Stage };\n","import { __extends } from \"tslib\";\nimport { ASObject, Errors, axCoerceString } from '@awayfl/avm2';\nvar URLVariables = /** @class */ (function (_super) {\n __extends(URLVariables, _super);\n function URLVariables(source) {\n if (source === void 0) { source = null; }\n var _this = _super.call(this) || this;\n _this._ignoreDecodingErrors = false;\n source && _this.decode(source);\n return _this;\n }\n // class not has traits, and will crash\n URLVariables.prototype.axSetProperty = function (mn, value) {\n this[mn.getMangledName()] = value;\n };\n URLVariables.prototype.decode = function (source) {\n source = axCoerceString(source);\n var variables = source.split('&');\n for (var i = 0; i < variables.length; i++) {\n var p = variables[i];\n var j = p.indexOf('=');\n if (j < 0) {\n if (this._ignoreDecodingErrors) {\n j = p.length;\n }\n else {\n this.sec.throwError('Error', Errors.DecodeParamError);\n }\n }\n var name_1 = unescape(p.substring(0, j).split('+').join(' '));\n var value = unescape(p.substring(j + 1).split('+').join(' '));\n var currentValue = this.axGetPublicProperty(name_1);\n if (typeof currentValue === 'undefined') {\n this.axSetPublicProperty(name_1, value);\n }\n else if (Array.isArray(currentValue)) {\n currentValue.push(value);\n }\n else {\n this.axSetPublicProperty(name_1, [currentValue, value]);\n }\n }\n };\n URLVariables.prototype.toString = function () {\n var pairs = [];\n var keys = this.axGetEnumerableKeys();\n for (var i = 0; i < keys.length; i++) {\n var name_2 = keys[i].split(' ').join('+');\n var value = this.axGetPublicProperty(name_2);\n name_2 = escape(name_2).split(' ').join('+');\n if (Array.isArray(value)) {\n for (var j = 0; j < value.length; j++) {\n pairs.push(name_2 + '=' + escape(value[j]));\n }\n }\n else {\n pairs.push(name_2 + '=' + escape(value));\n }\n }\n return pairs.join('&');\n };\n URLVariables.classInitializer = null;\n URLVariables.classSymbols = null; // [];\n URLVariables.instanceSymbols = null;\n return URLVariables;\n}(ASObject));\nexport { URLVariables };\n","import { __extends } from \"tslib\";\nimport { URLRequest as URLRequestAway, URLVariables as URLVariablesAway } from '@awayjs/core';\nimport { ASObject, axCoerceString, transformJSValueToAS, transformASValueToJS } from '@awayfl/avm2';\nimport { URLVariables } from './URLVariables';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: URLRequest\nvar URLRequest = /** @class */ (function (_super) {\n __extends(URLRequest, _super);\n function URLRequest(url) {\n if (url === void 0) { url = null; }\n var _this = _super.call(this) || this;\n _this._adaptee = new URLRequestAway(url);\n return _this;\n }\n Object.defineProperty(URLRequest.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n set: function (value) {\n this._adaptee = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(URLRequest.prototype, \"url\", {\n get: function () {\n return this._adaptee.url;\n },\n set: function (value) {\n value = axCoerceString(value);\n this._adaptee.url = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(URLRequest.prototype, \"data\", {\n get: function () {\n var adapteeData = this._adaptee.data;\n var returnData = this._adaptee.data;\n if (adapteeData instanceof URLVariablesAway) {\n returnData = new URLVariables();\n for (var key in this._adaptee.data.variables) {\n returnData['$Bg' + key] = this._adaptee.data.variables[key];\n }\n }\n else if (typeof adapteeData === 'object') {\n returnData = transformJSValueToAS(this.sec, adapteeData, true);\n }\n return this._data = returnData;\n },\n set: function (value) {\n this._data = value;\n this.mapToJSData();\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Query data for request, taht mapped onto JS, this is because we can't convert data to JS in assigment\n * data is object, and AS sometimes fill data after assigment\n */\n URLRequest.prototype.mapToJSData = function () {\n var value = this._data;\n var jsValue;\n if (this.sec.flash.net.URLVariables.axIsType(value)) {\n jsValue = new URLVariablesAway();\n for (var key in value) {\n if (key.indexOf('$Bg') == 0 && !(typeof value[key] === 'function')) {\n jsValue.variables[key.replace('$Bg', '')] = value[key];\n }\n }\n }\n else {\n jsValue = transformASValueToJS(this.sec, value, true);\n }\n this._adaptee.data = jsValue;\n return jsValue;\n };\n Object.defineProperty(URLRequest.prototype, \"method\", {\n get: function () {\n return this._adaptee.method;\n },\n set: function (value) {\n this._adaptee.method = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(URLRequest.prototype, \"contentType\", {\n get: function () {\n console.log('TODO: URLRequest.contentType');\n return ''; //this._adaptee.contentType;\n },\n set: function (value) {\n console.log('TODO: URLRequest.contentType');\n //this._adaptee.contentType = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(URLRequest.prototype, \"requestHeaders\", {\n get: function () {\n console.log('TODO: URLRequest.requestHeaders');\n return null; //this._adaptee.contentType;\n },\n set: function (value) {\n console.log('TODO: URLRequest.requestHeaders');\n //this._adaptee.contentType = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(URLRequest.prototype, \"digest\", {\n get: function () {\n console.log('TODO: URLRequest.digest');\n return null; //this._adaptee.contentType;\n },\n set: function (value) {\n console.log('TODO: URLRequest.digest');\n //this._adaptee.contentType = value;\n },\n enumerable: false,\n configurable: true\n });\n return URLRequest;\n}(ASObject));\nexport { URLRequest };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * The Clipboard class provides a container for transferring data and objects through the clipboard.\n * The operating system clipboard can be accessed through the static\n * <codeph class=\"+ topic/ph pr-d/codeph \">generalClipboard</codeph> property.\n *\n * <p class=\"- topic/p \">A Clipboard object can contain the same information in more than one format.\n * By supplying information in multiple formats, you increase the chances that another\n * application will be able to use that information. Add data to a Clipboard object\n * with the <codeph class=\"+ topic/ph pr-d/codeph \">setData()</codeph>\n * or <codeph class=\"+ topic/ph pr-d/codeph \">setDataHandler()</codeph> method.\n * </p><p class=\"- topic/p \">The standard formats are:</p><ul class=\"- topic/ul \">\n * <li class=\"- topic/li \">BITMAP_FORMAT: a BitmapData object (AIR only)</li><li class=\"- topic/li \">\n * FILE_LIST_FORMAT: an array of File objects (AIR only)</li>\n * <li class=\"- topic/li \">HTML_FORMAT: HTML-formatted string data</li><li class=\"- topic/li \">\n * TEXT_FORMAT: string data</li><li class=\"- topic/li \">RICH_TEXT_FORMAT:\n * a ByteArray containing Rich Text Format data</li><li class=\"- topic/li \">\n * URL_FORMAT: a URL string (AIR only)</li></ul><p class=\"- topic/p \">\n * These constants for the names of the standard formats are defined in the ClipboardFormats class.</p>\n * <p class=\"- topic/p \">When a transfer to or from the operating system occurs,\n * the standard formats are automatically translated between\n * <ph class=\"- topic/ph \">ActionScript</ph> data types and the native operating system clipboard types.</p>\n * <p class=\"- topic/p \">You can use application-defined formats to add\n * <ph class=\"- topic/ph \">ActionScript</ph> objects to a\n * Clipboard object. If an object is serializable, both a reference and a clone\n * of the object can be made available. Object references are valid only within the\n * originating application.</p><p class=\"- topic/p \">\n * When it is computationally expensive to convert the information to be transferred into a\n * particular format, you can supply the name of a function that performs the conversion.\n * The function is called if and only if that format is read by the receiving component or application.\n * Add a deferred rendering function to a Clipboard object with the\n * codeph class=\"+ topic/ph pr-d/codeph \">setDataHandler()</codeph> method.\n * Note that in some cases,\n * the operating system calls the function before a drop occurs. For example, when you use a handler function to\n * provide the data for a file dragged from an AIR application to the file system, the operating\n * system calls the data handler function as soon as the drag gesture leaves the AIR application—typically resulting\n * in an undesireable pause as the file data is downloaded or created.</p><p class=\"- topic/p \">\n * <b class=\"+ topic/ph hi-d/b \">Note for AIR applications:</b>\n * The clipboard object referenced by the event objects dispatched for HTML\n * drag-and-drop and copy-and-paste events are not the same type as the AIR Clipboard object.\n * The JavaScript clipboard object is described in the AIR developer's guide.</p><p class=\"- topic/p \">\n * <b class=\"+ topic/ph hi-d/b \">\n * Note for Flash Player applications:</b> In Flash Player 10, a paste operation from the clipboard first\n * requires a user event (such as a keyboard shortcut for the Paste command or a mouse click on the Paste command\n * in a context menu). <codeph class=\"+ topic/ph pr-d/codeph \">Clipboard.getData()</codeph>\n * will return the contents of the clipboard only if the InteractiveObject has received\n * and is acting on a paste event. Calling <codeph class=\"+ topic/ph pr-d/codeph \">\n * Clipboard.getData()</codeph> under any other circumstances\n * will be unsuccessful. The same restriction applies in AIR for content outside the\n * application sandbox.</p><p class=\"- topic/p \">\n * On Linux, clipboard data does not persist when an AIR application closes.</p>\n */\nvar Clipboard = /** @class */ (function (_super) {\n __extends(Clipboard, _super);\n /**\n * Creates an empty Clipboard object.\n *\n * Create Clipboard objects to hold the data of a native drag-and-drop gesture in Adobe AIR. Clipboard\n * objects can be used for only one drag-and-drop gesture;\n * they cannot be reused.Do not create a Clipboard object for copy-and-paste operations. Use the single\n * Clipboard.generalClipboard object instead.\n * @internal\tthe example located at examples\\Clipboard.clipboard.1.as\n * should not be displayed with FP10 docs because FP10 will console.log an error when new Clipboard() is called.\n * @throws\tIllegalOperationError new Clipboard() is not supported in Flash Player,\n * since only the operating system clipboard can be used in Flash Player.\n * For copy-and-paste operations involving the operating system clipboard,\n * use the Clipboard.generalClipboard object rather than creating a new Clipboard object.\n * Does not console.log an error in an AIR application.\n */\n function Clipboard() {\n return _super.call(this) || this;\n }\n Object.defineProperty(Clipboard.prototype, \"formats\", {\n /**\n * An array of strings containing the names of the data formats available\n * in this Clipboard object.\n *\n * String constants for the names of the standard formats are defined in the\n * ClipboardFormats class. Other, application-defined, strings may also be used as format\n * names to transfer data as an object.\n */\n get: function () {\n console.log('formats not implemented yet in flash/Clipboard');\n return [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Clipboard, \"generalClipboard\", {\n /**\n * The operating system clipboard.\n *\n * Any data pasted to the system clipboard is available to other\n * applications. This may include insecure remote code running in\n * a web browser.Note: In Flash Player 10 applications, a paste operation from the clipboard first\n * requires a user event (such as a keyboard shortcut for the Paste command or a mouse click on the Paste command\n * in a context menu). Clipboard.getData()\n * will return the contents of the clipboard only if the InteractiveObject has received\n * and is acting on a paste event. Calling Clipboard.getData() under any other circumstances\n * will be unsuccessful. The same restriction applies in AIR for content outside the\n * application sandbox.The generalClipboard object is created automatically.\n * You cannot assign another instance of a Clipboard to this property.\n * Instead, you use the getData() and setData()\n * methods to read and write data to the existing object.\n * You should always clear the clipboard before writing new data to it\n * to ensure that old data in all formats is erased.\n * The generalClipboard object cannot be passed to the AIR NativeDragManager.\n * Create a new Clipboard object for native drag-and-drop operations in an AIR application.\n */\n get: function () {\n console.log('generalClipboard not implemented yet in flash/Clipboard');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Deletes all data representations from this Clipboard object.\n * @throws\tSecurityError Call to generalClipboard.clear() is not permitted in this context.\n * In Flash Player, you can only call this method successfully during the processing of a user event\n * (as in a key press or mouse click). In AIR, this restriction only applies to content outside of the\n * application security sandbox.\n */\n Clipboard.prototype.clear = function () {\n console.log('clear not implemented yet in flash/Clipboard');\n };\n /**\n * Deletes the data representation for the specified format.\n * @param\tformat\tThe data format to remove.\n * @throws\tSecurityError Call to generalClipboard.clearData() is not permitted in this context.\n * In Flash Player, you can only call this method successfully during the processing of a user event\n * (as in a key press or mouse click). In AIR, this restriction only applies to content outside of the\n * application security sandbox.\n */\n Clipboard.prototype.clearData = function (format) {\n console.log('clearData not implemented yet in flash/Clipboard');\n };\n /**\n * Gets the clipboard data if data in the specified format is present.\n *\n * Flash Player requires that the getData() be called in a paste event handler.\n * In AIR, this restriction only applies to content outside of the application security sandbox.\n * When a standard data format is accessed, the data is returned as a new\n * object of the corresponding Flash data type.When an application-defined format is accessed, the value of the\n * transferMode parameter determines whether a reference to the original\n * object or an anonymous object containing a serialized copy of the original\n * object is returned. When an originalPreferred or clonePreferred mode is specified,\n * Flash Player or AIR returns the alternate version if the preferred version is not available.\n * When an originalOnly or cloneOnly mode is specified, Flash Player or AIR returns\n * null if the requested version is not available.\n * @param\tformat\tThe data format to return. The format string can contain one of the standard\n * names defined in the ClipboardFormats class, or an application-defined name.\n * @param\ttransferMode\tSpecifies whether to return a reference or serialized copy\n * when an application-defined data format is accessed. The value must be one\n * of the names defined in the ClipboardTransferMode class. This value is\n * ignored for the standard data formats; a copy is always returned.\n * @return\tAn object of the type corresponding to the data format.\n * @throws\tError transferMode is not one of the names defined in the ClipboardTransferMode class.\n * @throws\tIllegalOperationError The Clipboard object requested is no longer in scope (AIR only).\n * @throws\tSecurityError Reading from or writing to the clipboard is not permitted in this context.\n * In Flash Player, you can only call this method successfully during the processing of a paste event.\n * In AIR, this restriction only applies to content outside of the application security sandbox.\n */\n Clipboard.prototype.getData = function (format, transferMode) {\n if (transferMode === void 0) { transferMode = 'originalPreferred'; }\n console.log('getData not implemented yet in flash/Clipboard');\n return null;\n };\n /**\n * Checks whether data in the specified format exists in this Clipboard object.\n *\n * Use the constants in the ClipboardFormats class to reference the standard format names.\n * @param\tformat\tThe format type to check.\n * @return\ttrue, if data in the specified format is present.\n * @throws\tIllegalOperationError The Clipboard object requested is no longer in scope.\n * @throws\tSecurityError Reading from or writing to the clipboard is not permitted in this context.\n */\n Clipboard.prototype.hasFormat = function (format) {\n console.log('hasFormat not implemented yet in flash/Clipboard');\n return false;\n };\n /**\n * Adds a representation of the information to be transferred in the specified data format.\n *\n * In the application sandbox of Adobe AIR, setData() can be called anytime. In other\n * contexts, setData() can only be called in response to a user-generated event such as\n * a key press or mouse click.Different representations of the same information can be added to the clipboard as\n * different formats, which increases the ability of other components or applications to\n * make use of the available data.\n * For example, an image could be added as bitmap data for use by image editing applications,\n * as a URL, and as an encoded PNG file for transfer to the native file system.\n * The data parameter must be the appropriate data type for the specified\n * format:FormatTypeDescriptionClipboardFormats.TEXT_FORMATStringstring dataClipboardFormats.\n * HTML_FORMATStringHTML string dataClipboardFormats.URL_FORMATStringURL string (AIR only)\n * ClipboardFormats.RICH_TEXT_FORMATByteArrayRich Text Format dataClipboardFormats.\n * BITMAP_FORMATBitmapDatabitmap data (AIR only)ClipboardFormats.\n * FILE_LIST_FORMATarray of Filean array of files (AIR only)Custom format name\n * bject reference and serialized cloneCustom format names cannot begin with \"air:\" or \"flash:\".\n * To prevent name collisions\n * when using custom formats, you may want to use your application ID or a package name as a\n * prefix to the format, such as \"com.example.applicationName.dataPacket\".\n * When transferring within or between applications, the serializable parameter\n * determines whether both a reference and a copy are available, or whether only a reference to\n * an object is available. Set serializable to true to make both the reference\n * and a copy of the data object available. Set serializable to false\n * to make only the object reference available. Object references are valid only within the current\n * application so setting serializable to false also means that the data\n * in that format is not available to other Flash Player or AIR applications. A component can choose to get\n * the reference or the copy of the object by setting the appropriate clipboard transfer mode\n * when accessing the data for that format.Note:\n * The standard formats are always converted to native formats when data is pasted or\n * dragged outside a supported application, so the value of the serializable\n * parameter does not affect the availability of data in the standard formats to non-Flash-based applications.\n * To defer rendering of the data for a format, use the setDataHandler() method instead.\n * If both the setData() and the setDataHandler() methods are used to add a\n * data representation with the same format name, then the handler function will never be called.\n * Note: On Mac OS, when you set the format parameter to ClipboardFormats.URL_FORMAT,\n * the URL is transferred only if it is a valid URL. Otherwise, the Clipboard object is emptied (and calling\n * getData() returns null).\n * @param\tformat\tThe format of the data.\n * @param\tdata\tThe information to add.\n * @param\tserializable\tSpecify true for objects that can be serialized (and deserialized).\n * @return\ttrue if the data was succesfully set;\n * @throws\tIllegalOperationError The Clipboard object requested is no longer in scope (which can occur\n * with clipboards created for drag-and-drop operations).\n * @throws\tSecurityError Reading from or writing to the clipboard is not permitted in this context.\n * In Flash Player, you can only call this method successfully during the processing of a user event\n * (as in a key press or mouse click). In AIR, this restriction only applies to content outside of the\n * application security sandbox.\n * @throws\tTypeError format or data is null.\n */\n Clipboard.prototype.setData = function (format, data, serializable) {\n if (serializable === void 0) { serializable = true; }\n console.log('setData not implemented yet in flash/Clipboard');\n return false;\n };\n /**\n * Adds a reference to a handler function that produces the data to be transfered.\n *\n * Use a handler function to defer creation or rendering of the data until it is actually accessed.\n * The handler function must return the appropriate data type for the specified format:\n * FormatReturn TypeClipboardFormats.TEXT_FORMATStringClipboardFormats.HTML_FORMAT\n * StringClipboardFormats.URL_FORMATString (AIR only)ClipboardFormats.RICH_TEXT_FORMAT\n * ByteArrayClipboardFormats.BITMAP_FORMATBitmapData (AIR only)ClipboardFormats.\n * FILE_LIST_FORMATArray of File (AIR only)ClipboardFormats.\n * FILE_PROMISE_LIST_FORMATArray of File (AIR only)Custom format nameNon-void\n * The handler function is called when and only when the data in the specified format is read.\n * Note that in some cases,\n * the operating system calls the function before a drop occurs. For example, when you use a handler function to\n * provide the data for a file dragged from an AIR application to the file system, the operating\n * system calls the data handler function as soon as the drag gesture leaves the AIR application—typically resulting\n * in an undesireable pause as the file data is downloaded or created.\n * You can use a URLFilePromise for this purpose instead.\n * Note that the underlying data can change between the time the handler is added and the time the data is\n * read unless your application takes steps to protect the data.\n * The behavior that occurs when data on the clipboard represented by a handler function is read more than once\n * is not guaranteed. The clipboard might return the data produced by the first function call or it might call the\n * function again. Do not rely on either behavior.\n * In the application sandbox of Adobe AIR, setDataHandler() can be called anytime. In other\n * contexts, setDataHandler() can only be called in response to a user-generated event such as\n * a key press or mouse click.To add data directly to this Clipboard object, use the setData() method instead.\n * If both the setData() and the setDataHandler() methods are called with the same\n * format name, then the handler function is never called.Note:\n * On Mac OS, when you set the format parameter to ClipboardFormats.URL_FORMAT,\n * the URL is transferred only if the handler function returns a valid URL.\n * Otherwise, the Clipboard object is emptied\n * (and calling getData() returns null).\n * @param\tformat\tA function that returns the data to be transferred.\n * @param\thandler\tThe format of the data.\n * @param\tserializable\tSpecify true if the object returned by handler\n * can be serialized (and deserialized).\n * @return\ttrue if the handler was succesfully set;\n * false otherwise.\n * @throws\tTypeError format or handler is null.\n * @throws\tIllegalOperationError The Clipboard object requested is no longer in scope (AIR only).\n * @throws\tSecurityError Reading from or writing to the clipboard is not permitted in this context.\n * In Flash Player, you can only call this method successfully during the processing of a user event\n * (such as a key press or mouse click). In AIR, this restriction only applies to content outside of the\n * application security sandbox.\n */\n Clipboard.prototype.setDataHandler = function (format, handler, serializable) {\n if (serializable === void 0) { serializable = true; }\n console.log('setDataHandler not implemented yet in flash/Clipboard');\n return false;\n };\n return Clipboard;\n}(ASObject));\nexport { Clipboard };\n","/**\n * The ClipboardFormats class defines constants for the names of the standard data formats\n * used with the Clipboard class.\n * Flash Player 10 only supports TEXT_FORMAT, RICH_TEXT_FORMAT, and HTML_FORMAT.\n * @internal\tClipboard, ClipboardFormats and ClipboardTransferMode were all added to AIR 1.0.\n * These are also being added, with some exceptions listed in this file, to FP10.\n */\nimport { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar ClipboardFormats = /** @class */ (function (_super) {\n __extends(ClipboardFormats, _super);\n function ClipboardFormats() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Image data (AIR only).\n */\n ClipboardFormats.BITMAP_FORMAT = 'air:bitmap';\n /**\n * An array of files (AIR only).\n */\n ClipboardFormats.FILE_LIST_FORMAT = 'air:file list';\n /**\n * File promise list (AIR only).\n */\n ClipboardFormats.FILE_PROMISE_LIST_FORMAT = 'air:file promise list';\n /**\n * HTML data.\n */\n ClipboardFormats.HTML_FORMAT = 'air:html';\n /**\n * Rich Text Format data.\n */\n ClipboardFormats.RICH_TEXT_FORMAT = 'air:rtf';\n /**\n * String data.\n */\n ClipboardFormats.TEXT_FORMAT = 'air:text';\n /**\n * A URL string (AIR only).\n */\n ClipboardFormats.URL_FORMAT = 'air:url';\n return ClipboardFormats;\n}(ASObject));\nexport { ClipboardFormats };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar BitmapDataChannel = /** @class */ (function (_super) {\n __extends(BitmapDataChannel, _super);\n function BitmapDataChannel() {\n return _super.call(this) || this;\n }\n // Called whenever the class is initialized.\n BitmapDataChannel.classInitializer = null;\n // List of static symbols to link.\n BitmapDataChannel.classSymbols = null; // [];\n // List of instance symbols to link.\n BitmapDataChannel.instanceSymbols = null; // [];\n // JS -> AS Bindings\n BitmapDataChannel.ALPHA = 8;\n BitmapDataChannel.BLUE = 4;\n BitmapDataChannel.GREEN = 2;\n BitmapDataChannel.RED = 1;\n return BitmapDataChannel;\n}(ASObject));\nexport { BitmapDataChannel };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { axCoerceString } from '@awayjs/graphics';\n// Class: FrameLabel\nvar FrameLabel = /** @class */ (function (_super) {\n __extends(FrameLabel, _super);\n function FrameLabel(name, frame /*int*/) {\n var _this = _super.call(this) || this;\n _this._name = axCoerceString(name);\n _this._frame = frame | 0;\n return _this;\n }\n Object.defineProperty(FrameLabel.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FrameLabel.prototype, \"frame\", {\n get: function () {\n return this._frame;\n },\n enumerable: false,\n configurable: true\n });\n FrameLabel.prototype.clone = function () {\n return new FrameLabel(this._name, this._frame);\n };\n // Called whenever the class is initialized.\n FrameLabel.classInitializer = null;\n return FrameLabel;\n}(EventDispatcher));\nexport { FrameLabel };\n","import { __extends } from \"tslib\";\nimport { Graphics as AwayGraphics, GraphicsPath as AwayGraphicsPath, GraphicsStrokeStyle, GraphicsFillStyle, GraphicsEndFill as AwayGraphicsEndFill, SolidFillStyle, GradientFillStyle, BitmapFillStyle, CapsStyle as AwayCapsStyle, JointStyle as AwayJointStyle, } from '@awayjs/graphics';\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug, Matrix as AwayMatrix } from '@awayjs/core';\nimport { MovieClip as AwayMovieClip } from '@awayjs/scene';\n// AS3 caps and joints are strings, which @awayjs/graphics takes as numbers\nvar CAPS_STYLES = {\n none: AwayCapsStyle.NONE,\n round: AwayCapsStyle.ROUND,\n square: AwayCapsStyle.SQUARE\n};\nvar JOINT_STYLES = {\n round: AwayJointStyle.ROUND,\n bevel: AwayJointStyle.BEVEL,\n miter: AwayJointStyle.MITER\n};\nfunction styleName(styles, value) {\n for (var name_1 in styles) {\n if (styles[name_1] === value)\n return name_1;\n }\n return 'round';\n}\nvar Graphics = /** @class */ (function (_super) {\n __extends(Graphics, _super);\n function Graphics(adaptee) {\n if (adaptee === void 0) { adaptee = null; }\n var _this = _super.call(this) || this;\n /**\n * True once clear() has given this wrapper its own private AwayGraphics.\n * Reset whenever the wrapper is retargeted to another AwayGraphics.\n */\n _this._ownsAdaptee = false;\n _this._setAdaptee(adaptee);\n return _this;\n }\n /**\n * Point this wrapper at a (possibly different) AwayGraphics. Called by the\n * owning Shape/Sprite when its AwayJS graphics object changes, so the AS3\n * Graphics instance stays the same for the lifetime of its display object.\n *\n * Note: this wrapper never stores a reference to its owning display object.\n * Timeline shape symbols share one AwayGraphics between all instances, and\n * that AwayGraphics lives as long as the symbol; anything reachable from it\n * (including its adapter) must not reach back into a display list.\n */\n Graphics.prototype._setAdaptee = function (adaptee) {\n var next = adaptee || new AwayGraphics();\n var prev = this._adaptee;\n if (prev === next)\n return;\n if (prev && prev._adapter === this)\n prev.adapter = null;\n this._adaptee = next;\n this._ownsAdaptee = false;\n next.adapter = this;\n };\n Graphics.prototype.dispose = function () {\n };\n Object.defineProperty(Graphics.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Graphics.FromData = function (data, loaderInfo) {\n var graphics = new this.sec.flash.display.Graphics();\n return graphics;\n };\n /*\n public getGraphicsData(): ShapeData {\n return this._graphicsData;\n }\n\n public getUsedTextures(): BitmapData[] {\n return this._textures;\n }*/\n Graphics.prototype.clear = function () {\n this._detachSharedGraphics();\n this.adaptee.clear();\n };\n /**\n * Copy-on-write: clear() on one instance must not wipe an AwayGraphics that\n * is also used by other instances (timeline shape symbols share one\n * AwayGraphics per symbol and keep it in the timeline graphics pool).\n * Give the owning display object a fresh, private AwayGraphics instead and\n * leave the shared original intact.\n */\n Graphics.prototype._detachSharedGraphics = function () {\n var current = this._adaptee;\n // An owned graphics can still pick up shared shapes and a\n // sourceGraphics fallback through copyFrom(), so detach it again then.\n if (!current || (this._ownsAdaptee && !current.sourceGraphics))\n return;\n var owners = 0;\n current.forEachOwner(function () { owners++; });\n var owner = this._findOwner();\n var awayOwner = owner ? owner.adaptee : null;\n if (!awayOwner) {\n // Orphaned wrapper: never clear an AwayGraphics that something\n // else still displays or that shares shapes with a copy source,\n // otherwise clear in place.\n if (owners > 0 || current.sourceGraphics)\n this._takePrivateAdaptee(new AwayGraphics());\n return;\n }\n // MovieClip graphics are per instance (copyTo clones are caught by\n // sourceGraphics). An AwayJS Sprite owner may be a timeline shape holding\n // the symbol's shared AwayGraphics even with a single owner, so it is\n // detached once on its first clear(). Script-created Shape/Sprite also\n // use an AwayJS Sprite adaptee, so they pay one extra AwayGraphics here.\n var shared = owners > 1\n || !!current.sourceGraphics\n || !awayOwner.isAsset(AwayMovieClip);\n if (!shared)\n return;\n var fresh = new AwayGraphics();\n // The owner's graphics setter calls updateGraphics() on the AS3 owner,\n // which retargets this same wrapper to the fresh graphics.\n awayOwner.graphics = fresh;\n this._takePrivateAdaptee(fresh);\n };\n Graphics.prototype._takePrivateAdaptee = function (fresh) {\n this._setAdaptee(fresh);\n this._ownsAdaptee = true;\n };\n /**\n * Sets a solid color and opacity as the fill for subsequent drawing commands.\n *\n * @see\n * http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Graphics.html#beginFill%28%29\n * @param color\n * @param alpha While any Number is a valid input, the value is clamped to [0,1] and then scaled\n * to an integer in the interval [0,0xff].\n */\n Graphics.prototype.beginFill = function (color /*uint*/, alpha) {\n if (alpha === void 0) { alpha = 1; }\n if (alpha < 0)\n alpha = 0;\n if (alpha > 1)\n alpha = 1;\n this.adaptee.beginFill(color, alpha);\n };\n Graphics.prototype.beginGradientFill = function (type, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio) {\n if (matrix === void 0) { matrix = null; }\n if (spreadMethod === void 0) { spreadMethod = 'pad'; }\n if (interpolationMethod === void 0) { interpolationMethod = 'rgb'; }\n if (focalPointRatio === void 0) { focalPointRatio = 0; }\n this.adaptee.beginGradientFill(type, colors.value, alphas.value, ratios.value, matrix === null || matrix === void 0 ? void 0 : matrix.adaptee, spreadMethod, interpolationMethod, focalPointRatio);\n };\n Graphics.prototype.beginBitmapFill = function (bitmap, matrix, repeat, smooth) {\n if (matrix === void 0) { matrix = null; }\n if (repeat === void 0) { repeat = true; }\n if (smooth === void 0) { smooth = false; }\n this.adaptee.beginBitmapFill(bitmap.adaptee, matrix === null || matrix === void 0 ? void 0 : matrix.adaptee, repeat, smooth);\n };\n Graphics.prototype.endFill = function () {\n this.adaptee.endFill();\n };\n // beginShaderFill(shader: flash.display.Shader, matrix: flash.geom.Matrix = null): void {\n // //shader = shader; matrix = matrix;\n // release || notImplemented(\"public flash.display.Graphics::beginShaderFill\"); return;\n // }\n Graphics.prototype.lineStyle = function (thickness, color, alpha, pixelHinting, scaleMode, caps, joints, miterLimit) {\n var _a, _b;\n if (color === void 0) { color = 0; }\n if (alpha === void 0) { alpha = 1; }\n if (pixelHinting === void 0) { pixelHinting = false; }\n if (scaleMode === void 0) { scaleMode = 'normal'; }\n if (caps === void 0) { caps = null; }\n if (joints === void 0) { joints = null; }\n if (miterLimit === void 0) { miterLimit = 3; }\n // Flash clamps alpha to [0, 1] (AS2-era content commonly passes 0-100)\n if (alpha < 0)\n alpha = 0;\n if (alpha > 1)\n alpha = 1;\n this.adaptee.lineStyle(thickness, color, alpha, pixelHinting, scaleMode, \n // Flash uses round caps and joints when they're not given\n (_a = CAPS_STYLES[caps]) !== null && _a !== void 0 ? _a : AwayCapsStyle.ROUND, (_b = JOINT_STYLES[joints]) !== null && _b !== void 0 ? _b : AwayJointStyle.ROUND, \n // and rounds miter limits outside [1, 255]\n Math.min(255, Math.max(1, miterLimit)));\n };\n Graphics.prototype.lineGradientStyle = function (type, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio) {\n if (matrix === void 0) { matrix = null; }\n if (spreadMethod === void 0) { spreadMethod = 'pad'; }\n if (interpolationMethod === void 0) { interpolationMethod = 'rgb'; }\n if (focalPointRatio === void 0) { focalPointRatio = 0; }\n this.adaptee.lineGradientStyle(type, colors.value, alphas.value, ratios.value, matrix === null || matrix === void 0 ? void 0 : matrix.adaptee, spreadMethod, interpolationMethod, focalPointRatio);\n };\n Graphics.prototype.lineBitmapStyle = function (bitmap, matrix, repeat, smooth) {\n if (matrix === void 0) { matrix = null; }\n if (repeat === void 0) { repeat = true; }\n if (smooth === void 0) { smooth = false; }\n this.adaptee.lineBitmapStyle(bitmap.adaptee, matrix === null || matrix === void 0 ? void 0 : matrix.adaptee, repeat, smooth);\n };\n Graphics.prototype.drawRect = function (x, y, width, height) {\n this.adaptee.drawRect(x, y, width, height);\n };\n Graphics.prototype.drawRoundRect = function (x, y, width, height, ellipseWidth, ellipseHeight) {\n this.adaptee.drawRoundRect(x, y, width, height, ellipseWidth, ellipseHeight);\n };\n Graphics.prototype.drawRoundRectComplex = function (x, y, width, height, topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius) {\n this.adaptee.drawRoundRectComplex(x, y, width, height, topLeftRadius, topRightRadius, bottomLeftRadius, bottomRightRadius);\n };\n Graphics.prototype.drawCircle = function (x, y, radius) {\n this.adaptee.drawCircle(x, y, radius);\n };\n /**\n * Here x and y are the top-left coordinates of the bounding box of the\n * ellipse not the center as is the case for circles.\n */\n Graphics.prototype.drawEllipse = function (x, y, width, height) {\n this.adaptee.drawEllipse(x, y, width, height);\n };\n Graphics.prototype.moveTo = function (x, y) {\n this.adaptee.moveTo(x, y);\n };\n Graphics.prototype.lineTo = function (x, y) {\n this.adaptee.lineTo(x, y);\n };\n Graphics.prototype.curveTo = function (controlX, controlY, anchorX, anchorY) {\n this.adaptee.curveTo(controlX, controlY, anchorX, anchorY);\n };\n Graphics.prototype.cubicCurveTo = function (controlX1, controlY1, controlX2, controlY2, anchorX, anchorY) {\n this.adaptee.cubicCurveTo(controlX1, controlY1, controlX2, controlY2, anchorX, anchorY);\n };\n Graphics.prototype.copyFrom = function (sourceGraphics) {\n this.adaptee.copyFrom(sourceGraphics.adaptee);\n };\n Graphics.prototype.drawPath = function (commands, data, winding) {\n if (winding === void 0) { winding = 'evenOdd'; }\n var cmdArr = commands._view();\n var dataArr = data._view();\n if (!cmdArr.length || !dataArr.length)\n return;\n //@ts-ignore\n this.adaptee.drawPath(cmdArr, dataArr, winding);\n };\n Graphics.prototype.drawTriangles = function (vertices, indices, uvtData, culling) {\n if (indices === void 0) { indices = null; }\n if (uvtData === void 0) { uvtData = null; }\n if (culling === void 0) { culling = 'none'; }\n // @todo\n Debug.throwPIR('playerglobals/display/Graphics', 'drawTriangles', '');\n };\n Graphics.prototype.drawGraphicsData = function (graphicsData) {\n if (!graphicsData)\n return;\n var len = graphicsData.length | 0;\n for (var i = 0; i < len; i++) {\n var item = graphicsData.axGetNumericProperty(i);\n if (item)\n this._drawGraphicsDataItem(item);\n }\n };\n Graphics.prototype.readGraphicsData = function (recurse) {\n if (recurse === void 0) { recurse = true; }\n var result = new this.sec.ObjectVector();\n var owner = this._findOwner();\n this._collectGraphicsData(result, this.adaptee, owner, !!recurse, true);\n return result;\n };\n Graphics.prototype._drawGraphicsDataItem = function (item) {\n if (!item)\n return;\n var display = this.sec.flash.display;\n if (display.GraphicsSolidFill.axIsType(item)) {\n this.beginFill(item.color, item.alpha);\n return;\n }\n if (display.GraphicsGradientFill.axIsType(item)) {\n this.beginGradientFill(item.type, item.colors, item.alphas, item.ratios, item.matrix, item.spreadMethod, item.interpolationMethod, item.focalPointRatio);\n return;\n }\n if (display.GraphicsBitmapFill.axIsType(item)) {\n this.beginBitmapFill(item.bitmapData, item.matrix, item.repeat, item.smooth);\n return;\n }\n if (display.GraphicsEndFill.axIsType(item)) {\n this.endFill();\n return;\n }\n if (display.GraphicsStroke.axIsType(item)) {\n this._applyStroke(item);\n return;\n }\n if (display.GraphicsPath.axIsType(item)) {\n this.drawPath(item.commands, item.data, item.winding);\n return;\n }\n if (display.GraphicsTrianglePath.axIsType(item)) {\n // AIR readGraphicsData skips triangles; drawTriangles is not implemented.\n return;\n }\n // Engine IGraphicsData (has data_type) can be forwarded directly.\n if (item.data_type && this.adaptee)\n this.adaptee.drawGraphicsData([item]);\n };\n Graphics.prototype._applyStroke = function (stroke) {\n var fill = stroke.fill;\n var color = 0;\n var alpha = 1;\n var display = this.sec.flash.display;\n if (display.GraphicsSolidFill.axIsType(fill)) {\n color = fill.color;\n alpha = fill.alpha;\n }\n this.lineStyle(stroke.thickness, color, alpha, stroke.pixelHinting, stroke.scaleMode, stroke.caps, stroke.joints, stroke.miterLimit);\n if (display.GraphicsGradientFill.axIsType(fill)) {\n this.lineGradientStyle(fill.type, fill.colors, fill.alphas, fill.ratios, fill.matrix, fill.spreadMethod, fill.interpolationMethod, fill.focalPointRatio);\n return;\n }\n if (display.GraphicsBitmapFill.axIsType(fill)) {\n this.lineBitmapStyle(fill.bitmapData, fill.matrix, fill.repeat, fill.smooth);\n }\n };\n Graphics.prototype._collectGraphicsData = function (result, awayGraphics, owner, recurse, isRoot) {\n var _a;\n if (!isRoot && (owner.visible === false || owner.adaptee.maskMode))\n return;\n if (awayGraphics) {\n // AIR: IGraphicsData is in the local space of the Graphics being read.\n // Recursed children are transformed into that object's space, not stage space.\n var matrix = isRoot ? new AwayMatrix() : this._concatenatedMatrix(owner);\n var items = awayGraphics.readGraphicsData();\n for (var i = 0; i < items.length; i++) {\n var as3 = this._toAS3GraphicsData(items[i], matrix);\n if (as3)\n result.axSetNumericProperty(result.length, as3);\n }\n }\n if (!recurse || !owner || !this.sec.flash.display.DisplayObjectContainer.axIsType(owner))\n return;\n var container = owner;\n var n = container.numChildren;\n for (var i = 0; i < n; i++) {\n var child = container.getChildAt(i);\n if (child.visible === false || child.adaptee.maskMode)\n continue;\n this._collectGraphicsData(result, (_a = child.graphics) === null || _a === void 0 ? void 0 : _a.adaptee, child, true, false);\n }\n };\n /**\n * Resolve the AS3 display object that owns this wrapper at call time from\n * the AwayGraphics owner set (held weakly by AwayGraphics). The owner is\n * the one whose AS3 adapter exposes this exact wrapper as its graphics,\n * which stays exact when several timeline instances share one AwayGraphics.\n */\n Graphics.prototype._findOwner = function () {\n var _this = this;\n var found = null;\n this._adaptee.forEachOwner(function (awayOwner) {\n if (found)\n return;\n var adapter = awayOwner.adapter;\n if (adapter.graphics === _this)\n found = adapter;\n });\n return found;\n };\n Graphics.prototype._concatenatedMatrix = function (obj) {\n var result = new AwayMatrix();\n var stack = [];\n var current = obj;\n while (current) {\n var transform = current.adaptee && current.adaptee.transform;\n var local = transform && transform.matrix;\n if (local)\n stack.push(local);\n current = current.parent;\n }\n for (var i = stack.length - 1; i >= 0; i--)\n result.concat(stack[i]);\n return result;\n };\n Graphics.prototype._toAS3GraphicsData = function (item, concatenated) {\n var display = this.sec.flash.display;\n var type = item.data_type;\n if (type == GraphicsFillStyle.data_type)\n return this._toAS3GraphicsData(item.fillStyle, concatenated);\n if (type == SolidFillStyle.data_type) {\n var solid = item;\n return new display.GraphicsSolidFill(solid.color, solid.alpha);\n }\n if (type == GradientFillStyle.data_type) {\n var gradient = item;\n var matrix = concatenated.clone();\n matrix.concat(gradient.matrix);\n return new display.GraphicsGradientFill(gradient.type, this.sec.createArray(gradient.colors), this.sec.createArray(gradient.alphas), this.sec.createArray(gradient.ratios), new this.sec.flash.geom.Matrix(matrix), gradient.spreadMethod, gradient.interpolationMethod, gradient.focalPointRatio);\n }\n if (type == BitmapFillStyle.data_type) {\n var bitmap = item;\n var matrix = concatenated.clone();\n matrix.concat(bitmap.matrix);\n return new display.GraphicsBitmapFill(bitmap.image.adapter, new this.sec.flash.geom.Matrix(matrix), bitmap.repeat !== false, !!bitmap.smooth);\n }\n if (type == AwayGraphicsEndFill.data_type)\n return new display.GraphicsEndFill();\n if (type == GraphicsStrokeStyle.data_type) {\n var stroke = item;\n var fill = this._toAS3GraphicsData(this._strokeFill(stroke), concatenated);\n return new display.GraphicsStroke(stroke.thickness, false, 'normal', styleName(CAPS_STYLES, stroke.capstyle), styleName(JOINT_STYLES, stroke.jointstyle), stroke.miterLimit, fill);\n }\n if (type == AwayGraphicsPath.data_type) {\n var path = item;\n var winding = path.winding === 'nonZero' ? 'nonZero' : 'evenOdd';\n var commands = this._toInt32Vector(path.commands);\n var data = this._toFloat64Vector(this._transformPairs(path.data, concatenated));\n // Construct with a valid winding first (ABC validates it). Then poke\n // commands/data onto both JS fields and $Bg slots — the ABC ctor does not.\n var as3 = new display.GraphicsPath(null, null, winding);\n as3.commands = commands;\n as3.data = data;\n as3.winding = winding;\n as3.$Bgcommands = commands;\n as3.$Bgdata = data;\n as3.$Bgwinding = winding;\n return as3;\n }\n return null;\n };\n Graphics.prototype._strokeFill = function (stroke) {\n var fill = stroke.fillStyle;\n if (fill && fill.data_type == GraphicsFillStyle.data_type)\n fill = fill.fillStyle;\n return fill;\n };\n Graphics.prototype._transformPairs = function (data, matrix) {\n if (!data)\n return [];\n if (!matrix || data.length < 2)\n return data;\n var raw = matrix.rawData;\n var a = raw[0], b = raw[1], c = raw[2], d = raw[3], tx = raw[4], ty = raw[5];\n if (a === 1 && b === 0 && c === 0 && d === 1 && tx === 0 && ty === 0)\n return data;\n var out = data.slice();\n for (var i = 0; i + 1 < out.length; i += 2) {\n var x = out[i];\n var y = out[i + 1];\n out[i] = a * x + c * y + tx;\n out[i + 1] = b * x + d * y + ty;\n }\n return out;\n };\n Graphics.prototype._toInt32Vector = function (values) {\n var list = values || [];\n var vector = new this.sec.Int32Vector(list.length, false);\n for (var i = 0; i < list.length; i++)\n vector.axSetNumericProperty(i, list[i]);\n return vector;\n };\n Graphics.prototype._toFloat64Vector = function (values) {\n var list = values || [];\n var vector = new this.sec.Float64Vector(list.length, false);\n for (var i = 0; i < list.length; i++)\n vector.axSetNumericProperty(i, +list[i]);\n return vector;\n };\n Graphics.classInitializer = function () {\n // playerglobal.abcs Graphics is missing readGraphicsData, so linkClass never\n // installs $BgreadGraphicsData. AS3 then calls a missing function (Error #1006).\n var proto = this.dPrototype;\n if (!proto)\n return;\n if (typeof proto.readGraphicsData === 'function')\n proto.$BgreadGraphicsData = proto.readGraphicsData;\n };\n return Graphics;\n}(ASObject));\nexport { Graphics };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nimport { GraphicsPathCommand } from '@awayjs/graphics';\n/**\n * AS3 GraphicsPath: commands Vector.<int>, data Vector.<Number>, winding,\n * plus moveTo/lineTo/curveTo/cubicCurveTo/wideMoveTo/wideLineTo.\n */\nvar GraphicsPath = /** @class */ (function (_super) {\n __extends(GraphicsPath, _super);\n function GraphicsPath(commands, data, winding) {\n if (commands === void 0) { commands = null; }\n if (data === void 0) { data = null; }\n if (winding === void 0) { winding = 'evenOdd'; }\n var _this = _super.call(this) || this;\n _this.commands = commands || new _this.sec.Int32Vector();\n _this.data = data || new _this.sec.Float64Vector();\n _this.winding = axCoerceString(winding) || 'evenOdd';\n return _this;\n }\n GraphicsPath.prototype.moveTo = function (x, y) {\n this._pushCommand(GraphicsPathCommand.MOVE_TO, x, y);\n };\n GraphicsPath.prototype.lineTo = function (x, y) {\n this._pushCommand(GraphicsPathCommand.LINE_TO, x, y);\n };\n GraphicsPath.prototype.curveTo = function (controlX, controlY, anchorX, anchorY) {\n this._pushCommand(GraphicsPathCommand.CURVE_TO, controlX, controlY, anchorX, anchorY);\n };\n GraphicsPath.prototype.cubicCurveTo = function (controlX1, controlY1, controlX2, controlY2, anchorX, anchorY) {\n this._pushCommand(GraphicsPathCommand.CUBIC_CURVE, controlX1, controlY1, controlX2, controlY2, anchorX, anchorY);\n };\n GraphicsPath.prototype.wideMoveTo = function (x, y) {\n this._pushCommand(GraphicsPathCommand.WIDE_MOVE_TO, 0, 0, x, y);\n };\n GraphicsPath.prototype.wideLineTo = function (x, y) {\n this._pushCommand(GraphicsPathCommand.WIDE_LINE_TO, 0, 0, x, y);\n };\n GraphicsPath.prototype._pushCommand = function (command) {\n var coords = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n coords[_i - 1] = arguments[_i];\n }\n GraphicsPath._pushNumeric(this.commands, command);\n for (var i = 0; i < coords.length; i++)\n GraphicsPath._pushNumeric(this.data, coords[i]);\n };\n GraphicsPath._pushNumeric = function (vector, value) {\n if (!vector)\n return;\n if (typeof vector.axSetNumericProperty === 'function') {\n vector.axSetNumericProperty(vector.length, value);\n return;\n }\n if (typeof vector.push === 'function') {\n vector.push(value);\n return;\n }\n vector[vector.length] = value;\n };\n GraphicsPath.classInitializer = null;\n return GraphicsPath;\n}(ASObject));\nexport { GraphicsPath };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar GraphicsSolidFill = /** @class */ (function (_super) {\n __extends(GraphicsSolidFill, _super);\n function GraphicsSolidFill(color, alpha) {\n if (color === void 0) { color = 0; }\n if (alpha === void 0) { alpha = 1; }\n var _this = _super.call(this) || this;\n _this.color = color >>> 0;\n _this.alpha = +alpha;\n return _this;\n }\n GraphicsSolidFill.classInitializer = null;\n return GraphicsSolidFill;\n}(ASObject));\nexport { GraphicsSolidFill };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar GraphicsEndFill = /** @class */ (function (_super) {\n __extends(GraphicsEndFill, _super);\n function GraphicsEndFill() {\n return _super.call(this) || this;\n }\n GraphicsEndFill.classInitializer = null;\n return GraphicsEndFill;\n}(ASObject));\nexport { GraphicsEndFill };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nvar GraphicsGradientFill = /** @class */ (function (_super) {\n __extends(GraphicsGradientFill, _super);\n function GraphicsGradientFill(type, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio) {\n if (type === void 0) { type = 'linear'; }\n if (colors === void 0) { colors = null; }\n if (alphas === void 0) { alphas = null; }\n if (ratios === void 0) { ratios = null; }\n if (matrix === void 0) { matrix = null; }\n if (spreadMethod === void 0) { spreadMethod = 'pad'; }\n if (interpolationMethod === void 0) { interpolationMethod = 'rgb'; }\n if (focalPointRatio === void 0) { focalPointRatio = 0; }\n var _this = _super.call(this) || this;\n _this.type = axCoerceString(type);\n _this.colors = colors;\n _this.alphas = alphas;\n _this.ratios = ratios;\n _this.matrix = matrix;\n _this.spreadMethod = spreadMethod;\n _this.interpolationMethod = axCoerceString(interpolationMethod);\n _this.focalPointRatio = +focalPointRatio;\n return _this;\n }\n GraphicsGradientFill.classInitializer = null;\n return GraphicsGradientFill;\n}(ASObject));\nexport { GraphicsGradientFill };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar GraphicsBitmapFill = /** @class */ (function (_super) {\n __extends(GraphicsBitmapFill, _super);\n function GraphicsBitmapFill(bitmapData, matrix, repeat, smooth) {\n if (bitmapData === void 0) { bitmapData = null; }\n if (matrix === void 0) { matrix = null; }\n if (repeat === void 0) { repeat = true; }\n if (smooth === void 0) { smooth = false; }\n var _this = _super.call(this) || this;\n _this.bitmapData = bitmapData;\n _this.matrix = matrix;\n _this.repeat = !!repeat;\n _this.smooth = !!smooth;\n var self = _this;\n self.$BgbitmapData = bitmapData;\n self.$Bgmatrix = matrix;\n self.$Bgrepeat = _this.repeat;\n self.$Bgsmooth = _this.smooth;\n self._nativeBitmapData = bitmapData;\n self._nativeMatrix = matrix;\n self._nativeRepeat = _this.repeat;\n self._nativeSmooth = _this.smooth;\n return _this;\n }\n GraphicsBitmapFill.classInitializer = function () {\n // playerglobal.abcs ships a bytecode ctor that never assigns the native\n // fields. AS3 `new GraphicsBitmapFill(bd, matrix, …)` then produces an\n // instance whose $BgbitmapData slot stays null. Bind the TS constructor.\n var proto = this.tPrototype || this.dPrototype;\n if (proto)\n proto.axInitializer = GraphicsBitmapFill;\n };\n return GraphicsBitmapFill;\n}(ASObject));\nexport { GraphicsBitmapFill };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nvar GraphicsStroke = /** @class */ (function (_super) {\n __extends(GraphicsStroke, _super);\n function GraphicsStroke(thickness, pixelHinting, scaleMode, caps, joints, miterLimit, fill) {\n if (thickness === void 0) { thickness = NaN; }\n if (pixelHinting === void 0) { pixelHinting = false; }\n if (scaleMode === void 0) { scaleMode = 'normal'; }\n if (caps === void 0) { caps = 'none'; }\n if (joints === void 0) { joints = 'round'; }\n if (miterLimit === void 0) { miterLimit = 3; }\n if (fill === void 0) { fill = null; }\n var _this = _super.call(this) || this;\n _this.thickness = +thickness;\n _this.pixelHinting = !!pixelHinting;\n _this.scaleMode = axCoerceString(scaleMode);\n _this.caps = axCoerceString(caps);\n _this.joints = axCoerceString(joints);\n _this.miterLimit = +miterLimit;\n _this.fill = fill;\n return _this;\n }\n GraphicsStroke.classInitializer = null;\n return GraphicsStroke;\n}(ASObject));\nexport { GraphicsStroke };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nvar GraphicsTrianglePath = /** @class */ (function (_super) {\n __extends(GraphicsTrianglePath, _super);\n function GraphicsTrianglePath(vertices, indices, uvtData, culling) {\n if (vertices === void 0) { vertices = null; }\n if (indices === void 0) { indices = null; }\n if (uvtData === void 0) { uvtData = null; }\n if (culling === void 0) { culling = 'none'; }\n var _this = _super.call(this) || this;\n _this.vertices = vertices;\n _this.indices = indices;\n _this.uvtData = uvtData;\n _this.culling = axCoerceString(culling);\n return _this;\n }\n GraphicsTrianglePath.classInitializer = null;\n return GraphicsTrianglePath;\n}(ASObject));\nexport { GraphicsTrianglePath };\n","import { __extends } from \"tslib\";\nimport { Debug } from '@awayjs/core';\nimport { EventDispatcher } from '../events/EventDispatcher';\n// Class: NativeMenuItem\nvar NativeMenuItem = /** @class */ (function (_super) {\n __extends(NativeMenuItem, _super);\n function NativeMenuItem() {\n var _this = _super.call(this) || this;\n _this._enabled = true;\n return _this;\n }\n Object.defineProperty(NativeMenuItem.prototype, \"enabled\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/NativeMenuItem', 'get enabled', '');\n return this._enabled;\n },\n set: function (isSeparator) {\n isSeparator = !!isSeparator;\n // @todo\n Debug.throwPIR('playerglobals/display/NativeMenuItem', 'set enabled', '');\n this._enabled = isSeparator;\n },\n enumerable: false,\n configurable: true\n });\n // Called whenever the class is initialized.\n NativeMenuItem.classInitializer = null;\n // List of static symbols to link.\n NativeMenuItem.classSymbols = null; // [];\n // List of instance symbols to link.\n NativeMenuItem.instanceSymbols = null; // [];\n return NativeMenuItem;\n}(EventDispatcher));\nexport { NativeMenuItem };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nvar Scene = /** @class */ (function (_super) {\n __extends(Scene, _super);\n function Scene(name, labels, offset, numFrames /*int*/) {\n var _this = _super.call(this) || this;\n _this._name = axCoerceString(name);\n // Note: creating Scene objects in ActionScript, while possible, is undocumented and entirely\n // useless. Luckily, that also means that they're not very carefully implemented.\n // Specifically, the `labels` array isn't cloned during construction or when returned from\n // the getter. I.e., it can be modified freely.\n _this._labels = labels;\n _this.offset = offset;\n _this._numFrames = numFrames | 0;\n return _this;\n }\n Object.defineProperty(Scene.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"labels\", {\n get: function () {\n return this._labels;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"numFrames\", {\n get: function () {\n return this._numFrames;\n },\n enumerable: false,\n configurable: true\n });\n Scene.prototype.clone = function () {\n var labels_ = this._labels.value.map(function (label) { return label.clone(); });\n return new Scene(this._name, this.sec.createArrayUnsafe(labels_), this.offset, this._numFrames);\n };\n Scene.prototype.getLabelByName = function (name, ignoreCase) {\n if (ignoreCase) {\n name = name.toLowerCase();\n }\n var labels = this._labels.value;\n for (var i = 0; i < labels.length; i++) {\n var label = labels[i];\n if (ignoreCase ? label.name.toLowerCase() === name : label.name === name) {\n return label;\n }\n }\n return null;\n };\n Scene.prototype.getLabelByFrame = function (frame) {\n var labels = this._labels.value;\n for (var i = 0; i < labels.length; i++) {\n var label = labels[i];\n if (label.frame === frame) {\n return label;\n }\n }\n return null;\n };\n Scene.classInitializer = null;\n Scene.classSymbols = null; // [];\n Scene.instanceSymbols = null;\n return Scene;\n}(ASObject));\nexport { Scene };\n","/*export { Sprite as Shape } from './Sprite';*/\nimport { __extends } from \"tslib\";\nimport { constructClassFromSymbol } from '@awayfl/avm2';\nimport { DisplayObject } from './DisplayObject';\nimport { Sprite as AwaySprite } from '@awayjs/scene';\n/**\n * This class is used to create lightweight shapes using the ActionScript drawing application program interface (API).\n * The Shape class includes a <codeph class=\"+ topic/ph pr-d/codeph \">graphics</codeph> property,\n * which lets you access methods from the Graphics class.\n *\n * <p class=\"- topic/p \">The Sprite class also includes a\n * <codeph class=\"+ topic/ph pr-d/codeph \">graphics</codeph>property,\n * and it includes other features not available to the\n * Shape class. For example, a Sprite object is a display object container,\n * whereas a Shape object is not (and cannot contain\n * child display objects). For this reason, Shape objects consume less memory than Sprite objects that contain the\n * same graphics. However, a Sprite object supports user input events, while a Shape object does not.</p>\n */\nvar Shape = /** @class */ (function (_super) {\n __extends(Shape, _super);\n /**\n * Creates a new Shape object.\n */\n function Shape() {\n var _this = _super.call(this) || this;\n _this._syncGraphics(_this._adaptee);\n return _this;\n }\n Shape.prototype.updateGraphics = function () {\n this._syncGraphics(this._adaptee);\n };\n Shape.prototype.mapAdaptee = function (adaptee) {\n this._syncGraphics(adaptee);\n return _super.prototype.mapAdaptee.call(this, adaptee);\n };\n /**\n * Keep one AS3 Graphics wrapper per display object and point it at the\n * current AwayJS graphics (timeline graphics swaps, copy-on-write clear).\n */\n Shape.prototype._syncGraphics = function (adaptee) {\n if (!adaptee)\n return;\n if (this._graphics)\n this._graphics._setAdaptee(adaptee.graphics);\n else\n this._graphics = new this.sec.flash.display.Graphics(adaptee.graphics);\n };\n Shape.prototype.createAdaptee = function () {\n var newAdaptee = AwaySprite.getNewSprite();\n //console.log(\"createAdaptee AwaySprite\");\n newAdaptee.reset();\n //FrameScriptManager.execute_queue();\n return newAdaptee;\n };\n Object.defineProperty(Shape.prototype, \"graphics\", {\n /**\n * Specifies the Graphics object belonging to this Shape object, where vector\n * drawing commands can occur.\n */\n get: function () {\n return this._graphics;\n },\n enumerable: false,\n configurable: true\n });\n Shape.prototype.clone = function () {\n if (!this._symbol) {\n throw ('_symbol not defined when cloning movieclip');\n }\n var clone = constructClassFromSymbol(this._symbol, this._symbol.symbolClass);\n var adaptee = new AwaySprite();\n this.adaptee.copyTo(adaptee);\n clone.adaptee = adaptee;\n clone._stage = this.activeStage;\n clone.adaptee.graphics = this.graphics;\n return clone;\n };\n return Shape;\n}(DisplayObject));\nexport { Shape };\n","import { __extends } from \"tslib\";\nimport { FrameScriptManager } from '@awayjs/scene';\nimport { MovieClip as AwayMovieClip } from '@awayjs/scene';\nimport { Debug } from '@awayjs/core';\nimport { InteractiveObject } from './InteractiveObject';\nimport { constructClassFromSymbol } from '@awayfl/avm2';\n/**\n * The SimpleButton class lets you control all instances of button symbols in a SWF\n * file.\n *\n * <p class=\"- topic/p \">In Flash Professional, you can give a button an instance name in the\n * Property inspector. SimpleButton instance names are displayed in the Movie\n * Explorer and in the Insert Target Path dialog box in the Actions\n * panel. After you create an instance of a button in Flash Professional, you can\n * use the methods and properties of the SimpleButton class to manipulate buttons\n * with ActionScript.</p><p class=\"- topic/p \">In ActionScript 3.0,\n * you use the <codeph class=\"+ topic/ph pr-d/codeph \">new SimpleButton()</codeph> constructor to create a\n * SimpleButton instance.</p><p class=\"- topic/p \">The SimpleButton class inherits from the InteractiveObject class.</p>\n *\n * EXAMPLE:\n *\n * The following example uses the SimpleButtonExample class, which in\n * turn uses the CustomSimpleButton class, and this class then instantiates four\n * ButtonDisplayState objects. The result is a button that is created in the shape of\n * a square, whose background color changes based on the mouse state by overriding instance properties of\n * the SimpleButton class. This is accomplished by performing the following steps:\n * <ol class=\"- topic/ol \">\n * <li class=\"- topic/li \">In the <codeph class=\"+ topic/ph pr-d/codeph \">SimpleButtonExample()</codeph>\n * constructor, a new CustomSimpleButton object of type\n * SimpleButton, called <codeph class=\"+ topic/ph pr-d/codeph \">button</codeph>,\n * is created, which calls the <codeph class=\"+ topic/ph pr-d/codeph \">CustomSimpleButton</codeph> constructor\n * method. The <codeph class=\"+ topic/ph pr-d/codeph \">button</codeph> object is the added to the display list.\n * The button's color and size are\n * determined in the steps that follow.</li><li class=\"- topic/li \">\n * In the CustomSimpleButton class, instance properties are declared that are later used\n * to control the size and background color of <codeph class=\"+ topic/ph pr-d/codeph \">button</codeph>,\n * based on the state it is in (orange\n * in the normal state, dark yellow in the mouse over state, an light blue in the mouse down state).\n * In all of the <codeph class=\"+ topic/ph pr-d/codeph \">button</codeph>'s states,\n * the size of the square is set to 80 pixels by using the\n * <codeph class=\"+ topic/ph pr-d/codeph \">size</codeph> property.</li>\n * <li class=\"- topic/li \">The constructor function for the CustomSimpleButton class sets the\n * <codeph class=\"+ topic/ph pr-d/codeph \">downState</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">overState</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">upState</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">hitTestState</codeph>,\n * and <codeph class=\"+ topic/ph pr-d/codeph \">useHandCursor</codeph> properties with\n * four instances of the ButtonDisplayState class.</li>\n * <li class=\"- topic/li \">In the ButtonDisplayState class, the constructor sets the value of the\n * square's size and background color and calls the\n * <codeph class=\"+ topic/ph pr-d/codeph \">draw()</codeph> method.</li>\n * <li class=\"- topic/li \">The <codeph class=\"+ topic/ph pr-d/codeph \">draw()</codeph>\n * method redraws the square with the size and background color set in\n * the constructor based on the button's state.</li>\n * </ol><codeblock xml:space=\"preserve\" class=\"+ topic/pre pr-d/codeblock \">\n\n */\nvar SimpleButton = /** @class */ (function (_super) {\n __extends(SimpleButton, _super);\n /**\n * Creates a new SimpleButton instance. Any or all of the display objects that represent\n * the various button states can be set as parameters in the constructor.\n * @param\tupState\tThe initial value for the SimpleButton up state.\n * @param\toverState\tThe initial value for the SimpleButton over state.\n * @param\tdownState\tThe initial value for the SimpleButton down state.\n * @param\thitTestState\tThe initial value for the SimpleButton hitTest state.\n */\n function SimpleButton(upState, overState, downState, hitTestState) {\n if (upState === void 0) { upState = null; }\n if (overState === void 0) { overState = null; }\n if (downState === void 0) { downState = null; }\n if (hitTestState === void 0) { hitTestState = null; }\n var _this = _super.call(this) || this;\n _this._adaptee.addButtonListeners();\n return _this;\n }\n // todo: this methods are also defined on Sprite\n // in avm2 SimpleButton extends from InteractiveObject, not from MovieClip/Sprite\n SimpleButton.prototype.addTimelineChildAtDepth = function (child, depth) {\n child.reset();\n var maxIndex = this.adaptee.numChildren - 1;\n var index = maxIndex + 1;\n var scriptChildsOffset = 0;\n for (var i = maxIndex; i >= 0; i--) {\n var current = this.adaptee.getChildAt(i);\n if (current._avmDepthID == -1) {\n scriptChildsOffset++;\n }\n if (current._avmDepthID > -1) {\n if (current._avmDepthID < depth) {\n index = i + 1 + scriptChildsOffset;\n break;\n }\n scriptChildsOffset = 0;\n index = i;\n }\n }\n child._avmDepthID = depth;\n child.just_added_to_timeline = true;\n this.adaptee._sessionID_childs[child._sessionID] = child;\n return this.adaptee.addChildAt(child, index);\n };\n SimpleButton.prototype.removeTimelineChildAt = function (value) {\n // in as3 we remove by sessionID\n var child = this.adaptee._sessionID_childs[value];\n if (child) {\n delete this.adaptee._sessionID_childs[value];\n this.adaptee.removeChild(child);\n }\n };\n /**\n * queue the mc for executing framescripts\n * this only queues the frame-index as a number,\n * the actual framescripts will be retrieved in MovieClip.executeScripts\n * @param timeline\n * @param frame_idx\n * @param scriptPass1\n */\n SimpleButton.prototype.queueFrameScripts = function (timeline, frame_idx, scriptPass1) {\n //console.log(\"add framescript\", target_mc, target_mc.name, keyframe_idx, scriptPass1 );\n if (scriptPass1)\n FrameScriptManager.add_script_to_queue(this.adaptee, frame_idx);\n else\n FrameScriptManager.add_script_to_queue_pass2(this.adaptee, frame_idx);\n };\n SimpleButton.prototype.removeAllTimelineChilds = function () {\n var adaptee = this.adaptee;\n for (var key in adaptee._sessionID_childs) {\n var child = adaptee._sessionID_childs[key];\n if (child) {\n delete adaptee._sessionID_childs[key];\n adaptee.removeChild(child);\n }\n }\n };\n SimpleButton.prototype.constructFrame = function (timeline, start_construct_idx, target_keyframe_idx, jump_forward, frame_idx, queue_pass2, queue_script) {\n var adaptee = this.adaptee;\n var len = adaptee.numChildren;\n var virtualSceneGraph = [];\n var existingSessionIDs = {};\n for (var i_1 = 0; i_1 < len; i_1++) {\n // collect the existing children into a virtual-scenegraph\n var child = adaptee.getChildAt(i_1);\n // if jumping forward, we continue from current frame, so we collect all objects\n // if jumping back, we want to only collect script-children. timeline childs are ignored\n if (jump_forward || child._sessionID == -1) {\n virtualSceneGraph[virtualSceneGraph.length] = {\n sessionID: child._sessionID,\n as3DepthID: child._avmDepthID,\n addedOnTargetFrame: false,\n child: child\n };\n }\n if (child._sessionID != -1)\n existingSessionIDs[child._sessionID] = child;\n }\n var i;\n var k;\n // step1: apply remove / add commands to virtual scenegraph. collect update commands aswell\n timeline._update_indices.length = 0;\n timeline._update_frames.length = 0;\n var update_cnt = 0;\n var start_index;\n var end_index;\n for (k = start_construct_idx; k <= target_keyframe_idx; k++) {\n var frame_command_idx = timeline.frame_command_indices[k];\n var frame_recipe = timeline.frame_recipe[k];\n if (frame_recipe & 2) {\n start_index = timeline.command_index_stream[frame_command_idx];\n end_index = start_index + timeline.command_length_stream[frame_command_idx++];\n var removeSessionIDs = {};\n for (i = start_index; i < end_index; i++) {\n removeSessionIDs[timeline.remove_child_stream[i]] = true;\n }\n var newVirtualSceneGraph = [];\n len = virtualSceneGraph.length;\n for (var i_2 = 0; i_2 < len; i_2++) {\n if (!removeSessionIDs[virtualSceneGraph[i_2].sessionID])\n newVirtualSceneGraph[newVirtualSceneGraph.length] = virtualSceneGraph[i_2];\n }\n virtualSceneGraph = newVirtualSceneGraph;\n }\n if (frame_recipe & 4) {\n start_index = timeline.command_index_stream[frame_command_idx];\n end_index = start_index + timeline.command_length_stream[frame_command_idx++];\n for (i = start_index; i < end_index; i++) {\n var maxIndex = virtualSceneGraph.length - 1;\n var depth = timeline.add_child_stream[i * 3 + 1];\n var index = maxIndex + 1;\n var scriptChildsOffset = 0;\n for (var i_3 = maxIndex; i_3 >= 0; i_3--) {\n var current = virtualSceneGraph[i_3];\n if (current.as3DepthID == -1) {\n scriptChildsOffset++;\n }\n if (current.as3DepthID > -1) {\n if (current.as3DepthID == depth &&\n current.sessionID == timeline.add_child_stream[i_3 * 3]) {\n index = -1;\n break;\n }\n if (current.as3DepthID < depth) {\n index = i_3 + 1 + scriptChildsOffset;\n break;\n }\n scriptChildsOffset = 0;\n index = i_3;\n }\n }\n if (index >= virtualSceneGraph.length) {\n virtualSceneGraph[virtualSceneGraph.length] = {\n sessionID: timeline.add_child_stream[i * 3],\n addedOnTargetFrame: k == target_keyframe_idx,\n symbolID: timeline.add_child_stream[i * 3 + 2],\n as3DepthID: timeline.add_child_stream[i * 3 + 1],\n };\n }\n else if (index > -1) {\n virtualSceneGraph.splice(index, 0, {\n sessionID: timeline.add_child_stream[i * 3],\n addedOnTargetFrame: k == target_keyframe_idx,\n symbolID: timeline.add_child_stream[i * 3 + 2],\n as3DepthID: timeline.add_child_stream[i * 3 + 1],\n });\n }\n }\n }\n if (frame_recipe & 8) {\n timeline._update_frames[update_cnt] = timeline.keyframe_firstframes[k];\n timeline._update_indices[update_cnt++] = frame_command_idx++; // execute update command later\n }\n if (frame_recipe & 16 && k == target_keyframe_idx) {\n timeline.start_sounds(adaptee, frame_command_idx);\n }\n }\n var newChildren = [];\n var vsItem;\n var newChilds = [];\n var newChildsOnTargetFrame = [];\n // step2: build new list of children from virtual-scenegraph\n adaptee._sessionID_childs = {};\n len = newChildren.length = virtualSceneGraph.length;\n for (var i_4 = 0; i_4 < len; i_4++) {\n vsItem = virtualSceneGraph[i_4];\n if (vsItem.sessionID == -1 && vsItem.child) {\n // this must be a script child\n newChildren[i_4] = vsItem.child.adaptee;\n }\n else if (existingSessionIDs[vsItem.sessionID]) {\n //\tthe same sessionID already is child of the mc\n var existingChild = existingSessionIDs[vsItem.sessionID];\n adaptee._sessionID_childs[vsItem.sessionID] = existingChild;\n newChildren[i_4] = existingChild;\n //console.log(\"vsItem.exists\", vsItem);\n if (!jump_forward) {\n if (newChildren[i_4]._adapter) {\n if (!newChildren[i_4].adapter.isColorTransformByScript()) {\n newChildren[i_4].transform.clearColorTransform();\n }\n if (!newChildren[i_4].adapter.isBlockedByScript()\n && !newChildren[i_4].noTimelineUpdate) {\n newChildren[i_4].transform.clearMatrix3D();\n newChildren[i_4].timelineMasks = undefined;\n }\n if (!newChildren[i_4].adapter.isVisibilityByScript()) {\n newChildren[i_4].visible = true;\n }\n }\n else {\n newChildren[i_4].transform.clearColorTransform();\n newChildren[i_4].transform.clearMatrix3D();\n newChildren[i_4].visible = true;\n newChildren[i_4].timelineMasks = undefined;\n }\n }\n }\n else {\n var newChild = timeline.getChildInstance(vsItem.symbolID, vsItem.sessionID);\n if (this.adaptee.isSlice9ScaledMC && newChild.assetType == '[asset Sprite]') {\n newChild.isSlice9ScaledSprite = true;\n }\n newChild._sessionID = vsItem.sessionID;\n newChild._avmDepthID = vsItem.as3DepthID;\n adaptee._sessionID_childs[vsItem.sessionID] = newChild;\n newChildren[i_4] = newChild;\n if (vsItem.addedOnTargetFrame) {\n newChildsOnTargetFrame[newChildsOnTargetFrame.length] = newChild;\n }\n else {\n newChilds[newChilds.length] = newChild;\n }\n }\n }\n // step3: remove children that no longer exists\n for (var i_5 = adaptee.numChildren - 1; i_5 >= 0; i_5--) {\n if (newChildren.indexOf(adaptee.getChildAt(i_5)) < 0) {\n adaptee.removeChildAt(i_5);\n }\n }\n // step4: setup new children that have not been added on new frame (prevent frame-scripts)\n for (var i_6 = 0; i_6 < newChildren.length; i_6++)\n if (!adaptee.contains(newChildren[i_6]))\n adaptee.addChildAt(newChildren[i_6], i_6);\n adaptee.preventScript = true;\n this.finalizeChildren(newChilds);\n // step5: queue frame-script for new frame\n if (queue_script)\n this.queueFrameScripts(timeline, frame_idx, !queue_pass2);\n // step6: setup children that have been added on new frame (allow frame-scripts)\n adaptee.preventScript = true;\n this.finalizeChildren(newChildsOnTargetFrame);\n };\n SimpleButton.prototype.finalizeChildren = function (children) {\n var len = children.length;\n for (var i = 0; i < len; i++) {\n var newChild = children[i];\n newChild.reset();\n }\n };\n SimpleButton.prototype.initAdapter = function () { };\n SimpleButton.prototype.registerScriptObject = function (child) {\n };\n SimpleButton.prototype.unregisterScriptObject = function (child) {\n };\n Object.defineProperty(SimpleButton.prototype, \"downState\", {\n /**\n * Specifies a display object that is used as the visual\n * object for the button \"Down\" state —the state that the button is in when the user\n * selects the hitTestState object.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'get downState', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'set downState', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SimpleButton.prototype, \"enabled\", {\n /**\n * A Boolean value that specifies whether a button is enabled. When a\n * button is disabled (the enabled property is set to false),\n * the button is visible but cannot be clicked. The default value is\n * true. This property is useful if you want to\n * disable part of your navigation; for example, you might want to disable a\n * button in the currently displayed page so that it can't be clicked and\n * the page cannot be reloaded.\n *\n * Note: To prevent mouseClicks on a button, set both the enabled\n * and mouseEnabled properties to false.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'get enabled', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'set enabled', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SimpleButton.prototype, \"hitTestState\", {\n /**\n * Specifies a display object that is used as the hit testing object for the button. For a basic button, set the\n * hitTestState property to the same display object as the overState\n * property. If you do not set the hitTestState property, the SimpleButton\n * is inactive — it does not respond to user input events.\n */\n get: function () {\n return this.adaptee.pickObject.adapter;\n },\n set: function (value) {\n this.adaptee.pickObject = value.adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SimpleButton.prototype, \"overState\", {\n /**\n * Specifies a display object that is used as the visual\n * object for the button over state — the state that the button is in when\n * the pointer is positioned over the button.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'get overState', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'set overState', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SimpleButton.prototype, \"soundTransform\", {\n /**\n * The SoundTransform object assigned to this button. A SoundTransform object\n * includes properties for setting volume, panning, left speaker assignment, and right\n * speaker assignment. This SoundTransform object applies to all states of the button.\n * This SoundTransform object affects only embedded sounds.\n * @internal\tShould information from AS2 setTransform be here? e.g. percentage values indicating\n * how much of the left input to play in the left speaker or right speaker; it is generally\n * best to use 22-KHZ 6-bit mono sounds?\n */\n get: function () {\n //\twe not create this in the constructor, because it gets overwritten from Sound in most cases anyway\n //\tbut we still need a Soundtransform to be available in the getter\n if (!this._soundTransform) {\n this._soundTransform = new this.sec.flash.media.SoundTransform();\n }\n this._soundTransform.volume = this.adaptee.soundVolume;\n return this._soundTransform;\n },\n set: function (value) {\n this.adaptee.soundVolume = value ? value.volume : 1;\n this._soundTransform = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SimpleButton.prototype, \"trackAsMenu\", {\n /**\n * Indicates whether other display objects that are SimpleButton or MovieClip objects can receive\n * user input release events. The trackAsMenu property lets you create menus. You\n * can set the trackAsMenu property on any SimpleButton or MovieClip object.\n * If the trackAsMenu property does not exist, the default behavior is\n * false.\n *\n * You can change the trackAsMenu property at any time; the\n * modified button immediately takes on the new behavior.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'get trackAsMenu', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'set trackAsMenu', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SimpleButton.prototype, \"upState\", {\n /**\n * Specifies a display object that is used as the visual\n * object for the button up state — the state that the button is in when\n * the pointer is not positioned over the button.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'get upState', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'set upState', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SimpleButton.prototype, \"useHandCursor\", {\n /**\n * A Boolean value that, when set to true, indicates whether\n * the hand cursor is shown when the pointer rolls over a button.\n * If this property is set to false, the arrow pointer cursor is displayed\n * instead. The default is true.\n *\n * You can change the useHandCursor property at any time;\n * the modified button immediately uses the new cursor behavior.\n * @maelexample\tCreate two buttons on the Stage with the instance names\n * <code>myBtn1_btn</code> and <code>myBtn2_btn</code>. Enter the following ActionScript in Frame 1 of the Timeline:\n * <listing>\n * myBtn1_btn.useHandCursor = false;\n * myBtn1_btn.onRelease = buttonClick;\n * myBtn2_btn.onRelease = buttonClick;\n * function buttonClick() {\n * trace(this._name);\n * }\n * </listing><p class=\"- topic/p \">When the mouse is over and clicks <code>myBtn1_btn</code>,\n * there is no pointing hand. However, you see the pointing hand when the button is over and clicks\n * <code>myBtn2_btn</code>.</p>\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'get useHandCursor', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/display/SimpleButton', 'set useHandCursor', '');\n },\n enumerable: false,\n configurable: true\n });\n SimpleButton.prototype.clone = function () {\n var anyThis = this;\n if (!anyThis._symbol) {\n throw ('_symbol not defined when cloning movieclip');\n }\n var clone = constructClassFromSymbol(anyThis._symbol, anyThis._symbol.symbolClass);\n var adaptee = new AwayMovieClip(this.adaptee.timeline);\n this.adaptee.copyTo(adaptee);\n clone.adaptee = adaptee;\n clone._stage = this.activeStage;\n clone.executeConstructor = function () {\n //adaptee.timeline.resetScripts();\n clone.axInitializer();\n clone.constructorHasRun = true;\n };\n return clone;\n };\n return SimpleButton;\n}(InteractiveObject));\nexport { SimpleButton };\n","import { __extends } from \"tslib\";\nimport { ASError } from '@awayfl/avm2';\nvar IOError = /** @class */ (function (_super) {\n __extends(IOError, _super);\n function IOError(message, id) {\n if (message === void 0) { message = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, message, id) || this;\n }\n // Called whenever the class is initialized.\n IOError.classInitializer = null;\n // List of static symbols to link.\n IOError.classSymbols = null; // [];\n // List of instance symbols to link.\n IOError.instanceSymbols = null; // [];\n return IOError;\n}(ASError));\nexport { IOError };\n","import { __extends } from \"tslib\";\nimport { IOError } from './IOError';\nvar EOFError = /** @class */ (function (_super) {\n __extends(EOFError, _super);\n function EOFError(message, id) {\n if (message === void 0) { message = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, message, id) || this;\n }\n // Called whenever the class is initialized.\n EOFError.classInitializer = null;\n // List of static symbols to link.\n EOFError.classSymbols = null; // [];\n // List of instance symbols to link.\n EOFError.instanceSymbols = null; // [];\n return EOFError;\n}(IOError));\nexport { EOFError };\n","import { __extends } from \"tslib\";\nimport { ASError } from '@awayfl/avm2';\nvar IllegalOperationError = /** @class */ (function (_super) {\n __extends(IllegalOperationError, _super);\n function IllegalOperationError(message, id) {\n if (message === void 0) { message = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, message, id) || this;\n }\n // Called whenever the class is initialized.\n IllegalOperationError.classInitializer = null;\n // List of static symbols to link.\n IllegalOperationError.classSymbols = null; // [];\n // List of instance symbols to link.\n IllegalOperationError.instanceSymbols = null; // [];\n return IllegalOperationError;\n}(ASError));\nexport { IllegalOperationError };\n","import { __extends } from \"tslib\";\nimport { ASError } from '@awayfl/avm2';\nvar InvalidSWFError = /** @class */ (function (_super) {\n __extends(InvalidSWFError, _super);\n function InvalidSWFError(message, id) {\n if (message === void 0) { message = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, message, id) || this;\n }\n // Called whenever the class is initialized.\n InvalidSWFError.classInitializer = null;\n // List of static symbols to link.\n InvalidSWFError.classSymbols = null; // [];\n // List of instance symbols to link.\n InvalidSWFError.instanceSymbols = null; // [];\n return InvalidSWFError;\n}(ASError));\nexport { InvalidSWFError };\n","import { __extends } from \"tslib\";\nimport { ASError } from '@awayfl/avm2';\nvar MemoryError = /** @class */ (function (_super) {\n __extends(MemoryError, _super);\n function MemoryError(message, id) {\n if (message === void 0) { message = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, message, id) || this;\n }\n // Called whenever the class is initialized.\n MemoryError.classInitializer = null;\n // List of static symbols to link.\n MemoryError.classSymbols = null; // [];\n // List of instance symbols to link.\n MemoryError.instanceSymbols = null; // [];\n return MemoryError;\n}(ASError));\nexport { MemoryError };\n","import { __extends } from \"tslib\";\nimport { ASError } from '@awayfl/avm2';\nvar ScriptTimeoutError = /** @class */ (function (_super) {\n __extends(ScriptTimeoutError, _super);\n function ScriptTimeoutError(message, id) {\n if (message === void 0) { message = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, message, id) || this;\n }\n // Called whenever the class is initialized.\n ScriptTimeoutError.classInitializer = null;\n // List of static symbols to link.\n ScriptTimeoutError.classSymbols = null; // [];\n // List of instance symbols to link.\n ScriptTimeoutError.instanceSymbols = null; // [];\n return ScriptTimeoutError;\n}(ASError));\nexport { ScriptTimeoutError };\n","import { __extends } from \"tslib\";\nimport { ASError } from '@awayfl/avm2';\nvar StackOverflowError = /** @class */ (function (_super) {\n __extends(StackOverflowError, _super);\n function StackOverflowError(message, id) {\n if (message === void 0) { message = ''; }\n if (id === void 0) { id = 0; }\n return _super.call(this, message, id) || this;\n }\n // Called whenever the class is initialized.\n StackOverflowError.classInitializer = null;\n // List of static symbols to link.\n StackOverflowError.classSymbols = null; // [];\n // List of instance symbols to link.\n StackOverflowError.instanceSymbols = null; // [];\n return StackOverflowError;\n}(ASError));\nexport { StackOverflowError };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { clampS8U8, toS16 } from '@awayfl/swf-loader';\nimport { AbstractMethodError, ColorTransform as AwayColorTransform } from '@awayjs/core';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: ColorTransform\nvar ColorTransform = /** @class */ (function (_super) {\n __extends(ColorTransform, _super);\n function ColorTransform(redMultiplierAdaptee, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffset, alphaOffset) {\n if (redMultiplierAdaptee === void 0) { redMultiplierAdaptee = 1; }\n if (greenMultiplier === void 0) { greenMultiplier = 1; }\n if (blueMultiplier === void 0) { blueMultiplier = 1; }\n if (alphaMultiplier === void 0) { alphaMultiplier = 1; }\n if (redOffset === void 0) { redOffset = 0; }\n if (greenOffset === void 0) { greenOffset = 0; }\n if (blueOffset === void 0) { blueOffset = 0; }\n if (alphaOffset === void 0) { alphaOffset = 0; }\n var _this = _super.call(this) || this;\n if (redMultiplierAdaptee instanceof AwayColorTransform) {\n _this._adaptee = redMultiplierAdaptee;\n }\n else {\n // default args on constructor save ONLY when args not passed (undef)\n // but AVM can pass and non valid args, like NaN\n var rm = +redMultiplierAdaptee, gm = +greenMultiplier, bm = +blueMultiplier, am = +alphaMultiplier;\n _this._adaptee = new AwayColorTransform(\n // because default value is 1, need check strict (except 0)\n // NaN === NaN -> false, fast NaN isNaN check\n (rm === rm) ? rm : 1, (gm === gm) ? gm : 1, (bm === bm) ? bm : 1, (am === am) ? am : 1, \n // because default value is 0 - this is valid\n +redOffset || 0, +greenOffset || 0, +blueOffset || 0, +alphaOffset || 0);\n }\n return _this;\n }\n ColorTransform.classInitializer = function () {\n this.FROZEN_IDENTITY_COLOR_TRANSFORM = Object.freeze(this.axConstruct([]));\n this.TEMP_COLOR_TRANSFORM = this.axConstruct([]);\n };\n Object.defineProperty(ColorTransform.prototype, \"adaptee\", {\n // \"blueMultiplier\", \"alphaMultiplier\", \"redOffset\",\n // \"greenOffset\", \"blueOffset\", \"alphaOffset\",\n // \"color\", \"color\", \"concat\", \"toString\"];\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"alphaMultiplier\", {\n /**\n * A decimal value that is multiplied with the alpha transparency channel\n * value.\n *\n * <p>If you set the alpha transparency value of a display object directly by\n * using the <code>alpha</code> property of the DisplayObject instance, it\n * affects the value of the <code>alphaMultiplier</code> property of that\n * display object's <code>transform.colorTransform</code> property.</p>\n */\n get: function () {\n return this._adaptee._rawData[3];\n },\n set: function (value) {\n this._adaptee._rawData[3] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"alphaOffset\", {\n /**\n * A number from -255 to 255 that is added to the alpha transparency channel\n * value after it has been multiplied by the <code>alphaMultiplier</code>\n * value.\n */\n get: function () {\n return this._adaptee._rawData[7];\n },\n set: function (value) {\n this._adaptee._rawData[7] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"blueMultiplier\", {\n /**\n * A decimal value that is multiplied with the blue channel value.\n */\n get: function () {\n return this._adaptee._rawData[2];\n },\n set: function (value) {\n this._adaptee._rawData[2] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"blueOffset\", {\n /**\n * A number from -255 to 255 that is added to the blue channel value after it\n * has been multiplied by the <code>blueMultiplier</code> value.\n */\n get: function () {\n return this._adaptee._rawData[6];\n },\n set: function (value) {\n this._adaptee._rawData[6] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"greenMultiplier\", {\n /**\n * A decimal value that is multiplied with the green channel value.\n */\n get: function () {\n return this._adaptee._rawData[1];\n },\n set: function (value) {\n this._adaptee._rawData[1] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"greenOffset\", {\n /**\n * A number from -255 to 255 that is added to the green channel value after\n * it has been multiplied by the <code>greenMultiplier</code> value.\n */\n get: function () {\n return this._adaptee._rawData[5];\n },\n set: function (value) {\n this._adaptee._rawData[5] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"redMultiplier\", {\n /**\n * A decimal value that is multiplied with the red channel value.\n */\n get: function () {\n return this._adaptee._rawData[0];\n },\n set: function (value) {\n this._adaptee._rawData[0] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"redOffset\", {\n /**\n * A number from -255 to 255 that is added to the red channel value after it\n * has been multiplied by the <code>redMultiplier</code> value.\n */\n get: function () {\n return this._adaptee._rawData[4];\n },\n set: function (value) {\n this._adaptee._rawData[4] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorTransform.prototype, \"color\", {\n get: function () {\n return this._adaptee.color;\n },\n set: function (value) {\n this._adaptee.color = +value;\n },\n enumerable: false,\n configurable: true\n });\n ColorTransform.prototype.concat = function (second) {\n this._adaptee.concat(second.adaptee);\n };\n ColorTransform.prototype.preMultiply = function (second) {\n this._adaptee._rawData[4] += second.adaptee._rawData[4] * this._adaptee._rawData[0];\n this._adaptee._rawData[5] += second.adaptee._rawData[5] * this._adaptee._rawData[1];\n this._adaptee._rawData[6] += second.adaptee._rawData[6] * this._adaptee._rawData[2];\n this._adaptee._rawData[7] += second.adaptee._rawData[7] * this._adaptee._rawData[3];\n this._adaptee._rawData[0] *= second.adaptee._rawData[0];\n this._adaptee._rawData[1] *= second.adaptee._rawData[1];\n this._adaptee._rawData[2] *= second.adaptee._rawData[2];\n this._adaptee._rawData[3] *= second.adaptee._rawData[3];\n };\n ColorTransform.prototype.copyFrom = function (sourceColorTransform) {\n this._adaptee.copyFrom(sourceColorTransform.adaptee);\n };\n ColorTransform.prototype.setTo = function (redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier, redOffset, greenOffset, blueOffset, alphaOffset) {\n var rm = +redMultiplier, gm = +greenMultiplier, bm = +blueMultiplier, am = +alphaMultiplier;\n this._adaptee._rawData[0] = (rm === rm) ? rm : 1;\n this._adaptee._rawData[1] = (gm === gm) ? gm : 1;\n this._adaptee._rawData[2] = (bm === bm) ? bm : 1;\n this._adaptee._rawData[3] = (am === am) ? am : 1;\n this._adaptee._rawData[4] = +redOffset || 0;\n this._adaptee._rawData[5] = +greenOffset || 0;\n this._adaptee._rawData[6] = +blueOffset || 0;\n this._adaptee._rawData[7] = +alphaOffset || 0;\n };\n ColorTransform.prototype.clone = function () {\n return new this.sec.flash.geom.ColorTransform(this._adaptee._rawData[0], this._adaptee._rawData[1], this._adaptee._rawData[2], this._adaptee._rawData[3], this._adaptee._rawData[4], this._adaptee._rawData[5], this._adaptee._rawData[6], this._adaptee._rawData[7]);\n };\n ColorTransform.prototype.convertToFixedPoint = function () {\n this._adaptee._rawData[0] = clampS8U8(this._adaptee._rawData[0]);\n this._adaptee._rawData[1] = clampS8U8(this._adaptee._rawData[1]);\n this._adaptee._rawData[2] = clampS8U8(this._adaptee._rawData[2]);\n this._adaptee._rawData[3] = clampS8U8(this._adaptee._rawData[3]);\n this._adaptee._rawData[4] = toS16(this._adaptee._rawData[4]);\n this._adaptee._rawData[5] = toS16(this._adaptee._rawData[5]);\n this._adaptee._rawData[6] = toS16(this._adaptee._rawData[6]);\n this._adaptee._rawData[7] = toS16(this._adaptee._rawData[7]);\n return this;\n };\n ColorTransform.prototype.dispose = function () {\n throw new AbstractMethodError();\n };\n ColorTransform.prototype.equals = function (other) {\n if (this === other)\n return true;\n return this._adaptee._rawData[0] === other._adaptee._rawData[0] &&\n this._adaptee._rawData[1] === other._adaptee._rawData[1] &&\n this._adaptee._rawData[2] === other._adaptee._rawData[2] &&\n this._adaptee._rawData[3] === other._adaptee._rawData[3] &&\n this._adaptee._rawData[4] === other._adaptee._rawData[4] &&\n this._adaptee._rawData[5] === other._adaptee._rawData[5] &&\n this._adaptee._rawData[6] === other._adaptee._rawData[6] &&\n this._adaptee._rawData[7] === other._adaptee._rawData[7];\n };\n ColorTransform.prototype.toString = function () {\n return '(redMultiplier=' + this._adaptee._rawData[0] +\n ', greenMultiplier=' + this._adaptee._rawData[1] +\n ', blueMultiplier=' + this._adaptee._rawData[2] +\n ', alphaMultiplier=' + this._adaptee._rawData[3] +\n ', redOffset=' + this._adaptee._rawData[4] +\n ', greenOffset=' + this._adaptee._rawData[5] +\n ', blueOffset=' + this._adaptee._rawData[6] +\n ', alphaOffset=' + this._adaptee._rawData[7] +\n ')';\n };\n ColorTransform.classSymbols = null; // [];\n ColorTransform.instanceSymbols = null; // [\"redMultiplier\", \"greenMultiplier\",\n return ColorTransform;\n}(ASObject));\nexport { ColorTransform };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Matrix as AwayMatrix } from '@awayjs/core';\nvar Matrix = /** @class */ (function (_super) {\n __extends(Matrix, _super);\n /**\n * Creates a new Matrix object with the specified parameters. In matrix\n * notation, the properties are organized like this:\n *\n * <p>If you do not provide any parameters to the <code>new Matrix()</code>\n * constructor, it creates an <i>identity matrix</i> with the following\n * values:</p>\n *\n * <p>In matrix notation, the identity matrix looks like this:</p>\n *\n * @param a The value that affects the positioning of pixels along the\n * <i>x</i> axis when scaling or rotating an image.\n * @param b The value that affects the positioning of pixels along the\n * <i>y</i> axis when rotating or skewing an image.\n * @param c The value that affects the positioning of pixels along the\n * <i>x</i> axis when rotating or skewing an image.\n * @param d The value that affects the positioning of pixels along the\n * <i>y</i> axis when scaling or rotating an image..\n * @param tx The distance by which to translate each point along the <i>x</i>\n * axis.\n * @param ty The distance by which to translate each point along the <i>y</i>\n * axis.\n */\n function Matrix(aAdaptee, b, c, d, tx, ty) {\n if (aAdaptee === void 0) { aAdaptee = 1; }\n if (b === void 0) { b = 0; }\n if (c === void 0) { c = 0; }\n if (d === void 0) { d = 1; }\n if (tx === void 0) { tx = 0; }\n if (ty === void 0) { ty = 0; }\n var _this = _super.call(this) || this;\n _this._adaptee = (aAdaptee instanceof AwayMatrix) ? aAdaptee : new AwayMatrix(+aAdaptee, +b, +c, +d, +tx, +ty);\n return _this;\n }\n Matrix.classInitializer = function () {\n this.FROZEN_IDENTITY_MATRIX = Object.freeze(this.axConstruct([]));\n this.TEMP_MATRIX = this.axConstruct([]);\n };\n Object.defineProperty(Matrix.prototype, \"adaptee\", {\n // \"invert\", \"identity\", \"createBox\",\n // \"createGradientBox\", \"rotate\", \"translate\",\n // \"scale\", \"deltaTransformPoint\", \"transformPoint\",\n // \"copyFrom\", \"setTo\", \"copyRowTo\", \"copyColumnTo\",\n // \"copyRowFrom\", \"copyColumnFrom\", \"clone\",\n // \"toString\"];\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"a\", {\n /**\n * The value that affects the positioning of pixels along the <i>x</i> axis\n * when scaling or rotating an image.\n */\n get: function () {\n return this._adaptee.rawData[0];\n },\n set: function (value) {\n this._adaptee.rawData[0] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"b\", {\n /**\n * The value that affects the positioning of pixels along the <i>y</i> axis\n * when rotating or skewing an image.\n */\n get: function () {\n return this._adaptee.rawData[1];\n },\n set: function (value) {\n this._adaptee.rawData[1] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"c\", {\n /**\n * The value that affects the positioning of pixels along the <i>x</i> axis\n * when rotating or skewing an image.\n */\n get: function () {\n return this._adaptee.rawData[2];\n },\n set: function (value) {\n this._adaptee.rawData[2] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"d\", {\n /**\n * The value that affects the positioning of pixels along the <i>y</i> axis\n * when scaling or rotating an image.\n */\n get: function () {\n return this._adaptee.rawData[3];\n },\n set: function (value) {\n this._adaptee.rawData[3] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"tx\", {\n /**\n * The distance by which to translate each point along the <i>x</i> axis.\n */\n get: function () {\n return this._adaptee.rawData[4];\n },\n set: function (value) {\n this._adaptee.rawData[4] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix.prototype, \"ty\", {\n /**\n * The distance by which to translate each point along the <i>y</i> axis.\n */\n get: function () {\n return this._adaptee.rawData[5];\n },\n set: function (value) {\n this._adaptee.rawData[5] = value;\n },\n enumerable: false,\n configurable: true\n });\n Matrix.FromUntyped = function (object) {\n return new this.sec.flash.geom.Matrix(object.a, object.b, object.c, object.d, object.tx, object.ty);\n };\n // Keep in sync with writeExternal below!\n Matrix.FromDataBuffer = function (input) {\n return new this.sec.flash.geom.Matrix(input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat(), input.readFloat());\n };\n /**\n * Concatenates a matrix with the current matrix, effectively combining the\n * geometric effects of the two. In mathematical terms, concatenating two\n * matrixes is the same as combining them using matrix multiplication.\n *\n * <p>For example, if matrix <code>m1</code> scales an object by a factor of\n * four, and matrix <code>m2</code> rotates an object by 1.5707963267949\n * radians(<code>Math.PI/2</code>), then <code>m1.concat(m2)</code>\n * transforms <code>m1</code> into a matrix that scales an object by a factor\n * of four and rotates the object by <code>Math.PI/2</code> radians. </p>\n *\n * <p>This method replaces the source matrix with the concatenated matrix. If\n * you want to concatenate two matrixes without altering either of the two\n * source matrixes, first copy the source matrix by using the\n * <code>clone()</code> method, as shown in the Class Examples section.</p>\n *\n * @param matrix The matrix to be concatenated to the source matrix.\n */\n Matrix.prototype.concat = function (other) {\n this._adaptee.concat(other.adaptee);\n };\n /**\n * Performs the opposite transformation of the original matrix. You can apply\n * an inverted matrix to an object to undo the transformation performed when\n * applying the original matrix.\n */\n Matrix.prototype.invert = function () {\n this._adaptee.invert();\n };\n /**\n * Sets each matrix property to a value that causes a null transformation. An\n * object transformed by applying an identity matrix will be identical to the\n * original.\n *\n * <p>After calling the <code>identity()</code> method, the resulting matrix\n * has the following properties: <code>a</code>=1, <code>b</code>=0,\n * <code>c</code>=0, <code>d</code>=1, <code>tx</code>=0,\n * <code>ty</code>=0.</p>\n *\n * <p>In matrix notation, the identity matrix looks like this:</p>\n *\n */\n Matrix.prototype.identity = function () {\n this._adaptee.identity();\n };\n /**\n * Includes parameters for scaling, rotation, and translation. When applied\n * to a matrix it sets the matrix's values based on those parameters.\n *\n * <p>Using the <code>createBox()</code> method lets you obtain the same\n * matrix as you would if you applied the <code>identity()</code>,\n * <code>rotate()</code>, <code>scale()</code>, and <code>translate()</code>\n * methods in succession. For example, <code>mat1.createBox(2,2,Math.PI/4,\n * 100, 100)</code> has the same effect as the following:</p>\n *\n * @param scaleX The factor by which to scale horizontally.\n * @param scaleY The factor by which scale vertically.\n * @param rotation The amount to rotate, in radians.\n * @param tx The number of pixels to translate(move) to the right\n * along the <i>x</i> axis.\n * @param ty The number of pixels to translate(move) down along the\n * <i>y</i> axis.\n */\n Matrix.prototype.createBox = function (scaleX, scaleY, rotation, tx, ty) {\n if (rotation === void 0) { rotation = 0; }\n if (tx === void 0) { tx = 0; }\n if (ty === void 0) { ty = 0; }\n this._adaptee.createBox(scaleX, scaleY, rotation, tx, ty);\n };\n /**\n * Creates the specific style of matrix expected by the\n * <code>beginGradientFill()</code> and <code>lineGradientStyle()</code>\n * methods of the Graphics class. Width and height are scaled to a\n * <code>scaleX</code>/<code>scaleY</code> pair and the\n * <code>tx</code>/<code>ty</code> values are offset by half the width and\n * height.\n *\n * <p>For example, consider a gradient with the following\n * characteristics:</p>\n *\n * <ul>\n * <li><code>GradientType.LINEAR</code></li>\n * <li>Two colors, green and blue, with the ratios array set to <code>[0,\n * 255]</code></li>\n * <li><code>SpreadMethod.PAD</code></li>\n * <li><code>InterpolationMethod.LINEAR_RGB</code></li>\n * </ul>\n *\n * <p>The following illustrations show gradients in which the matrix was\n * defined using the <code>createGradientBox()</code> method with different\n * parameter settings:</p>\n *\n * @param width The width of the gradient box.\n * @param height The height of the gradient box.\n * @param rotation The amount to rotate, in radians.\n * @param tx The distance, in pixels, to translate to the right along\n * the <i>x</i> axis. This value is offset by half of the\n * <code>width</code> parameter.\n * @param ty The distance, in pixels, to translate down along the\n * <i>y</i> axis. This value is offset by half of the\n * <code>height</code> parameter.\n */\n Matrix.prototype.createGradientBox = function (width, height, rotation, tx, ty) {\n if (rotation === void 0) { rotation = 0; }\n if (tx === void 0) { tx = 0; }\n if (ty === void 0) { ty = 0; }\n this._adaptee.createGradientBox(width, height, rotation, tx, ty);\n };\n /**\n * Applies a rotation transformation to the Matrix object.\n *\n * <p>The <code>rotate()</code> method alters the <code>a</code>,\n * <code>b</code>, <code>c</code>, and <code>d</code> properties of the\n * Matrix object. In matrix notation, this is the same as concatenating the\n * current matrix with the following:</p>\n *\n * @param angle The rotation angle in radians.\n */\n Matrix.prototype.rotate = function (angle) {\n this._adaptee.rotate(angle);\n };\n /**\n * Translates the matrix along the <i>x</i> and <i>y</i> axes, as specified\n * by the <code>dx</code> and <code>dy</code> parameters.\n *\n * @param dx The amount of movement along the <i>x</i> axis to the right, in\n * pixels.\n * @param dy The amount of movement down along the <i>y</i> axis, in pixels.\n */\n Matrix.prototype.translate = function (dx, dy) {\n this._adaptee.translate(dx, dy);\n };\n /**\n * Applies a scaling transformation to the matrix. The <i>x</i> axis is\n * multiplied by <code>sx</code>, and the <i>y</i> axis it is multiplied by\n * <code>sy</code>.\n *\n * <p>The <code>scale()</code> method alters the <code>a</code> and\n * <code>d</code> properties of the Matrix object. In matrix notation, this\n * is the same as concatenating the current matrix with the following\n * matrix:</p>\n *\n * @param sx A multiplier used to scale the object along the <i>x</i> axis.\n * @param sy A multiplier used to scale the object along the <i>y</i> axis.\n */\n Matrix.prototype.scale = function (sx, sy) {\n this._adaptee.scale(sx, sy);\n };\n /**\n * Given a point in the pretransform coordinate space, returns the\n * coordinates of that point after the transformation occurs. Unlike the\n * standard transformation applied using the <code>transformPoint()</code>\n * method, the <code>deltaTransformPoint()</code> method's transformation\n * does not consider the translation parameters <code>tx</code> and\n * <code>ty</code>.\n *\n * @param point The point for which you want to get the result of the matrix\n * transformation.\n * @return The point resulting from applying the matrix transformation.\n */\n Matrix.prototype.deltaTransformPoint = function (point) {\n return new this.sec.flash.geom.Point(this._adaptee.deltaTransformPoint(point.adaptee));\n };\n /**\n * Returns the result of applying the geometric transformation represented by\n * the Matrix object to the specified point.\n *\n * @param point The point for which you want to get the result of the Matrix\n * transformation.\n * @return The point resulting from applying the Matrix transformation.\n */\n Matrix.prototype.transformPoint = function (point) {\n return new this.sec.flash.geom.Point(this._adaptee.transformPoint(point.adaptee));\n };\n /**\n * Copies all of the matrix data from the source Point object into the\n * calling Matrix object.\n *\n * @param sourceMatrix The Matrix object from which to copy the data.\n */\n Matrix.prototype.copyFrom = function (sourceMatrix) {\n this._adaptee.copyFrom(sourceMatrix.adaptee);\n };\n /**\n * Sets the members of Matrix to the specified values.\n *\n * @param a The value that affects the positioning of pixels along the\n * <i>x</i> axis when scaling or rotating an image.\n * @param b The value that affects the positioning of pixels along the\n * <i>y</i> axis when rotating or skewing an image.\n * @param c The value that affects the positioning of pixels along the\n * <i>x</i> axis when rotating or skewing an image.\n * @param d The value that affects the positioning of pixels along the\n * <i>y</i> axis when scaling or rotating an image..\n * @param tx The distance by which to translate each point along the <i>x</i>\n * axis.\n * @param ty The distance by which to translate each point along the <i>y</i>\n * axis.\n */\n Matrix.prototype.setTo = function (a, b, c, d, tx, ty) {\n this._adaptee.setTo(a, b, c, d, tx, ty);\n };\n /**\n * Copies specific row of the calling Matrix object into the Vector3D object.\n * The w element of the Vector3D object will not be changed.\n *\n * @param row The row from which to copy the data from.\n * @param vector3D The Vector3D object from which to copy the data.\n */\n Matrix.prototype.copyRowTo = function (row, vector3D) {\n this._adaptee.copyRowTo(row, vector3D.adaptee);\n };\n /**\n * Copies specific column of the calling Matrix object into the Vector3D\n * object. The w element of the Vector3D object will not be changed.\n *\n * @param column The column from which to copy the data from.\n * @param vector3D The Vector3D object from which to copy the data.\n */\n Matrix.prototype.copyColumnTo = function (column, vector3D) {\n this._adaptee.copyColumnTo(column, vector3D.adaptee);\n };\n /**\n * Copies a Vector3D object into specific row of the calling Matrix object.\n *\n * @param row The row from which to copy the data from.\n * @param vector3D The Vector3D object from which to copy the data.\n */\n Matrix.prototype.copyRowFrom = function (row, vector3D) {\n this._adaptee.copyRowFrom(row, vector3D.adaptee);\n };\n /**\n * Copies a Vector3D object into specific column of the calling Matrix3D\n * object.\n *\n * @param column The column from which to copy the data from.\n * @param vector3D The Vector3D object from which to copy the data.\n */\n Matrix.prototype.copyColumnFrom = function (column, vector3D) {\n this._adaptee.copyColumnFrom(column, vector3D.adaptee);\n };\n /**\n * Returns a new Matrix object that is a clone of this matrix, with an exact\n * copy of the contained object.\n *\n * @return A Matrix object.\n */\n Matrix.prototype.clone = function () {\n return new this.sec.flash.geom.Matrix(this._adaptee.clone());\n };\n Matrix.prototype.toString = function () {\n var m = this._adaptee.rawData;\n return '(a=' + m[0] + ', b=' + m[1] + ', c=' + m[2] + ', d=' + m[3] + ', tx=' + m[4] + ', ty=' + m[5] + ')';\n };\n // Keep in sync with static FromDataBuffer above!\n Matrix.prototype.writeExternal = function (output) {\n var m = this._adaptee.rawData;\n output.writeFloat(m[0]);\n output.writeFloat(m[1]);\n output.writeFloat(m[2]);\n output.writeFloat(m[3]);\n output.writeFloat(m[4]);\n output.writeFloat(m[5]);\n };\n Matrix.classSymbols = null; // [];\n Matrix.instanceSymbols = null; // [\"a\", \"b\", \"c\", \"d\", \"tx\", \"ty\", \"concat\",\n return Matrix;\n}(ASObject));\nexport { Matrix };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { notImplemented, release, somewhatImplemented } from '@awayfl/swf-loader';\nimport { axCoerceString } from '@awayjs/graphics';\nimport { Matrix3D as AwayMatrix3D } from '@awayjs/core';\n/*\n * _matrix stores data by columns\n * | 0 4 8 12 |\n * | 1 5 9 13 |\n * | 2 6 10 14 |\n * | 3 7 11 15 |\n */\nvar transposeTransform = new Uint32Array([\n 0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15\n]);\nvar Matrix3D = /** @class */ (function (_super) {\n __extends(Matrix3D, _super);\n function Matrix3D(v) {\n if (v === void 0) { v = null; }\n var _this = _super.call(this) || this;\n if (v instanceof AwayMatrix3D) {\n _this._adaptee = v;\n }\n else {\n _this._adaptee = new AwayMatrix3D();\n if (v && v.length >= 16) {\n _this.copyRawDataFrom(v, 0, false);\n }\n else {\n _this.identity();\n }\n }\n return _this;\n }\n Object.defineProperty(Matrix3D.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Matrix3D.interpolate = function (thisMat, toMat, percent) {\n percent = +percent;\n release || notImplemented('public flash.geom.Matrix3D::static interpolate');\n return;\n };\n Object.defineProperty(Matrix3D.prototype, \"rawData\", {\n get: function () {\n var result = new this.sec.Float64Vector();\n this.copyRawDataTo(result, 0, false);\n return result;\n },\n set: function (v) {\n this.copyRawDataFrom(v, 0, false);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix3D.prototype, \"position\", {\n get: function () {\n return new this.sec.flash.geom.Vector3D(this._adaptee.position);\n },\n set: function (pos) {\n this.copyColumnFrom(3, pos);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Matrix3D.prototype, \"determinant\", {\n get: function () {\n return this._adaptee.determinant;\n },\n enumerable: false,\n configurable: true\n });\n Matrix3D.prototype.clone = function () {\n return new this.sec.flash.geom.Matrix3D(this._adaptee.clone());\n };\n Matrix3D.prototype.copyToMatrix3D = function (dest) {\n this._adaptee.copyTo(dest.adaptee);\n };\n Matrix3D.prototype.append = function (lhs) {\n this._adaptee.append(lhs.adaptee);\n };\n Matrix3D.prototype.prepend = function (rhs) {\n this._adaptee.prepend(rhs.adaptee);\n };\n Matrix3D.prototype.invert = function () {\n return this._adaptee.invert();\n };\n Matrix3D.prototype.identity = function () {\n this._adaptee.identity();\n };\n Matrix3D.prototype.decompose = function (orientationStyle) {\n if (orientationStyle === void 0) { orientationStyle = 'eulerAngles'; }\n var array = this._adaptee.decompose(axCoerceString(orientationStyle));\n var v = new this.sec.ObjectVector(3, true);\n for (var i = 0; i < 3; i++)\n v.axSetNumericProperty(i, new this.sec.flash.geom.Vector3D(array[i]));\n return v;\n };\n Matrix3D.prototype.recompose = function (components, orientationStyle) {\n if (orientationStyle === void 0) { orientationStyle = 'eulerAngles'; }\n //this._adaptee.recompose()\n orientationStyle = axCoerceString(orientationStyle);\n release || notImplemented('public flash.geom.Matrix3D::recompose');\n return;\n };\n Matrix3D.prototype.appendTranslation = function (x, y, z) {\n this._adaptee.appendTranslation(+x, +y, +z);\n };\n Matrix3D.prototype.appendRotation = function (degrees, axis, pivotPoint) {\n if (pivotPoint === void 0) { pivotPoint = null; }\n release || somewhatImplemented('public flash.geom.Matrix3D::appendRotation');\n this._adaptee.appendRotation(+degrees, axis.adaptee);\n };\n Matrix3D.prototype.appendScale = function (xScale, yScale, zScale) {\n this._adaptee.appendScale(+xScale, +yScale, +zScale);\n };\n Matrix3D.prototype.prependTranslation = function (x, y, z) {\n this._adaptee.prependTranslation(+x, +y, +z);\n };\n Matrix3D.prototype.prependRotation = function (degrees, axis, pivotPoint) {\n if (pivotPoint === void 0) { pivotPoint = null; }\n release || somewhatImplemented('public flash.geom.Matrix3D::prependRotation');\n this._adaptee.prependRotation(+degrees, axis.adaptee);\n };\n Matrix3D.prototype.prependScale = function (xScale, yScale, zScale) {\n this._adaptee.prependScale(+xScale, +yScale, +zScale);\n };\n Matrix3D.prototype.transformVector = function (v) {\n return new this.sec.flash.geom.Vector3D(this._adaptee.transformVector(v.adaptee, null, true));\n };\n Matrix3D.prototype.deltaTransformVector = function (v) {\n return new this.sec.flash.geom.Vector3D(this._adaptee.deltaTransformVector(v.adaptee));\n };\n Matrix3D.prototype.transformVectors = function (vin, vout) {\n var m = this._adaptee._rawData;\n var m11 = m[0], m12 = m[4], m13 = m[8], m14 = m[12], m21 = m[1], m22 = m[5], m23 = m[9], m24 = m[13], m31 = m[2], m32 = m[6], m33 = m[10], m34 = m[14];\n for (var i = 0; i < vin.length - 2; i += 3) {\n var x = vin.axGetNumericProperty(i), y = vin.axGetNumericProperty(i + 1), z = vin.axGetNumericProperty(i + 2);\n vout.push(m11 * x + m12 * y + m13 * z + m14);\n vout.push(m21 * x + m22 * y + m23 * z + m24);\n vout.push(m31 * x + m32 * y + m33 * z + m34);\n }\n };\n Matrix3D.prototype.transpose = function () {\n this._adaptee.transpose();\n };\n Matrix3D.prototype.pointAt = function (pos, at, up) {\n if (at === void 0) { at = null; }\n if (up === void 0) { up = null; }\n release || notImplemented('public flash.geom.Matrix3D::pointAt');\n return;\n };\n Matrix3D.prototype.interpolateTo = function (toMat, percent) {\n percent = +percent;\n release || notImplemented('public flash.geom.Matrix3D::interpolateTo');\n return;\n };\n Matrix3D.prototype.copyFrom = function (sourceMatrix3D) {\n this._adaptee.copyFrom(sourceMatrix3D.adaptee);\n };\n Matrix3D.prototype.copyRawDataTo = function (vector, index, transpose) {\n if (index === void 0) { index = 0; }\n if (transpose === void 0) { transpose = false; }\n index = index >>> 0;\n transpose = !!transpose;\n var m = this._adaptee._rawData;\n if (transpose) {\n for (var i = 0, j = index | 0; i < 16; i++, j++) {\n vector.axSetNumericProperty(j, m[transposeTransform[i]]);\n }\n }\n else {\n for (var i = 0, j = index | 0; i < 16; i++, j++) {\n vector.axSetNumericProperty(j, m[i]);\n }\n }\n };\n Matrix3D.prototype.copyRawDataFrom = function (vector, index, transpose) {\n if (index === void 0) { index = 0; }\n if (transpose === void 0) { transpose = false; }\n index = index >>> 0;\n transpose = !!transpose;\n var m = this._adaptee._rawData;\n if (transpose) {\n for (var i = 0, j = index | 0; i < 16; i++, j++) {\n m[transposeTransform[i]] = vector.axGetNumericProperty(j) || 0; // removing NaN\n }\n }\n else {\n for (var i = 0, j = index | 0; i < 16; i++, j++) {\n m[i] = vector.axGetNumericProperty(j) || 0; // removing NaN\n }\n }\n };\n Matrix3D.prototype.copyRowTo = function (row /*uint*/, vector3D) {\n this._adaptee.copyRowTo(row >>> 0, vector3D.adaptee);\n };\n Matrix3D.prototype.copyColumnTo = function (column /*uint*/, vector3D) {\n this._adaptee.copyColumnTo(column >>> 0, vector3D.adaptee);\n };\n Matrix3D.prototype.copyRowFrom = function (row /*uint*/, vector3D) {\n this._adaptee.copyRowFrom(row >>> 0, vector3D.adaptee);\n };\n Matrix3D.prototype.copyColumnFrom = function (column /*uint*/, vector3D) {\n this._adaptee.copyColumnFrom(column >>> 0, vector3D.adaptee);\n };\n Matrix3D.classInitializer = null;\n return Matrix3D;\n}(ASObject));\nexport { Matrix3D };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Point as AwayPoint } from '@awayjs/core';\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n /**\n * Creates a new point. If you pass no parameters to this method, a point is\n * created at(0,0).\n *\n * @param x The horizontal coordinate.\n * @param y The vertical coordinate.\n */\n function Point(xAdaptee, y) {\n if (xAdaptee === void 0) { xAdaptee = 0; }\n if (y === void 0) { y = 0; }\n var _this = _super.call(this) || this;\n _this._constructorCalled = true;\n _this._adaptee = (xAdaptee instanceof AwayPoint) ? xAdaptee : new AwayPoint(+xAdaptee, +y);\n _this._constructorCalled = true;\n return _this;\n }\n Object.defineProperty(Point.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Point.prototype, \"x\", {\n /**\n * The horizontal coordinate of the point. The default value is 0.\n */\n get: function () {\n if (!this._constructorCalled) {\n console.warn('[Point] Read x before call constructor');\n return 0;\n }\n return this._adaptee._rawData[0];\n },\n set: function (value) {\n this._adaptee._rawData[0] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Point.prototype, \"y\", {\n /**\n * The vertical coordinate of the point. The default value is 0.\n */\n get: function () {\n if (!this._constructorCalled) {\n console.warn('[Point] Read y before call constructor');\n return 0;\n }\n return this._adaptee._rawData[1];\n },\n set: function (value) {\n this._adaptee._rawData[1] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Point.prototype, \"length\", {\n /**\n * The length of the line segment from(0,0) to this point.\n */\n get: function () {\n return this._adaptee.length;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Determines a point between two specified points. The parameter\n * <code>f</code> determines where the new interpolated point is located\n * relative to the two end points specified by parameters <code>pt1</code>\n * and <code>pt2</code>. The closer the value of the parameter <code>f</code>\n * is to <code>1.0</code>, the closer the interpolated point is to the first\n * point(parameter <code>pt1</code>). The closer the value of the parameter\n * <code>f</code> is to 0, the closer the interpolated point is to the second\n * point(parameter <code>pt2</code>).\n *\n * @param pt1 The first point.\n * @param pt2 The second point.\n * @param f The level of interpolation between the two points. Indicates\n * where the new point will be, along the line between\n * <code>pt1</code> and <code>pt2</code>. If <code>f</code>=1,\n * <code>pt1</code> is returned; if <code>f</code>=0,\n * <code>pt2</code> is returned.\n * @return The new, interpolated point.\n */\n Point.interpolate = function (pt1, pt2, f) {\n return new this.sec.flash.geom.Point(AwayPoint.interpolate(pt1.adaptee, pt2.adaptee, f));\n };\n /**\n * Returns the distance between <code>pt1</code> and <code>pt2</code>.\n *\n * @param pt1 The first point.\n * @param pt2 The second point.\n * @return The distance between the first and second points.\n */\n Point.distance = function (pt1, pt2) {\n return AwayPoint.distance(pt1.adaptee, pt2.adaptee);\n };\n /**\n * Converts a pair of polar coordinates to a Cartesian point coordinate.\n *\n * @param len The length coordinate of the polar pair.\n * @param angle The angle, in radians, of the polar pair.\n * @return The Cartesian point.\n */\n Point.polar = function (len, angle) {\n return new this.sec.flash.geom.Point(AwayPoint.polar(+len, +angle));\n };\n /**\n * Creates a copy of this Point object.\n *\n * @return The new Point object.\n */\n Point.prototype.clone = function () {\n return new this.sec.flash.geom.Point(this._adaptee.clone());\n };\n /**\n * Offsets the Point object by the specified amount. The value of\n * <code>dx</code> is added to the original value of <i>x</i> to create the\n * new <i>x</i> value. The value of <code>dy</code> is added to the original\n * value of <i>y</i> to create the new <i>y</i> value.\n *\n * @param dx The amount by which to offset the horizontal coordinate,\n * <i>x</i>.\n * @param dy The amount by which to offset the vertical coordinate, <i>y</i>.\n */\n Point.prototype.offset = function (dx, dy) {\n this._adaptee.offset(dx, dy);\n };\n /**\n * Determines whether two points are equal. Two points are equal if they have\n * the same <i>x</i> and <i>y</i> values.\n *\n * @param toCompare The point to be compared.\n * @return A value of <code>true</code> if the object is equal to this Point\n * object; <code>false</code> if it is not equal.\n */\n Point.prototype.equals = function (toCompare) {\n return this._adaptee.equals(toCompare.adaptee);\n };\n /**\n * Subtracts the coordinates of another point from the coordinates of this\n * point to create a new point.\n *\n * @param v The point to be subtracted.\n * @return The new point.\n */\n Point.prototype.subtract = function (v) {\n return new this.sec.flash.geom.Point(this._adaptee.subtract(v.adaptee));\n };\n /**\n * Adds the coordinates of another point to the coordinates of this point to\n * create a new point.\n *\n * @param v The point to be added.\n * @return The new point.\n */\n Point.prototype.add = function (v) {\n return new this.sec.flash.geom.Point(this._adaptee.add(v.adaptee));\n };\n /**\n * Scales the line segment between(0,0) and the current point to a set\n * length.\n *\n * @param thickness The scaling value. For example, if the current point is\n * (0,5), and you normalize it to 1, the point returned is\n * at(0,1).\n */\n Point.prototype.normalize = function (thickness) {\n if (thickness === void 0) { thickness = 1; }\n this._adaptee.normalize(+thickness);\n };\n Point.prototype.copyFrom = function (sourcePoint) {\n this._adaptee.copyFrom(sourcePoint.adaptee);\n };\n Point.prototype.setTo = function (x, y) {\n this._adaptee.setTo(x, y);\n };\n Point.prototype.toString = function () {\n return '(x=' + this.x + ', y=' + this.y + ')';\n };\n // Called whenever the class is initialized.\n Point.classInitializer = null;\n // List of static symbols to link.\n Point.classSymbols = null; // [\"interpolate\", \"distance\", \"polar\"];\n // List of instance symbols to link.\n Point.instanceSymbols = null;\n return Point;\n}(ASObject));\nexport { Point };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Rectangle as AwayRectangle } from '@awayjs/core';\nvar Rectangle = /** @class */ (function (_super) {\n __extends(Rectangle, _super);\n /**\n * Creates a new Rectangle object with the top-left corner specified by the\n * <code>x</code> and <code>y</code> parameters and with the specified\n * <code>width</code> and <code>height</code> parameters. If you call this\n * public without parameters, a rectangle with <code>x</code>,\n * <code>y</code>, <code>width</code>, and <code>height</code> properties set\n * to 0 is created.\n *\n * @param x The <i>x</i> coordinate of the top-left corner of the\n * rectangle.\n * @param y The <i>y</i> coordinate of the top-left corner of the\n * rectangle.\n * @param width The width of the rectangle, in pixels.\n * @param height The height of the rectangle, in pixels.\n */\n function Rectangle(xAdaptee, y, width, height) {\n if (xAdaptee === void 0) { xAdaptee = 0; }\n if (y === void 0) { y = 0; }\n if (width === void 0) { width = 0; }\n if (height === void 0) { height = 0; }\n var _this = _super.call(this) || this;\n _this._adaptee = (xAdaptee instanceof AwayRectangle) ? xAdaptee : new AwayRectangle(+xAdaptee, +y, +width, +height);\n return _this;\n }\n Object.defineProperty(Rectangle.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"height\", {\n /**\n * The height of the rectangle, in pixels. Changing the <code>height</code>\n * value of a Rectangle object has no effect on the <code>x</code>,\n * <code>y</code>, and <code>width</code> properties.\n */\n get: function () {\n return this._adaptee._rawData[3];\n },\n set: function (value) {\n this._adaptee._rawData[3] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"width\", {\n /**\n * The width of the rectangle, in pixels. Changing the <code>width</code>\n * value of a Rectangle object has no effect on the <code>x</code>,\n * <code>y</code>, and <code>height</code> properties.\n */\n get: function () {\n return this._adaptee._rawData[2];\n },\n set: function (value) {\n this._adaptee._rawData[2] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"x\", {\n /**\n * The <i>x</i> coordinate of the top-left corner of the rectangle. Changing\n * the value of the <code>x</code> property of a Rectangle object has no\n * effect on the <code>y</code>, <code>width</code>, and <code>height</code>\n * properties.\n *\n * <p>The value of the <code>x</code> property is equal to the value of the\n * <code>left</code> property.</p>\n */\n get: function () {\n return this._adaptee._rawData[0];\n },\n set: function (value) {\n this._adaptee._rawData[0] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"y\", {\n /**\n * The <i>y</i> coordinate of the top-left corner of the rectangle. Changing\n * the value of the <code>y</code> property of a Rectangle object has no\n * effect on the <code>x</code>, <code>width</code>, and <code>height</code>\n * properties.\n *\n * <p>The value of the <code>y</code> property is equal to the value of the\n * <code>top</code> property.</p>\n */\n get: function () {\n return this._adaptee._rawData[1];\n },\n set: function (value) {\n this._adaptee._rawData[1] = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"bottom\", {\n /**\n * The sum of the <code>y</code> and <code>height</code> properties.\n */\n get: function () {\n return this._adaptee.bottom;\n },\n set: function (value) {\n this._adaptee.bottom = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"bottomRight\", {\n /**\n * The location of the Rectangle object's bottom-right corner, determined by\n * the values of the <code>right</code> and <code>bottom</code> properties.\n */\n get: function () {\n return new this.sec.flash.geom.Point(this._adaptee.bottomRight);\n },\n set: function (value) {\n this.bottom = value.y;\n this.right = value.x;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"left\", {\n /**\n * The <i>x</i> coordinate of the top-left corner of the rectangle. Changing\n * the <code>left</code> property of a Rectangle object has no effect on the\n * <code>y</code> and <code>height</code> properties. However it does affect\n * the <code>width</code> property, whereas changing the <code>x</code> value\n * does <i>not</i> affect the <code>width</code> property.\n *\n * <p>The value of the <code>left</code> property is equal to the value of\n * the <code>x</code> property.</p>\n */\n get: function () {\n return this._adaptee.left;\n },\n set: function (value) {\n this._adaptee.left = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"right\", {\n /**\n * The sum of the <code>x</code> and <code>width</code> properties.\n */\n get: function () {\n return this._adaptee.right;\n },\n set: function (value) {\n this._adaptee.right = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"size\", {\n /**\n * The size of the Rectangle object, expressed as a Point object with the\n * values of the <code>width</code> and <code>height</code> properties.\n */\n get: function () {\n return new this.sec.flash.geom.Point(this._adaptee.size);\n },\n set: function (value) {\n this.width = value.x;\n this.height = value.y;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"top\", {\n /**\n * The <i>y</i> coordinate of the top-left corner of the rectangle. Changing\n * the <code>top</code> property of a Rectangle object has no effect on the\n * <code>x</code> and <code>width</code> properties. However it does affect\n * the <code>height</code> property, whereas changing the <code>y</code>\n * value does <i>not</i> affect the <code>height</code> property.\n *\n * <p>The value of the <code>top</code> property is equal to the value of the\n * <code>y</code> property.</p>\n */\n get: function () {\n return this._adaptee.top;\n },\n set: function (value) {\n this._adaptee.top = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"topLeft\", {\n /**\n * The location of the Rectangle object's top-left corner, determined by the\n * <i>x</i> and <i>y</i> coordinates of the point.\n */\n get: function () {\n return new this.sec.flash.geom.Point(this._adaptee.topLeft);\n },\n set: function (value) {\n this.top = value.y;\n this.left = value.x;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Rectangle.prototype, \"area\", {\n get: function () {\n return this.width * this.height;\n },\n enumerable: false,\n configurable: true\n });\n Rectangle.FromBounds = function (bounds) {\n var xMin = bounds.xMin;\n var yMin = bounds.yMin;\n return new this.sec.flash.geom.Rectangle(xMin / 20, yMin / 20, (bounds.xMax - xMin) / 20, (bounds.yMax - yMin) / 20);\n };\n /**\n * Returns a new Rectangle object with the same values for the\n * <code>x</code>, <code>y</code>, <code>width</code>, and\n * <code>height</code> properties as the original Rectangle object.\n *\n * @return A new Rectangle object with the same values for the\n * <code>x</code>, <code>y</code>, <code>width</code>, and\n * <code>height</code> properties as the original Rectangle object.\n */\n Rectangle.prototype.clone = function () {\n return new this.sec.flash.geom.Rectangle(this._adaptee.clone());\n };\n /**\n * Determines whether or not this Rectangle object is empty.\n *\n * @return A value of <code>true</code> if the Rectangle object's width or\n * height is less than or equal to 0; otherwise <code>false</code>.\n */\n Rectangle.prototype.isEmpty = function () {\n return this._adaptee.isEmpty();\n };\n /**\n * Sets all of the Rectangle object's properties to 0. A Rectangle object is\n * empty if its width or height is less than or equal to 0.\n *\n * <p> This method sets the values of the <code>x</code>, <code>y</code>,\n * <code>width</code>, and <code>height</code> properties to 0.</p>\n *\n */\n Rectangle.prototype.setEmpty = function () {\n return this._adaptee.setEmpty();\n };\n /**\n * Increases the size of the Rectangle object by the specified amounts, in\n * pixels. The center point of the Rectangle object stays the same, and its\n * size increases to the left and right by the <code>dx</code> value, and to\n * the top and the bottom by the <code>dy</code> value.\n *\n * @param dx The value to be added to the left and the right of the Rectangle\n * object. The following equation is used to calculate the new\n * width and position of the rectangle:\n * @param dy The value to be added to the top and the bottom of the\n * Rectangle. The following equation is used to calculate the new\n * height and position of the rectangle:\n */\n Rectangle.prototype.inflate = function (dx, dy) {\n this._adaptee.inflate(+dx, +dy);\n };\n /**\n * Increases the size of the Rectangle object. This method is similar to the\n * <code>Rectangle.inflate()</code> method except it takes a Point object as\n * a parameter.\n *\n * <p>The following two code examples give the same result:</p>\n *\n * @param point The <code>x</code> property of this Point object is used to\n * increase the horizontal dimension of the Rectangle object.\n * The <code>y</code> property is used to increase the vertical\n * dimension of the Rectangle object.\n */\n Rectangle.prototype.inflatePoint = function (point) {\n this._adaptee.inflatePoint(point.adaptee);\n };\n /**\n * Adjusts the location of the Rectangle object, as determined by its\n * top-left corner, by the specified amounts.\n *\n * @param dx Moves the <i>x</i> value of the Rectangle object by this amount.\n * @param dy Moves the <i>y</i> value of the Rectangle object by this amount.\n */\n Rectangle.prototype.offset = function (dx, dy) {\n this._adaptee.offset(+dx, +dy);\n };\n /**\n * Adjusts the location of the Rectangle object using a Point object as a\n * parameter. This method is similar to the <code>Rectangle.offset()</code>\n * method, except that it takes a Point object as a parameter.\n *\n * @param point A Point object to use to offset this Rectangle object.\n */\n Rectangle.prototype.offsetPoint = function (point) {\n this._adaptee.offsetPoint(point.adaptee);\n };\n /**\n * Determines whether the specified point is contained within the rectangular\n * region defined by this Rectangle object.\n *\n * @param x The <i>x</i> coordinate(horizontal position) of the point.\n * @param y The <i>y</i> coordinate(vertical position) of the point.\n * @return A value of <code>true</code> if the Rectangle object contains the\n * specified point; otherwise <code>false</code>.\n */\n Rectangle.prototype.contains = function (x, y) {\n return this._adaptee.contains(+x, +y);\n };\n /**\n * Determines whether the specified point is contained within the rectangular\n * region defined by this Rectangle object. This method is similar to the\n * <code>Rectangle.contains()</code> method, except that it takes a Point\n * object as a parameter.\n *\n * @param point The point, as represented by its <i>x</i> and <i>y</i>\n * coordinates.\n * @return A value of <code>true</code> if the Rectangle object contains the\n * specified point; otherwise <code>false</code>.\n */\n Rectangle.prototype.containsPoint = function (point) {\n return this._adaptee.containsPoint(point.adaptee);\n };\n /**\n * Determines whether the Rectangle object specified by the <code>rect</code>\n * parameter is contained within this Rectangle object. A Rectangle object is\n * said to contain another if the second Rectangle object falls entirely\n * within the boundaries of the first.\n *\n * @param rect The Rectangle object being checked.\n * @return A value of <code>true</code> if the Rectangle object that you\n * specify is contained by this Rectangle object; otherwise\n * <code>false</code>.\n */\n Rectangle.prototype.containsRect = function (rect) {\n return this._adaptee.containsRect(rect.adaptee);\n };\n /**\n * If the Rectangle object specified in the <code>toIntersect</code>\n * parameter intersects with this Rectangle object, returns the area of\n * intersection as a Rectangle object. If the rectangles do not intersect,\n * this method returns an empty Rectangle object with its properties set to\n * 0.\n *\n * @param toIntersect The Rectangle object to compare against to see if it\n * intersects with this Rectangle object.\n * @return A Rectangle object that equals the area of intersection. If the\n * rectangles do not intersect, this method returns an empty\n * Rectangle object; that is, a rectangle with its <code>x</code>,\n * <code>y</code>, <code>width</code>, and <code>height</code>\n * properties set to 0.\n */\n Rectangle.prototype.intersection = function (toIntersect) {\n return new this.sec.flash.geom.Rectangle(this._adaptee.intersection(toIntersect.adaptee));\n };\n /**\n * Determines whether the object specified in the <code>toIntersect</code>\n * parameter intersects with this Rectangle object. This method checks the\n * <code>x</code>, <code>y</code>, <code>width</code>, and\n * <code>height</code> properties of the specified Rectangle object to see if\n * it intersects with this Rectangle object.\n *\n * @param toIntersect The Rectangle object to compare against this Rectangle\n * object.\n * @return A value of <code>true</code> if the specified object intersects\n * with this Rectangle object; otherwise <code>false</code>.\n */\n Rectangle.prototype.intersects = function (toIntersect) {\n return this._adaptee.intersects(toIntersect.adaptee);\n };\n /**\n * Adds two rectangles together to create a new Rectangle object, by filling\n * in the horizontal and vertical space between the two rectangles.\n *\n * <p><b>Note:</b> The <code>union()</code> method ignores rectangles with\n * <code>0</code> as the height or width value, such as: <code>var\n * rect2:Rectangle = new Rectangle(300,300,50,0);</code></p>\n *\n * @param toUnion A Rectangle object to add to this Rectangle object.\n * @return A new Rectangle object that is the union of the two rectangles.\n */\n Rectangle.prototype.union = function (toUnion) {\n return new this.sec.flash.geom.Rectangle(this._adaptee.union(toUnion.adaptee));\n };\n /**\n * Determines whether the object specified in the <code>toCompare</code>\n * parameter is equal to this Rectangle object. This method compares the\n * <code>x</code>, <code>y</code>, <code>width</code>, and\n * <code>height</code> properties of an object against the same properties of\n * this Rectangle object.\n *\n * @param toCompare The rectangle to compare to this Rectangle object.\n * @return A value of <code>true</code> if the object has exactly the same\n * values for the <code>x</code>, <code>y</code>, <code>width</code>,\n * and <code>height</code> properties as this Rectangle object;\n * otherwise <code>false</code>.\n */\n Rectangle.prototype.equals = function (toCompare) {\n return this._adaptee.equals(toCompare.adaptee);\n };\n /**\n * Copies all of rectangle data from the source Rectangle object into the\n * calling Rectangle object.\n *\n * @param sourceRect The Rectangle object from which to copy the data.\n */\n Rectangle.prototype.copyFrom = function (sourceRect) {\n this._adaptee.copyFrom(sourceRect.adaptee);\n };\n /**\n * Sets the members of Rectangle to the specified values\n *\n * @param xa The <i>x</i> coordinate of the top-left corner of the\n * rectangle.\n * @param ya The <i>y</i> coordinate of the top-left corner of the\n * rectangle.\n * @param widtha The width of the rectangle, in pixels.\n * @param heighta The height of the rectangle, in pixels.\n */\n Rectangle.prototype.setTo = function (x, y, width, height) {\n this._adaptee.setTo(+x, +y, +width, +height);\n };\n /**\n * Builds and returns a string that lists the horizontal and vertical\n * positions and the width and height of the Rectangle object.\n *\n * @return A string listing the value of each of the following properties of\n * the Rectangle object: <code>x</code>, <code>y</code>,\n * <code>width</code>, and <code>height</code>.\n */\n Rectangle.prototype.toString = function () {\n return '(x=' + this.x + ', y=' + this.y + ', w=' + this.width + ', h=' + this.height + ')';\n };\n Rectangle.prototype.hashCode = function () {\n var hash = 0;\n hash += this.x * 20 | 0;\n hash *= 37;\n hash += this.y * 20 | 0;\n hash *= 37;\n hash += this.width * 20 | 0;\n hash *= 37;\n hash += this.height * 20 | 0;\n return hash;\n };\n Rectangle.prototype.writeExternal = function (output) {\n output.writeFloat(this.x);\n output.writeFloat(this.y);\n output.writeFloat(this.width);\n output.writeFloat(this.height);\n };\n Rectangle.prototype.readExternal = function (input) {\n this.x = input.readFloat();\n this.y = input.readFloat();\n this.width = input.readFloat();\n this.height = input.readFloat();\n };\n // Called whenever the class is initialized.\n Rectangle.classInitializer = null;\n // List of static symbols to link.\n Rectangle.classSymbols = null; // [];\n // List of instance symbols to link.\n Rectangle.instanceSymbols = null;\n return Rectangle;\n}(ASObject));\nexport { Rectangle };\n","import { __extends } from \"tslib\";\nimport { ASObject, Errors, checkNullParameter } from '@awayfl/avm2';\nimport { release, notImplemented } from '@awayfl/swf-loader';\nimport { PerspectiveProjection } from './PerspectiveProjection';\nimport { Transform as AwayTransform } from '@awayjs/core';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: Transform\nvar Transform = /** @class */ (function (_super) {\n __extends(Transform, _super);\n function Transform(displayObjectAdaptee) {\n var _this = _super.call(this) || this;\n if (!displayObjectAdaptee)\n _this.sec.throwError('ArgumentError', Errors.NullPointerError, 'displayObject');\n _this._adaptee = (displayObjectAdaptee instanceof AwayTransform) ? displayObjectAdaptee : new AwayTransform();\n return _this;\n }\n Object.defineProperty(Transform.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Transform.prototype, \"matrix\", {\n get: function () {\n return new this.sec.flash.geom.Matrix(this._adaptee.matrix);\n },\n set: function (value) {\n this._adaptee.matrix = value.adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Transform.prototype, \"colorTransform\", {\n get: function () {\n return new this.sec.flash.geom.ColorTransform(this._adaptee.colorTransform.clone());\n },\n set: function (value) {\n this._adaptee.colorTransform = value.adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Transform.prototype, \"concatenatedMatrix\", {\n get: function () {\n return new this.sec.flash.geom.Matrix(this._adaptee.matrix);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Transform.prototype, \"concatenatedColorTransform\", {\n get: function () {\n release || notImplemented('public flash.geom.Transform::get concatenatedColorTransform');\n return new this.sec.flash.geom.ColorTransform(this._adaptee.colorTransform);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Transform.prototype, \"pixelBounds\", {\n get: function () {\n // Only somewhat implemented because this is largely untested.\n release || notImplemented('public flash.geom.Transform::get pixelBounds');\n return new this.sec.flash.geom.Rectangle(this._adaptee.pixelBounds);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Transform.prototype, \"matrix3D\", {\n get: function () {\n return new this.sec.flash.geom.Matrix3D(this._adaptee.matrix3D);\n },\n set: function (m) {\n release || notImplemented('public flash.geom.Transform::set matrix3D');\n },\n enumerable: false,\n configurable: true\n });\n Transform.prototype.getRelativeMatrix3D = function (relativeTo) {\n checkNullParameter(relativeTo, 'relativeTo', this.sec);\n release || notImplemented('public flash.geom.Transform::getRelativeMatrix3D');\n // TODO: actually calculate the relative matrix.\n return new this.sec.flash.geom.Matrix3D(this._adaptee.matrix3D);\n };\n Object.defineProperty(Transform.prototype, \"perspectiveProjection\", {\n get: function () {\n release || notImplemented('public flash.geom.Transform::get perspectiveProjection');\n return new PerspectiveProjection();\n },\n set: function (projection) {\n release || notImplemented('public flash.geom.Transform::set perspectiveProjection');\n },\n enumerable: false,\n configurable: true\n });\n Transform.classInitializer = null;\n return Transform;\n}(ASObject));\nexport { Transform };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Vector3D as AwayVector3D } from '@awayjs/core';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: Vector3D\nvar Vector3D = /** @class */ (function (_super) {\n __extends(Vector3D, _super);\n /**\n * Creates an instance of a Vector3D object. If you do not specify a\n * parameter for the constructor, a Vector3D object is created with\n * the elements (0,0,0,0).\n *\n * @param x The first element, such as the x coordinate.\n * @param y The second element, such as the y coordinate.\n * @param z The third element, such as the z coordinate.\n * @param w An optional element for additional data such as the angle\n * of rotation.\n */\n function Vector3D(xAdaptee, y, z, w) {\n if (xAdaptee === void 0) { xAdaptee = 0; }\n if (y === void 0) { y = 0; }\n if (z === void 0) { z = 0; }\n if (w === void 0) { w = 0; }\n var _this = _super.call(this) || this;\n _this._adaptee = (xAdaptee instanceof AwayVector3D) ? xAdaptee : new AwayVector3D(+xAdaptee, +y, +z, +w);\n return _this;\n }\n Vector3D.classInitializer = function () {\n this.X_AXIS = Object.freeze(this.Create(1, 0, 0, 0));\n this.Y_AXIS = Object.freeze(this.Create(1, 0, 0, 0));\n this.Z_AXIS = Object.freeze(this.Create(1, 0, 0, 0));\n };\n Vector3D.Create = function (x, y, z, w) {\n var v = Object.create(this.tPrototype);\n v._adaptee = new AwayVector3D(x, y, z, w);\n /*v.x = x;\n v.y = y;\n v.z = z;\n v.w = w;*/\n return v;\n };\n Object.defineProperty(Vector3D.prototype, \"adaptee\", {\n get: function () {\n return this._adaptee;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Vector3D.prototype, \"x\", {\n /**\n * The first element of a Vector3D object, such as the x coordinate of\n * a point in the three-dimensional space. The default value is 0.\n */\n get: function () {\n return this._adaptee._rawData[0];\n },\n set: function (value) {\n this._adaptee._rawData[0] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Vector3D.prototype, \"y\", {\n /*\n *The second element of a Vector3D object, such as the y coordinate of\n * a point in the three-dimensional space. The default value is 0.\n */\n get: function () {\n return this._adaptee._rawData[1];\n },\n set: function (value) {\n this._adaptee._rawData[1] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Vector3D.prototype, \"z\", {\n /**\n * The third element of a Vector3D object, such as the z coordinate of\n * a point in the three-dimensional space. The default value is 0.\n */\n get: function () {\n return this._adaptee._rawData[2];\n },\n set: function (value) {\n this._adaptee._rawData[2] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Vector3D.prototype, \"w\", {\n /**\n * The fourth element of a Vector3D object (in addition to the x, y,\n * and z properties) can hold data such as the angle of rotation. The\n * default value is 0.\n *\n * <p>Quaternion notation employs an angle as the fourth element in\n * its calculation of three-dimensional rotation. The w property can\n * be used to define the angle of rotation about the Vector3D object.\n * The combination of the rotation angle and the coordinates (x,y,z)\n * determines the display object's orientation.</p>\n *\n * <p>In addition, the w property can be used as a perspective warp\n * factor for a projected three-dimensional position or as a projection\n * transform value in representing a three-dimensional coordinate\n * projected into the two-dimensional space. For example, you can\n * create a projection matrix using the <code>Matrix3D.rawData</code>\n * property, that, when applied to a Vector3D object, produces a\n * transform value in the Vector3D object's fourth element (the w\n * property). Dividing the Vector3D object's other elements by the\n * transform value then produces a projected Vector3D object. You can\n * use the <code>Vector3D.project()</code> method to divide the first\n * three elements of a Vector3D object by its fourth element.</p>\n */\n get: function () {\n return this._adaptee._rawData[3];\n },\n set: function (value) {\n this._adaptee._rawData[3] = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Vector3D.prototype, \"length\", {\n /**\n * The length, magnitude, of the current Vector3D object from the\n * origin (0,0,0) to the object's x, y, and z coordinates. The w\n * property is ignored. A unit vector has a length or magnitude of\n * one.\n */\n get: function () {\n return this._adaptee.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Vector3D.prototype, \"lengthSquared\", {\n /**\n * The square of the length of the current Vector3D object, calculated\n * using the x, y, and z properties. The w property is ignored. Use the\n * <code>lengthSquared()</code> method whenever possible instead of the\n * slower <code>Math.sqrt()</code> method call of the\n * <code>Vector3D.length()</code> method.\n */\n get: function () {\n return this._adaptee.lengthSquared;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Returns the angle in radians between two vectors. The returned angle\n * is the smallest radian the first Vector3D object rotates until it\n * aligns with the second Vector3D object.\n *\n * <p>The <code>angleBetween()</code> method is a static method. You\n * can use it directly as a method of the Vector3D class.</p>\n *\n * <p>To convert a degree to a radian, you can use the following\n * formula:</p>\n *\n * <p><code>radian = Math.PI/180 * degree</code></p>\n *\n * @param a The first Vector3D object.\n * @param b The second Vector3D object.\n * @returns The angle between two Vector3D objects.\n */\n Vector3D.angleBetween = function (a, b) {\n return AwayVector3D.angleBetween(a.adaptee, b.adaptee);\n };\n /**\n * Returns the distance between two Vector3D objects. The\n * <code>distance()</code> method is a static method. You can use it\n * directly as a method of the Vector3D export class to get the Euclidean\n * distance between two three-dimensional points.\n *\n * @param pt1 A Vector3D object as the first three-dimensional point.\n * @param pt2 A Vector3D object as the second three-dimensional point.\n * @returns The distance between two Vector3D objects.\n */\n Vector3D.distance = function (pt1, pt2) {\n return AwayVector3D.distance(pt1.adaptee, pt2.adaptee);\n };\n /**\n * If the current Vector3D object and the one specified as the\n * parameter are unit vertices, this method returns the cosine of the\n * angle between the two vertices. Unit vertices are vertices that\n * point to the same direction but their length is one. They remove the\n * length of the vector as a factor in the result. You can use the\n * <code>normalize()</code> method to convert a vector to a unit\n * vector.\n *\n * <p>The <code>dotProduct()</code> method finds the angle between two\n * vertices. It is also used in backface culling or lighting\n * calculations. Backface culling is a procedure for determining which\n * surfaces are hidden from the viewpoint. You can use the normalized\n * vertices from the camera, or eye, viewpoint and the cross product of\n * the vertices of a polygon surface to get the dot product. If the dot\n * product is less than zero, then the surface is facing the camera or\n * the viewer. If the two unit vertices are perpendicular to each\n * other, they are orthogonal and the dot product is zero. If the two\n * vertices are parallel to each other, the dot product is one.</p>\n *\n * @param a The second Vector3D object.\n * @returns A scalar which is the dot product of the current Vector3D\n * object and the specified Vector3D object.\n */\n Vector3D.prototype.dotProduct = function (a) {\n return this._adaptee.dotProduct(a.adaptee);\n };\n /**\n * Returns a new Vector3D object that is perpendicular (at a right\n * angle) to the current Vector3D and another Vector3D object. If the\n * returned Vector3D object's coordinates are (0,0,0), then the two\n * Vector3D objects are parallel to each other.\n *\n * <p>You can use the normalized cross product of two vertices of a\n * polygon surface with the normalized vector of the camera or eye\n * viewpoint to get a dot product. The value of the dot product can\n * identify whether a surface of a three-dimensional object is hidden\n * from the viewpoint.</p>\n *\n * @param a A second Vector3D object.\n * @returns A new Vector3D object that is perpendicular to the current\n * Vector3D object and the Vector3D object specified as the\n * parameter.\n */\n Vector3D.prototype.crossProduct = function (a) {\n return new this.sec.flash.geom.Vector3D(this._adaptee.crossProduct(a.adaptee));\n };\n /**\n * Converts a Vector3D object to a unit vector by dividing the first\n * three elements (x, y, z) by the length of the vector. Unit vertices\n * are vertices that have a direction but their length is one. They\n * simplify vector calculations by removing length as a factor.\n */\n Vector3D.prototype.normalize = function () {\n return this._adaptee.normalize();\n };\n /**\n * Scales the current Vector3D object by a scalar, a magnitude. The\n * Vector3D object's x, y, and z elements are multiplied by the scalar\n * number specified in the parameter. For example, if the vector is\n * scaled by ten, the result is a vector that is ten times longer. The\n * scalar can also change the direction of the vector. Multiplying the\n * vector by a negative number reverses its direction.\n *\n * @param s A multiplier (scalar) used to scale a Vector3D object.\n */\n Vector3D.prototype.scaleBy = function (s) {\n this._adaptee.scaleBy(+s);\n };\n /**\n * Increments the value of the x, y, and z elements of the current\n * Vector3D object by the values of the x, y, and z elements of a\n * specified Vector3D object. Unlike the <code>Vector3D.add()</code>\n * method, the <code>incrementBy()</code> method changes the current\n * Vector3D object and does not return a new Vector3D object.\n *\n * @param a The Vector3D object to be added to the current Vector3D\n * object.\n */\n Vector3D.prototype.incrementBy = function (a) {\n this._adaptee.incrementBy(a.adaptee);\n };\n /**\n * Decrements the value of the x, y, and z elements of the current\n * Vector3D object by the values of the x, y, and z elements of\n * specified Vector3D object. Unlike the\n * <code>Vector3D.subtract()</code> method, the\n * <code>decrementBy()</code> method changes the current Vector3D\n * object and does not return a new Vector3D object.\n *\n * @param a The Vector3D object containing the values to subtract from\n * the current Vector3D object.\n */\n Vector3D.prototype.decrementBy = function (a) {\n this._adaptee.decrementBy(a.adaptee);\n };\n /**\n * Adds the value of the x, y, and z elements of the current Vector3D\n * object to the values of the x, y, and z elements of another Vector3D\n * object. The <code>add()</code> method does not change the current\n * Vector3D object. Instead, it returns a new Vector3D object with\n * the new values.\n *\n * <p>The result of adding two vectors together is a resultant vector.\n * One way to visualize the result is by drawing a vector from the\n * origin or tail of the first vector to the end or head of the second\n * vector. The resultant vector is the distance between the origin\n * point of the first vector and the end point of the second vector.\n * </p>\n */\n Vector3D.prototype.add = function (a) {\n return new this.sec.flash.geom.Vector3D(this._adaptee.add(a.adaptee));\n };\n /**\n * Subtracts the value of the x, y, and z elements of the current\n * Vector3D object from the values of the x, y, and z elements of\n * another Vector3D object. The <code>subtract()</code> method does not\n * change the current Vector3D object. Instead, this method returns a\n * new Vector3D object with the new values.\n *\n * @param a The Vector3D object to be subtracted from the current\n * Vector3D object.\n * @returns A new Vector3D object that is the difference between the\n * current Vector3D and the specified Vector3D object.\n */\n Vector3D.prototype.subtract = function (a) {\n return new this.sec.flash.geom.Vector3D(this._adaptee.subtract(a.adaptee));\n };\n /**\n * Sets the current Vector3D object to its inverse. The inverse object\n * is also considered the opposite of the original object. The value of\n * the x, y, and z properties of the current Vector3D object is changed\n * to -x, -y, and -z.\n */\n Vector3D.prototype.negate = function () {\n this._adaptee.negate();\n };\n /**\n * Determines whether two Vector3D objects are equal by comparing the\n * x, y, and z elements of the current Vector3D object with a\n * specified Vector3D object. If the values of these elements are the\n * same, the two Vector3D objects are equal. If the second optional\n * parameter is set to true, all four elements of the Vector3D objects,\n * including the w property, are compared.\n *\n * @param toCompare The Vector3D object to be compared with the current\n * Vector3D object.\n * @param allFour An optional parameter that specifies whether the w\n * property of the Vector3D objects is used in the\n * comparison.\n * @returns A value of true if the specified Vector3D object is equal\n * to the current Vector3D object; false if it is not equal.\n */\n Vector3D.prototype.equals = function (toCompare, allFour) {\n return this._adaptee.equals(toCompare.adaptee, allFour);\n };\n /**\n * Compares the elements of the current Vector3D object with the\n * elements of a specified Vector3D object to determine whether they\n * are nearly equal. The two Vector3D objects are nearly equal if the\n * value of all the elements of the two vertices are equal, or the\n * result of the comparison is within the tolerance range. The\n * difference between two elements must be less than the number\n * specified as the tolerance parameter. If the third optional\n * parameter is set to <code>true</code>, all four elements of the\n * Vector3D objects, including the <code>w</code> property, are\n * compared. Otherwise, only the x, y, and z elements are included in\n * the comparison.\n *\n * @param toCompare The Vector3D object to be compared with the current\n * Vector3D object.\n * @param tolerance A number determining the tolerance factor. If the\n * difference between the values of the Vector3D\n * element specified in the toCompare parameter and\n * the current Vector3D element is less than the\n * tolerance number, the two values are considered\n * nearly equal.\n * @param allFour An optional parameter that specifies whether the w\n * property of the Vector3D objects is used in the\n * comparison.\n * @returns A value of true if the specified Vector3D object is nearly\n * equal to the current Vector3D object; false if it is not\n * equal.\n */\n Vector3D.prototype.nearEquals = function (toCompare, tolerance, allFour) {\n return this._adaptee.nearEquals(toCompare.adaptee, tolerance, allFour);\n };\n /**\n * Divides the value of the <code>x</code>, <code>y</code>, and\n * <code>z</code> properties of the current Vector3D object by the\n * value of its <code>w</code> property.\n *\n * <p>If the current Vector3D object is the result of multiplying a\n * Vector3D object by a projection Matrix3D object, the w property can\n * hold the transform value. The <code>project()</code> method then can\n * complete the projection by dividing the elements by the\n * <code>w</code> property. Use the <code>Matrix3D.rawData</code>\n * property to create a projection Matrix3D object.</p>\n */\n Vector3D.prototype.project = function () {\n this._adaptee.project();\n };\n /**\n * Copies all of vector data from the source Vector3D object into the\n * calling Vector3D object.\n *\n * @param sourceVector3D The Vector3D object from which to copy the data.\n */\n Vector3D.prototype.copyFrom = function (sourceVector3D) {\n this._adaptee.copyFrom(sourceVector3D.adaptee);\n };\n /**\n * Sets the members of Vector3D to the specified values\n *\n * @param xa The first element, such as the x coordinate.\n * @param ya The second element, such as the y coordinate.\n * @param za The third element, such as the z coordinate.\n */\n Vector3D.prototype.setTo = function (xa, ya, za) {\n this._adaptee.setTo(xa, ya, za);\n };\n /**\n * Returns a new Vector3D object that is an exact copy of the current\n * Vector3D object.\n *\n * @returns A new Vector3D object that is a copy of the current\n * Vector3D object.\n */\n Vector3D.prototype.clone = function () {\n return new this.sec.flash.geom.Vector3D(this._adaptee.clone());\n };\n Vector3D.prototype.toString = function () {\n return 'Vector3D(' + this.x + ', ' + this.y + ', ' + this.z + ')';\n };\n return Vector3D;\n}(ASObject));\nexport { Vector3D };\n","import { __extends } from \"tslib\";\nimport { ASObject, GenericVector } from '@awayfl/avm2';\nvar LastOperationStatus = /** @class */ (function () {\n function LastOperationStatus() {\n }\n LastOperationStatus.BUFFER_OVERFLOW_ERROR = 'bufferOverflowError';\n LastOperationStatus.ERROR_CODE_UNKNOWN = 'errorCodeUnknown';\n LastOperationStatus.ILLEGAL_ARGUMENT_ERROR = 'illegalArgumentError';\n LastOperationStatus.INDEX_OUT_OF_BOUNDS_ERROR = 'indexOutOfBoundsError';\n LastOperationStatus.INVALID_ATTR_VALUE = 'invalidAttrValue';\n LastOperationStatus.INVALID_CHAR_FOUND = 'invalidCharFound';\n LastOperationStatus.MEMORY_ALLOCATION_ERROR = 'memoryAllocationError';\n LastOperationStatus.NO_ERROR = 'noError';\n LastOperationStatus.NUMBER_OVERFLOW_ERROR = 'numberOverflowError';\n LastOperationStatus.PARSE_ERROR = 'parseError';\n LastOperationStatus.PATTERN_SYNTAX_ERROR = 'patternSyntaxError';\n LastOperationStatus.PLATFORM_API_FAILED = 'platformAPIFailed';\n LastOperationStatus.TRUNCATED_CHAR_FOUND = 'truncatedCharFound';\n LastOperationStatus.UNEXPECTED_TOKEN = 'unexpectedToken';\n LastOperationStatus.UNSUPPORTED_ERROR = 'unsupportedError';\n LastOperationStatus.USING_DEFAULT_WARNING = 'usingDefaultWarning';\n LastOperationStatus.USING_FALLBACK_WARNING = 'usingFallbackWarning';\n return LastOperationStatus;\n}());\nexport { LastOperationStatus };\nvar LocaleID = /** @class */ (function (_super) {\n __extends(LocaleID, _super);\n function LocaleID(_name) {\n var _this = _super.call(this) || this;\n _this._name = _name;\n _this.DEFAULT = 'i-default';\n _this._lastOperationStatus = LastOperationStatus.USING_DEFAULT_WARNING;\n return _this;\n }\n Object.defineProperty(LocaleID.prototype, \"lastOperationStatus\", {\n get: function () {\n return this._lastOperationStatus;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocaleID.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocaleID.prototype, \"ctor\", {\n get: function () {\n return LocaleID;\n },\n enumerable: false,\n configurable: true\n });\n LocaleID.determinePreferredLocales = function (want, have, keyword) {\n if (keyword === void 0) { keyword = 'userinterface'; }\n console.warn('[LocaleID] `determinePreferredLocales` not implemented');\n return new GenericVector();\n };\n LocaleID.prototype.getLanguage = function () {\n console.warn('[LocaleID] `getLanguage` not implemented, use default: en');\n this._lastOperationStatus = LastOperationStatus.NO_ERROR;\n return 'en';\n };\n LocaleID.prototype.getRegion = function () {\n console.warn('[LocaleID] `getRegion` not implemented, use default: UK');\n this._lastOperationStatus = LastOperationStatus.NO_ERROR;\n return 'UK';\n };\n LocaleID.prototype.getScript = function () {\n console.warn('[LocaleID] `getScript` not implemented, use default: \\'\\'');\n this._lastOperationStatus = LastOperationStatus.USING_DEFAULT_WARNING;\n return '';\n };\n LocaleID.prototype.getVariant = function () {\n console.warn('[LocaleID] `getVariant` not implemented, use default: \\'\\'');\n this._lastOperationStatus = LastOperationStatus.USING_DEFAULT_WARNING;\n return '';\n };\n LocaleID.prototype.isRightToLeft = function () {\n console.warn('[LocaleID] `isRightToLeft` not implemented, use default: true');\n return true;\n };\n LocaleID.prototype.getKeysAndValues = function () {\n console.warn('[LocaleID] `isRightToLeft` not implemented, use default: null');\n this._lastOperationStatus = LastOperationStatus.USING_DEFAULT_WARNING;\n return null;\n };\n return LocaleID;\n}(ASObject));\nexport { LocaleID };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar AccelerometerEvent = /** @class */ (function (_super) {\n __extends(AccelerometerEvent, _super);\n function AccelerometerEvent(type, bubbles, cancelable, timestamp, accelerationX, accelerationY, accelerationZ) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (timestamp === void 0) { timestamp = 0; }\n if (accelerationX === void 0) { accelerationX = 0; }\n if (accelerationY === void 0) { accelerationY = 0; }\n if (accelerationZ === void 0) { accelerationZ = 0; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.timestamp = +timestamp;\n _this.accelerationX = +accelerationX;\n _this.accelerationY = +accelerationY;\n _this.accelerationZ = +accelerationZ;\n return _this;\n }\n AccelerometerEvent.classInitializer = null;\n AccelerometerEvent.classSymbols = null;\n AccelerometerEvent.instanceSymbols = null;\n // JS -> AS Bindings\n AccelerometerEvent.UPDATE = 'update';\n return AccelerometerEvent;\n}(Event));\nexport { AccelerometerEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar ActivityEvent = /** @class */ (function (_super) {\n __extends(ActivityEvent, _super);\n function ActivityEvent(type, bubbles, cancelable, activating) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (activating === void 0) { activating = false; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.activating = !!activating;\n return _this;\n }\n ActivityEvent.classInitializer = null;\n ActivityEvent.classSymbols = null;\n ActivityEvent.instanceSymbols = null;\n // JS -> AS Bindings\n ActivityEvent.ACTIVITY = 'activity';\n return ActivityEvent;\n}(Event));\nexport { ActivityEvent };\n","import { __extends } from \"tslib\";\nimport { ErrorEvent } from './ErrorEvent';\nvar AsyncErrorEvent = /** @class */ (function (_super) {\n __extends(AsyncErrorEvent, _super);\n function AsyncErrorEvent(type, bubbles, cancelable, text, error) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (text === void 0) { text = ''; }\n if (error === void 0) { error = null; }\n var _this = _super.call(this, type, bubbles, cancelable, text) || this;\n _this.$Bgerror = error;\n return _this;\n }\n Object.defineProperty(AsyncErrorEvent.prototype, \"error\", {\n get: function () {\n return this.$Bgerror;\n },\n enumerable: false,\n configurable: true\n });\n AsyncErrorEvent.prototype.clone = function () {\n return new AsyncErrorEvent(this._type, this._bubbles, this._cancelable, this._text, this.$Bgerror);\n };\n AsyncErrorEvent.prototype.toString = function () {\n return this.formatToString('AsyncErrorEvent', 'type', 'bubbles', 'cancelable', 'eventPhase', 'text', 'error');\n };\n AsyncErrorEvent.ASYNC_ERROR = 'asyncError';\n AsyncErrorEvent.classInitializer = null;\n return AsyncErrorEvent;\n}(ErrorEvent));\nexport { AsyncErrorEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar ContextMenuEvent = /** @class */ (function (_super) {\n __extends(ContextMenuEvent, _super);\n function ContextMenuEvent(type, bubbles, cancelable, mouseTarget, contextMenuOwner) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (mouseTarget === void 0) { mouseTarget = null; }\n if (contextMenuOwner === void 0) { contextMenuOwner = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n // TODO: coerce\n _this.mouseTarget = mouseTarget;\n _this.contextMenuOwner = contextMenuOwner;\n return _this;\n }\n ContextMenuEvent.classInitializer = null;\n ContextMenuEvent.classSymbols = null;\n ContextMenuEvent.instanceSymbols = null;\n // JS -> AS Bindings\n ContextMenuEvent.MENU_ITEM_SELECT = 'menuItemSelect';\n ContextMenuEvent.MENU_SELECT = 'menuSelect';\n return ContextMenuEvent;\n}(Event));\nexport { ContextMenuEvent };\n","import { __extends } from \"tslib\";\nimport { TextEvent } from './TextEvent';\nvar DataEvent = /** @class */ (function (_super) {\n __extends(DataEvent, _super);\n function DataEvent(type, bubbles, cancelable, data) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (data === void 0) { data = ''; }\n return _super.call(this, type, bubbles, cancelable, data) || this;\n }\n DataEvent.classInitializer = null;\n DataEvent.classSymbols = null;\n DataEvent.instanceSymbols = null;\n // JS -> AS Bindings\n DataEvent.DATA = 'data';\n DataEvent.UPLOAD_COMPLETE_DATA = 'uploadCompleteData';\n return DataEvent;\n}(TextEvent));\nexport { DataEvent };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: EventPhase\nvar EventPhase = /** @class */ (function (_super) {\n __extends(EventPhase, _super);\n function EventPhase() {\n return _super.call(this) || this;\n }\n EventPhase.classInitializer = null;\n EventPhase.classSymbols = null;\n EventPhase.instanceSymbols = null;\n // JS -> AS Bindings\n EventPhase.CAPTURING_PHASE = 1;\n EventPhase.AT_TARGET = 2;\n EventPhase.BUBBLING_PHASE = 3;\n return EventPhase;\n}(ASObject));\nexport { EventPhase };\n","import { __extends } from \"tslib\";\nimport { ActivityEvent } from './ActivityEvent';\nvar FullScreenEvent = /** @class */ (function (_super) {\n __extends(FullScreenEvent, _super);\n function FullScreenEvent(type, bubbles, cancelable, fullScreen, interactive) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (fullScreen === void 0) { fullScreen = false; }\n if (interactive === void 0) { interactive = false; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.fullScreen = !!fullScreen;\n _this.interactive = !!interactive;\n return _this;\n }\n FullScreenEvent.classInitializer = null;\n FullScreenEvent.classSymbols = null;\n FullScreenEvent.instanceSymbols = null;\n // JS -> AS Bindings\n FullScreenEvent.FULL_SCREEN = 'fullScreen';\n FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED = 'fullScreenInteractiveAccepted';\n return FullScreenEvent;\n}(ActivityEvent));\nexport { FullScreenEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: GameInputEvent\nvar GameInputEvent = /** @class */ (function (_super) {\n __extends(GameInputEvent, _super);\n function GameInputEvent(type, bubbles, cancelable, device) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (device === void 0) { device = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n // TODO: coerce\n _this.device = device;\n return _this;\n }\n GameInputEvent.classInitializer = null;\n GameInputEvent.classSymbols = null;\n GameInputEvent.instanceSymbols = null;\n // JS -> AS Bindings\n GameInputEvent.DEVICE_ADDED = 'deviceAdded';\n GameInputEvent.DEVICE_REMOVED = 'deviceRemoved';\n return GameInputEvent;\n}(Event));\nexport { GameInputEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar GeolocationEvent = /** @class */ (function (_super) {\n __extends(GeolocationEvent, _super);\n function GeolocationEvent(type, bubbles, cancelable, latitude, longitude, altitude, hAccuracy, vAccuracy, speed, heading, timestamp) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (latitude === void 0) { latitude = 0; }\n if (longitude === void 0) { longitude = 0; }\n if (altitude === void 0) { altitude = 0; }\n if (hAccuracy === void 0) { hAccuracy = 0; }\n if (vAccuracy === void 0) { vAccuracy = 0; }\n if (speed === void 0) { speed = 0; }\n if (heading === void 0) { heading = 0; }\n if (timestamp === void 0) { timestamp = 0; }\n return _super.call(this, type, bubbles, cancelable) || this;\n }\n GeolocationEvent.classInitializer = null;\n GeolocationEvent.classSymbols = null;\n GeolocationEvent.instanceSymbols = null;\n // JS -> AS Bindings\n GeolocationEvent.UPDATE = 'update';\n return GeolocationEvent;\n}(Event));\nexport { GeolocationEvent };\n","import { __extends } from \"tslib\";\nimport { axCoerceString } from '@awayjs/graphics';\nimport { Event } from './Event';\nvar GestureEvent = /** @class */ (function (_super) {\n __extends(GestureEvent, _super);\n function GestureEvent(type, bubbles, cancelable, phase, localX, localY, ctrlKey, altKey, shiftKey) {\n if (bubbles === void 0) { bubbles = true; }\n if (cancelable === void 0) { cancelable = false; }\n if (phase === void 0) { phase = null; }\n if (localX === void 0) { localX = 0; }\n if (localY === void 0) { localY = 0; }\n if (ctrlKey === void 0) { ctrlKey = false; }\n if (altKey === void 0) { altKey = false; }\n if (shiftKey === void 0) { shiftKey = false; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._phase = axCoerceString(phase);\n _this._localX = +localX;\n _this._localY = +localY;\n _this._ctrlKey = !!ctrlKey;\n _this._altKey = !!altKey;\n _this._shiftKey = !!shiftKey;\n return _this;\n }\n Object.defineProperty(GestureEvent.prototype, \"localX\", {\n // AS -> JS Bindings\n get: function () {\n return this._localX;\n },\n set: function (value) {\n this._localX = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GestureEvent.prototype, \"localY\", {\n get: function () {\n return this._localY;\n },\n set: function (value) {\n this._localY = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GestureEvent.prototype, \"stageX\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GestureEvent.prototype, \"stageY\", {\n get: function () {\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GestureEvent.prototype, \"ctrlKey\", {\n get: function () {\n return this._ctrlKey;\n },\n set: function (value) {\n this._ctrlKey = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GestureEvent.prototype, \"altKey\", {\n get: function () {\n return this._altKey;\n },\n set: function (value) {\n this._altKey = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GestureEvent.prototype, \"shiftKey\", {\n get: function () {\n return this._shiftKey;\n },\n set: function (value) {\n this._shiftKey = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GestureEvent.prototype, \"phase\", {\n get: function () {\n return this._phase;\n },\n set: function (value) {\n this._phase = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n GestureEvent.prototype.updateAfterEvent = function () { };\n GestureEvent.prototype.NativeCtor = function (phase, localX, localY, ctrlKey, altKey, shiftKey) {\n this._phase = axCoerceString(phase);\n this._localX = +localX;\n this._localY = +localY;\n this._ctrlKey = !!ctrlKey;\n this._altKey = !!altKey;\n this._shiftKey = !!shiftKey;\n };\n GestureEvent.prototype.clone = function () {\n return new GestureEvent(this.type, this.bubbles, this.cancelable, this.phase, this.localX, this.localY, this.ctrlKey, this.altKey, this.shiftKey);\n };\n GestureEvent.prototype.toString = function () {\n return this.formatToString('GestureEvent', 'type', 'bubbles', 'cancelable', 'eventPhase', 'localX', 'localY', 'ctrlKey', 'altKey', 'shiftKey');\n };\n GestureEvent.classInitializer = null;\n GestureEvent.classSymbols = null;\n GestureEvent.instanceSymbols = null;\n // JS -> AS Bindings\n GestureEvent.GESTURE_TWO_FINGER_TAP = 'gestureTwoFingerTap';\n return GestureEvent;\n}(Event));\nexport { GestureEvent };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar GesturePhase = /** @class */ (function (_super) {\n __extends(GesturePhase, _super);\n function GesturePhase() {\n return _super.call(this) || this;\n }\n GesturePhase.classInitializer = null;\n GesturePhase.classSymbols = null;\n GesturePhase.instanceSymbols = null;\n // JS -> AS Bindings\n GesturePhase.BEGIN = 'begin';\n GesturePhase.UPDATE = 'update';\n GesturePhase.END = 'end';\n GesturePhase.ALL = 'all';\n return GesturePhase;\n}(ASObject));\nexport { GesturePhase };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: IOErrorEvent\nvar HTTPStatusEvent = /** @class */ (function (_super) {\n __extends(HTTPStatusEvent, _super);\n function HTTPStatusEvent(type, bubbles, cancelable, _status, _redirected) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (_status === void 0) { _status = 0; }\n if (_redirected === void 0) { _redirected = false; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._status = _status;\n _this._redirected = _redirected;\n _this._responseURL = '';\n _this._responseHeaders = null;\n return _this;\n }\n /**\n * @description Undocumented method!\n */\n HTTPStatusEvent.prototype._setStatus = function (v) {\n this._status = v;\n };\n Object.defineProperty(HTTPStatusEvent.prototype, \"status\", {\n get: function () {\n return this._status;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTTPStatusEvent.prototype, \"redirected\", {\n get: function () {\n return this._redirected;\n },\n set: function (v) {\n this._redirected = v;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTTPStatusEvent.prototype, \"responseURL\", {\n get: function () {\n return this._responseURL;\n },\n set: function (v) {\n this._responseURL = v;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HTTPStatusEvent.prototype, \"responseHeaders\", {\n get: function () {\n return this._responseHeaders;\n },\n set: function (value) {\n this._responseHeaders = value;\n },\n enumerable: false,\n configurable: true\n });\n HTTPStatusEvent.prototype.clone = function () {\n return new HTTPStatusEvent(this.type, this.bubbles, this.cancelable, this._status, this._redirected);\n };\n HTTPStatusEvent.prototype.toString = function () {\n return this.formatToString('IOErrorEvent', 'type', 'bubbles', 'cancelable', 'text', 'errorID');\n };\n HTTPStatusEvent.classInitializer = null;\n // JS -> AS Bindings\n HTTPStatusEvent.HTTP_RESPONSE_STATUS = 'httpResponseStatus';\n HTTPStatusEvent.HTTP_STATUS = 'httpStatus';\n return HTTPStatusEvent;\n}(Event));\nexport { HTTPStatusEvent };\n","import { __extends } from \"tslib\";\nimport { TextEvent } from './TextEvent';\nvar IMEEvent = /** @class */ (function (_super) {\n __extends(IMEEvent, _super);\n function IMEEvent(type, bubbles, cancelable, text, imeClient) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (text === void 0) { text = ''; }\n if (imeClient === void 0) { imeClient = null; }\n var _this = _super.call(this, type, bubbles, cancelable, text) || this;\n // TODO: coerce\n _this.imeClient = imeClient;\n return _this;\n }\n IMEEvent.classInitializer = null;\n IMEEvent.classSymbols = null;\n IMEEvent.instanceSymbols = null;\n // JS -> AS Bindings\n IMEEvent.IME_COMPOSITION = 'imeComposition';\n IMEEvent.IME_START_COMPOSITION = 'imeStartComposition';\n return IMEEvent;\n}(TextEvent));\nexport { IMEEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar NetDataEvent = /** @class */ (function (_super) {\n __extends(NetDataEvent, _super);\n function NetDataEvent(type, bubbles, cancelable, timestamp, info) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (timestamp === void 0) { timestamp = 0; }\n if (info === void 0) { info = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.timestamp = +timestamp;\n _this.info = info;\n return _this;\n }\n NetDataEvent.classInitializer = null;\n NetDataEvent.classSymbols = null;\n NetDataEvent.instanceSymbols = null;\n // JS -> AS Bindings\n NetDataEvent.MEDIA_TYPE_DATA = 'mediaTypeData';\n return NetDataEvent;\n}(Event));\nexport { NetDataEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: NetStatusEvent\nvar NetStatusEvent = /** @class */ (function (_super) {\n __extends(NetStatusEvent, _super);\n function NetStatusEvent(type, bubbles, cancelable, info) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (info === void 0) { info = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._info = info;\n return _this;\n }\n Object.defineProperty(NetStatusEvent.prototype, \"info\", {\n get: function () {\n return this._info;\n },\n set: function (value) {\n this._info = value;\n },\n enumerable: false,\n configurable: true\n });\n NetStatusEvent.prototype.clone = function () {\n return new NetStatusEvent(this.type, this.bubbles, this.cancelable, this.info);\n };\n NetStatusEvent.prototype.toString = function () {\n return this.formatToString('NetStatusEvent', 'type', 'bubbles', 'cancelable', 'eventPhase', 'info');\n };\n NetStatusEvent.classInitializer = null;\n NetStatusEvent.classSymbols = null;\n NetStatusEvent.instanceSymbols = null;\n // JS -> AS Bindings\n NetStatusEvent.NET_STATUS = 'netStatus';\n return NetStatusEvent;\n}(Event));\nexport { NetStatusEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar OutputProgressEvent = /** @class */ (function (_super) {\n __extends(OutputProgressEvent, _super);\n function OutputProgressEvent(type, bubbles, cancelable, bytesPending, bytesTotal) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (bytesPending === void 0) { bytesPending = 0; }\n if (bytesTotal === void 0) { bytesTotal = 0; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.bytesPending = +bytesPending;\n _this.bytesTotal = +bytesTotal;\n return _this;\n }\n OutputProgressEvent.classInitializer = null;\n OutputProgressEvent.classSymbols = null;\n OutputProgressEvent.instanceSymbols = null;\n // JS -> AS Bindings\n OutputProgressEvent.OUTPUT_PROGRESS = 'outputProgress';\n return OutputProgressEvent;\n}(Event));\nexport { OutputProgressEvent };\n","import { __extends } from \"tslib\";\nimport { GestureEvent } from './GestureEvent';\nvar PressAndTapGestureEvent = /** @class */ (function (_super) {\n __extends(PressAndTapGestureEvent, _super);\n function PressAndTapGestureEvent(type, bubbles, cancelable, phase, localX, localY, tapLocalX, tapLocalY, ctrlKey, altKey, shiftKey) {\n if (bubbles === void 0) { bubbles = true; }\n if (cancelable === void 0) { cancelable = false; }\n if (phase === void 0) { phase = null; }\n if (localX === void 0) { localX = 0; }\n if (localY === void 0) { localY = 0; }\n if (tapLocalX === void 0) { tapLocalX = 0; }\n if (tapLocalY === void 0) { tapLocalY = 0; }\n if (ctrlKey === void 0) { ctrlKey = false; }\n if (altKey === void 0) { altKey = false; }\n if (shiftKey === void 0) { shiftKey = false; }\n var _this = _super.call(this, type, bubbles, cancelable, phase, localX, localY, ctrlKey, altKey, shiftKey) || this;\n _this.tapLocalX = +tapLocalX;\n _this.tapLocalY = +tapLocalY;\n return _this;\n }\n PressAndTapGestureEvent.classInitializer = null;\n PressAndTapGestureEvent.classSymbols = null;\n PressAndTapGestureEvent.instanceSymbols = null;\n // JS -> AS Bindings\n PressAndTapGestureEvent.GESTURE_PRESS_AND_TAP = 'gesturePressAndTap';\n return PressAndTapGestureEvent;\n}(GestureEvent));\nexport { PressAndTapGestureEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\n/**\n /// @eventType\tflash.events.SampleDataEvent.SAMPLE_DATA\n [Event(name=\"sampleData\", type=\"flash.events.SampleDataEvent\")]\n * Dispatched when a Sound object requests new audio data or when a Microphone object\n * has new audio data to provide.\n *\n * <p class=\"- topic/p \">This event has two uses:</p><ul class=\"- topic/ul \"><li class=\"- topic/li \">\n * To provide dynamically generated audio data for a Sound object</li><li class=\"- topic/li \">\n * To get audio data for a Microphone object</li></ul><p class=\"- topic/p \"><b class=\"+ topic/ph hi-d/b \">\n * Dynamically generating audio using the Sound object</b> Use the\n * <codeph class=\"+ topic/ph pr-d/codeph \">sampleData</codeph> event to play dynamically generated audio.\n * In this environment,\n * the Sound object doesn't actually contain sound data. Instead, it acts as a socket for\n * sound data that is being streamed to it through the use of the function\n * you assign as the handler for the <codeph class=\"+ topic/ph pr-d/codeph \">sampleData</codeph> event.\n * </p><p class=\"- topic/p \">In your function, you use the <codeph class=\"+ topic/ph pr-d/codeph \">\n * ByteArray.writeFloat()</codeph> method to write to\n * the event's <codeph class=\"+ topic/ph pr-d/codeph \">data</codeph>) property, which contains the sampled data you\n * want to play.</p><p class=\"- topic/p \">If a Sound object has not loaded an MP3 file,\n * when you call its <codeph class=\"+ topic/ph pr-d/codeph \">play()</codeph> method\n * the object starts dispatching <codeph class=\"+ topic/ph pr-d/codeph \">sampleData</codeph> events,\n * requesting sound samples.\n * The Sound object continues to send events as the sound plays back until you stop providing data,\n * or until the <codeph class=\"+ topic/ph pr-d/codeph \">stop()</codeph> method of the SoundChannel object is called.\n * </p><p class=\"- topic/p \">Thes latency of the event varies from platform to platform, and it could change in future\n * versions of <ph class=\"- topic/ph \">Flash Player or </ph>AIR. Don't depend on a specific latency.\n * Instead calculate it using <codeph class=\"+ topic/ph pr-d/codeph \">\n * ((SampleDataEvent.position/44.1) - SoundChannelObject.position)</codeph>.</p><p class=\"- topic/p \">\n * Provide between 2048 and 8192 samples to the <codeph class=\"+ topic/ph pr-d/codeph \">data</codeph> property of\n * the SampleDataEvent object. For best performance, provide as many samples as possible.\n * The fewer samples you provide, the more likely it is\n * that clicks and pops will occur during playback. This behavior can differ on various platforms\n * and can occur in various situations - for example, when resizing the browser.\n * You might write code that works on one platform when you provide only 2048 samples, but that same code\n * might not work as well when run on a different platform. If you require the lowest latency possible,\n * consider making the amount of data user-selectable.</p><p class=\"- topic/p \">\n * If you provide fewer than 2048 samples, tha Sound object plays the remaining samples\n * and then stops the sound as if the end of a sound file was reached, generating\n * a <codeph class=\"+ topic/ph pr-d/codeph \">complete</codeph> event.</p><p class=\"- topic/p \">\n * You can use the <codeph class=\"+ topic/ph pr-d/codeph \">extract()</codeph> method of a Sound object\n * to extract its sound data,\n * which you can then write to the dynamic stream for playback.</p><p class=\"- topic/p \">\n * When you use the <codeph class=\"+ topic/ph pr-d/codeph \">sampleData</codeph> event with a Sound object,\n * the only Sound methods that\n * are enabled are <codeph class=\"+ topic/ph pr-d/codeph \">extract()</codeph>\n * and <codeph class=\"+ topic/ph pr-d/codeph \">play()</codeph>. Calling any other methods or properties\n * results in an \"invalid call\" exception. All methods and properties of the SoundChannel object\n * are still enabled.</p><p class=\"- topic/p \"><b class=\"+ topic/ph hi-d/b \">\n * Capturing Microphone audio</b> Use the <codeph class=\"+ topic/ph pr-d/codeph \">sampleData</codeph> event\n * to capture audio data from a microphone. When you add an event listener for the\n * <codeph class=\"+ topic/ph pr-d/codeph \">sampleData</codeph> event,\n * the Microphone dispatches the event as audio samples\n * become available.</p><p class=\"- topic/p \">In the event handler function,\n * use the <codeph class=\"+ topic/ph pr-d/codeph \">ByteArray.readFloat()</codeph> method to read\n * the event's <codeph class=\"+ topic/ph pr-d/codeph \">data</codeph>) property,\n * which contains the sampled data. The event will contain\n * multiple samples, so you should use a <codeph class=\"+ topic/ph pr-d/codeph \">while</codeph>\n * loop to read the available data:</p><codeblock xml:space=\"preserve\"\n * class=\"+ topic/pre pr-d/codeblock \">var soundBytes:ByteArray = new ByteArray();\n * while(event.data.bytesAvailable)\n * {\n * var sample:Number = event.data.readFloat();\n * soundBytes.writeFloat(sample);\n * }</codeblock>\n */\nvar SampleDataEvent = /** @class */ (function (_super) {\n __extends(SampleDataEvent, _super);\n /**\n * Creates an event object that contains information about audio data events.\n * Event objects are passed as parameters to event listeners.\n * @param\ttype\tThe type of the event. This value is:Event.SAMPLE_DATA.\n * @param\tbubbles\tDetermines whether the Event object participates in the bubbling stage of the event flow.\n * @param\tcancelable\tDetermines whether the Event object can be canceled.\n * @param\ttheposition\tThe position of the data in the audio stream.\n * @param\tthedata\tA byte array of data.\n */\n function SampleDataEvent(type, bubbles, cancelable, theposition, thedata) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (theposition === void 0) { theposition = 0; }\n if (thedata === void 0) { thedata = null; }\n return _super.call(this, type, bubbles, cancelable) || this;\n }\n Object.defineProperty(SampleDataEvent.prototype, \"data\", {\n /**\n * The data in the audio stream.\n */\n get: function () {\n console.log('data not implemented yet in flash/SampleDataEvent');\n return null;\n },\n set: function (thedata) {\n console.log('data not implemented yet in flash/SampleDataEvent');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SampleDataEvent.prototype, \"position\", {\n /**\n * The position of the data in the audio stream.\n */\n get: function () {\n console.log('position not implemented yet in flash/SampleDataEvent');\n return 0;\n },\n set: function (theposition) {\n console.log('position not implemented yet in flash/SampleDataEvent');\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Creates a copy of the SampleDataEvent object and sets each property's value to match that of the original.\n * @return\tA new SampleDataEvent object with property values that match those of the original.\n */\n SampleDataEvent.prototype.clone = function () {\n console.log('clone not implemented yet in flash/SampleDataEvent');\n return null;\n };\n /**\n * Returns a string that contains all the properties of the SampleDataEvent object.\n * The string is in the following format:\n * [SampleDataEvent type=value bubbles=value cancelable=value theposition=value thedata=value]\n * @return\tA string that contains all the properties of the SampleDataEvent object.\n */\n SampleDataEvent.prototype.toString = function () {\n console.log('toString not implemented yet in flash/SampleDataEvent');\n return '';\n };\n /**\n * Defines the value of the type property of a SampleDataEvent event object.\n * This event has the following properties:PropertyValuebubblesfalsecancelablefalse;\n * there is no default behavior to cancel.positionThe point from which audio data is provided.\n */\n SampleDataEvent.SAMPLE_DATA = 'sampleData';\n return SampleDataEvent;\n}(Event));\nexport { SampleDataEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar ShaderEvent = /** @class */ (function (_super) {\n __extends(ShaderEvent, _super);\n function ShaderEvent(type, bubbles, cancelable, bitmap, array, vector) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (bitmap === void 0) { bitmap = null; }\n if (array === void 0) { array = null; }\n if (vector === void 0) { vector = null; }\n return _super.call(this, type, bubbles, cancelable) || this;\n }\n ShaderEvent.classInitializer = null;\n ShaderEvent.classSymbols = null;\n ShaderEvent.instanceSymbols = null;\n // JS -> AS Bindings\n ShaderEvent.COMPLETE = 'complete';\n return ShaderEvent;\n}(Event));\nexport { ShaderEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar SoftKeyboardEvent = /** @class */ (function (_super) {\n __extends(SoftKeyboardEvent, _super);\n function SoftKeyboardEvent(type, bubbles, cancelable, relatedObjectVal, triggerTypeVal) {\n return _super.call(this, type, bubbles, cancelable) || this;\n }\n SoftKeyboardEvent.classInitializer = null;\n SoftKeyboardEvent.classSymbols = null;\n SoftKeyboardEvent.instanceSymbols = null;\n // JS -> AS Bindings\n SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE = 'softKeyboardActivate';\n SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE = 'softKeyboardDeactivate';\n SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING = 'softKeyboardActivating';\n return SoftKeyboardEvent;\n}(Event));\nexport { SoftKeyboardEvent };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar SoftKeyboardTrigger = /** @class */ (function (_super) {\n __extends(SoftKeyboardTrigger, _super);\n function SoftKeyboardTrigger() {\n return _super.call(this) || this;\n }\n SoftKeyboardTrigger.classInitializer = null;\n SoftKeyboardTrigger.classSymbols = null;\n SoftKeyboardTrigger.instanceSymbols = null;\n // JS -> AS Bindings\n SoftKeyboardTrigger.CONTENT_TRIGGERED = 'contentTriggered';\n SoftKeyboardTrigger.USER_TRIGGERED = 'userTriggered';\n return SoftKeyboardTrigger;\n}(ASObject));\nexport { SoftKeyboardTrigger };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nimport { axCoerceString } from '@awayjs/graphics';\nvar StageVideoAvailabilityEvent = /** @class */ (function (_super) {\n __extends(StageVideoAvailabilityEvent, _super);\n function StageVideoAvailabilityEvent(type, bubbles, cancelable, availability) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (availability === void 0) { availability = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.availability = axCoerceString(availability);\n return _this;\n }\n StageVideoAvailabilityEvent.classInitializer = null;\n StageVideoAvailabilityEvent.classSymbols = null;\n StageVideoAvailabilityEvent.instanceSymbols = null;\n // JS -> AS Bindings\n StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY = 'stageVideoAvailability';\n return StageVideoAvailabilityEvent;\n}(Event));\nexport { StageVideoAvailabilityEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nimport { axCoerceString } from '@awayjs/graphics';\nvar StageVideoEvent = /** @class */ (function (_super) {\n __extends(StageVideoEvent, _super);\n function StageVideoEvent(type, bubbles, cancelable, status, colorSpace) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (status === void 0) { status = null; }\n if (colorSpace === void 0) { colorSpace = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.status = axCoerceString(status);\n _this.colorSpace = axCoerceString(colorSpace);\n return _this;\n }\n StageVideoEvent.classInitializer = null;\n StageVideoEvent.classSymbols = null;\n StageVideoEvent.instanceSymbols = null;\n // JS -> AS Bindings\n StageVideoEvent.RENDER_STATE = 'renderState';\n StageVideoEvent.RENDER_STATUS_UNAVAILABLE = 'unavailable';\n StageVideoEvent.RENDER_STATUS_SOFTWARE = 'software';\n StageVideoEvent.RENDER_STATUS_ACCELERATED = 'accelerated';\n return StageVideoEvent;\n}(Event));\nexport { StageVideoEvent };\n","import { __extends } from \"tslib\";\nimport { axCoerceString } from '@awayfl/avm2';\nimport { Event } from './Event';\nvar StatusEvent = /** @class */ (function (_super) {\n __extends(StatusEvent, _super);\n function StatusEvent(type, bubbles, cancelable, code, level) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (code === void 0) { code = ''; }\n if (level === void 0) { level = ''; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this._code = axCoerceString(code);\n _this._level = axCoerceString(level);\n return _this;\n }\n Object.defineProperty(StatusEvent.prototype, \"level\", {\n get: function () {\n return this._level;\n },\n set: function (value) {\n this._level = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(StatusEvent.prototype, \"code\", {\n get: function () {\n return this._code;\n },\n set: function (value) {\n this._code = value;\n },\n enumerable: false,\n configurable: true\n });\n StatusEvent.prototype.clone = function () {\n return new StatusEvent(this._type, this._bubbles, this._cancelable, this._code, this._level);\n };\n StatusEvent.prototype.toString = function () {\n return this.formatToString('StatusEvent', 'type', 'bubbles', 'cancelable', 'eventPhase', 'code', 'level');\n };\n StatusEvent.classInitializer = null;\n StatusEvent.STATUS = 'status';\n return StatusEvent;\n}(Event));\nexport { StatusEvent };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar SyncEvent = /** @class */ (function (_super) {\n __extends(SyncEvent, _super);\n function SyncEvent(type, bubbles, cancelable, changeList) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (changeList === void 0) { changeList = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n // TODO: coerce\n _this.changeList = changeList;\n return _this;\n }\n SyncEvent.classInitializer = null;\n SyncEvent.classSymbols = null;\n SyncEvent.instanceSymbols = null;\n // JS -> AS Bindings\n SyncEvent.SYNC = 'sync';\n return SyncEvent;\n}(Event));\nexport { SyncEvent };\n","import { __extends } from \"tslib\";\nimport { axCoerceString } from '@awayjs/graphics';\nimport { Event } from './Event';\nvar ThrottleEvent = /** @class */ (function (_super) {\n __extends(ThrottleEvent, _super);\n function ThrottleEvent(type, bubbles, cancelable, state, targetFrameRate) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (state === void 0) { state = null; }\n if (targetFrameRate === void 0) { targetFrameRate = 0; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.state = axCoerceString(state);\n _this.targetFrameRate = +targetFrameRate;\n return _this;\n }\n ThrottleEvent.classInitializer = null;\n ThrottleEvent.classSymbols = null;\n ThrottleEvent.instanceSymbols = null;\n // JS -> AS Bindings\n ThrottleEvent.THROTTLE = 'throttle';\n return ThrottleEvent;\n}(Event));\nexport { ThrottleEvent };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar ThrottleType = /** @class */ (function (_super) {\n __extends(ThrottleType, _super);\n function ThrottleType() {\n return _super.call(this) || this;\n }\n ThrottleType.classInitializer = null;\n ThrottleType.classSymbols = null;\n ThrottleType.instanceSymbols = null;\n // JS -> AS Bindings\n ThrottleType.THROTTLE = 'throttle';\n ThrottleType.PAUSE = 'pause';\n ThrottleType.RESUME = 'resume';\n return ThrottleType;\n}(ASObject));\nexport { ThrottleType };\n","import { __extends } from \"tslib\";\nimport { Event } from './Event';\nvar TimerEvent = /** @class */ (function (_super) {\n __extends(TimerEvent, _super);\n function TimerEvent(type, bubbles, cancelable) {\n return _super.call(this, type, bubbles, cancelable) || this;\n }\n TimerEvent.prototype.clone = function () {\n return new this.sec.flash.events.TimerEvent(this.type, this.bubbles, this.cancelable);\n };\n TimerEvent.prototype.toString = function () {\n return this.formatToString('TimerEvent', 'type', 'bubbles', 'cancelable', 'eventPhase');\n };\n TimerEvent.prototype.updateAfterEvent = function () {\n //release || console.log(\"TimerEvent.updateAfterEvent not implemented\");\n this.sec.player.requestRender();\n };\n TimerEvent.classInitializer = null;\n TimerEvent.classSymbols = null;\n TimerEvent.instanceSymbols = null;\n // JS -> AS Bindings\n TimerEvent.TIMER = 'timer';\n TimerEvent.TIMER_COMPLETE = 'timerComplete';\n return TimerEvent;\n}(Event));\nexport { TimerEvent };\n","import { __extends } from \"tslib\";\nimport { GestureEvent } from './GestureEvent';\nvar TransformGestureEvent = /** @class */ (function (_super) {\n __extends(TransformGestureEvent, _super);\n function TransformGestureEvent(type, bubbles, cancelable, phase, localX, localY, scaleX, scaleY, rotation, offsetX, offsetY, ctrlKey, altKey, shiftKey) {\n if (bubbles === void 0) { bubbles = true; }\n if (cancelable === void 0) { cancelable = false; }\n if (phase === void 0) { phase = null; }\n if (localX === void 0) { localX = 0; }\n if (localY === void 0) { localY = 0; }\n if (scaleX === void 0) { scaleX = 1; }\n if (scaleY === void 0) { scaleY = 1; }\n if (rotation === void 0) { rotation = 0; }\n if (offsetX === void 0) { offsetX = 0; }\n if (offsetY === void 0) { offsetY = 0; }\n if (ctrlKey === void 0) { ctrlKey = false; }\n if (altKey === void 0) { altKey = false; }\n if (shiftKey === void 0) { shiftKey = false; }\n return _super.call(this, type, bubbles, cancelable, phase, localX, localY, ctrlKey, altKey, shiftKey) || this;\n }\n TransformGestureEvent.classInitializer = null;\n TransformGestureEvent.classSymbols = null;\n TransformGestureEvent.instanceSymbols = null;\n // JS -> AS Bindings\n TransformGestureEvent.GESTURE_ZOOM = 'gestureZoom';\n TransformGestureEvent.GESTURE_PAN = 'gesturePan';\n TransformGestureEvent.GESTURE_ROTATE = 'gestureRotate';\n TransformGestureEvent.GESTURE_SWIPE = 'gestureSwipe';\n return TransformGestureEvent;\n}(GestureEvent));\nexport { TransformGestureEvent };\n","import { __extends } from \"tslib\";\nimport { ErrorEvent } from './ErrorEvent';\nvar UncaughtErrorEvent = /** @class */ (function (_super) {\n __extends(UncaughtErrorEvent, _super);\n function UncaughtErrorEvent(type, bubbles, cancelable, error_in) {\n if (type === void 0) { type = 'uncaughtError'; }\n if (bubbles === void 0) { bubbles = true; }\n if (cancelable === void 0) { cancelable = true; }\n if (error_in === void 0) { error_in = null; }\n return _super.call(this, type, bubbles, cancelable, error_in) || this;\n }\n UncaughtErrorEvent.classInitializer = null;\n UncaughtErrorEvent.classSymbols = null;\n UncaughtErrorEvent.instanceSymbols = null;\n // JS -> AS Bindings\n UncaughtErrorEvent.UNCAUGHT_ERROR = 'uncaughtError';\n return UncaughtErrorEvent;\n}(ErrorEvent));\nexport { UncaughtErrorEvent };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from './EventDispatcher';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: UncaughtErrorEvents\nvar UncaughtErrorEvents = /** @class */ (function (_super) {\n __extends(UncaughtErrorEvents, _super);\n function UncaughtErrorEvents() {\n return _super.call(this) || this;\n }\n UncaughtErrorEvents.classInitializer = null;\n UncaughtErrorEvents.classSymbols = null;\n UncaughtErrorEvents.instanceSymbols = null;\n return UncaughtErrorEvents;\n}(EventDispatcher));\nexport { UncaughtErrorEvents };\n","import { __extends } from \"tslib\";\nimport { axCoerceString } from '@awayfl/avm2';\nimport { Event } from './Event';\nvar VideoEvent = /** @class */ (function (_super) {\n __extends(VideoEvent, _super);\n function VideoEvent(type, bubbles, cancelable, status) {\n if (bubbles === void 0) { bubbles = false; }\n if (cancelable === void 0) { cancelable = false; }\n if (status === void 0) { status = null; }\n var _this = _super.call(this, type, bubbles, cancelable) || this;\n _this.status = axCoerceString(status);\n return _this;\n }\n VideoEvent.classInitializer = null;\n VideoEvent.classSymbols = null;\n VideoEvent.instanceSymbols = null;\n // JS -> AS Bindings\n VideoEvent.RENDER_STATE = 'renderState';\n VideoEvent.RENDER_STATUS_UNAVAILABLE = 'unavailable';\n VideoEvent.RENDER_STATUS_SOFTWARE = 'software';\n VideoEvent.RENDER_STATUS_ACCELERATED = 'accelerated';\n return VideoEvent;\n}(Event));\nexport { VideoEvent };\n","import { __extends } from \"tslib\";\nimport { ExternalInterfaceService } from '@awayfl/swf-loader';\nimport { ASObject, Errors, axCoerceString, Multiname } from '@awayfl/avm2';\nvar ExternalInterface = /** @class */ (function (_super) {\n __extends(ExternalInterface, _super);\n function ExternalInterface() {\n return _super.call(this) || this;\n }\n ExternalInterface.ensureInitialized = function () {\n if (!this.available) {\n this.sec.throwError('Error', Errors.ExternalInterfaceNotAvailableError);\n }\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n ExternalInterfaceService.initJS(this._callIn);\n };\n ExternalInterface.call = function (functionName) {\n this.ensureInitialized();\n var argsExpr = '';\n if (arguments.length > 1) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) {\n args.push(this.convertToJSString(arguments[i]));\n }\n argsExpr = args.join(',');\n }\n var catchExpr = this.$BgmarshallExceptions ?\n '\"<exception>\" + e + \"</exception>\";' :\n '\"<undefined/>\";';\n var evalExpr = 'try {'\n + ExternalInterfaceService.interfaceID\n + '.__flash__toXML(' + functionName + '(' + argsExpr + '));'\n + '} catch (e) {' + catchExpr + '}';\n var result = this._evalJS(evalExpr);\n if (result == null) {\n return null;\n }\n return this.convertFromXML(this.convertToXML(result));\n };\n ExternalInterface.addCallback = function (functionName, closure) {\n var _this = this;\n this.ensureInitialized();\n if (!closure) {\n this._removeCallback(functionName);\n return;\n }\n var self = this;\n this._addCallback(functionName, function (request, args) {\n var returnAsJS = true;\n var calledFromJS = Array.isArray(args);\n if (typeof args !== 'undefined') {\n if (Array.isArray(args)) {\n var wrappedArgs = [];\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n // Objects have to be converted into proper AS objects in the current security domain.\n if (typeof arg === 'object' && arg) {\n if (Array.isArray(arg))\n wrappedArgs.push(self.sec.createArray(arg));\n else\n wrappedArgs.push(self.sec.createObjectFromJS(arg, true));\n }\n else {\n wrappedArgs.push(arg);\n }\n }\n args = wrappedArgs;\n }\n else {\n args = [args];\n }\n }\n else {\n var xml = _this.convertToXML(request);\n var returnTypeAttr = xml.attribute('returntype');\n returnAsJS = returnTypeAttr && returnTypeAttr._value == 'javascript';\n args = [];\n if (xml._children) {\n for (var i = 0; i < xml._children.length; i++) {\n var x = xml._children[i];\n args.push(_this.convertFromXML(x));\n }\n }\n }\n var result;\n try {\n result = closure.axApply(null, args);\n }\n catch (e) {\n if (_this.$BgmarshallExceptions) {\n result = e;\n }\n else {\n throw e;\n }\n }\n if (calledFromJS) {\n return self.convertToJS(result);\n }\n return returnAsJS ? self.convertToJSString(result) : self.convertToXMLString(result);\n });\n };\n Object.defineProperty(ExternalInterface, \"available\", {\n get: function () {\n return ExternalInterfaceService.enabled;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ExternalInterface, \"objectID\", {\n get: function () {\n return ExternalInterfaceService.getId();\n },\n enumerable: false,\n configurable: true\n });\n ExternalInterface._addCallback = function (functionName, closure) {\n ExternalInterfaceService.registerCallback(functionName);\n ExternalInterface.registeredCallbacks[functionName] = closure;\n };\n ExternalInterface._removeCallback = function (functionName) {\n ExternalInterfaceService.unregisterCallback(functionName);\n delete ExternalInterface.registeredCallbacks[functionName];\n };\n ExternalInterface._evalJS = function (expression) {\n expression = axCoerceString(expression);\n return ExternalInterfaceService.eval(expression);\n };\n ExternalInterface._callIn = function (functionName, args) {\n var callback = ExternalInterface.registeredCallbacks[functionName];\n if (!callback) {\n return;\n }\n return callback(functionName, args);\n };\n ExternalInterface._callOut = function (request) {\n request = axCoerceString(request);\n return ExternalInterfaceService.call(request);\n };\n ExternalInterface.convertToXML = function (s) {\n var xmlClass = this.sec.system.getClass(Multiname.FromSimpleName('XML'));\n var savedIgnoreWhitespace = xmlClass.ignoreWhitespace;\n xmlClass.ignoreWhitespace = false;\n var xml = xmlClass.Create(s);\n xmlClass.ignoreWhitespace = savedIgnoreWhitespace;\n return xml;\n };\n ExternalInterface.convertToXMLString = function (obj) {\n switch (typeof obj) {\n case 'boolean':\n return obj ? '<true/>' : '<false/>';\n case 'number':\n return '<number>' + obj + '</number>';\n case 'string':\n return '<string>' + obj.split('&').join('&').split('<').join('<').\n split('>').join('>') + '</string>';\n case 'object':\n if (obj === null) {\n return '<null/>';\n }\n if (this.sec.AXDate.axIsInstanceOf(obj)) {\n return '<date>' + obj.time + '</date>';\n }\n if (this.sec.AXError.axIsInstanceOf(obj)) {\n if (this.$BgmarshallExceptions) {\n return '<exception>' + obj + '</exception>';\n }\n else {\n return '<null/>'; // not sure?\n }\n }\n var result = [];\n // Looks like length is used to detect array. (obj is Array) is better?\n if (obj.hasOwnProperty('$Bglength')) {\n var len = obj.$Bglength;\n for (var i = 0; i < len; i++) {\n var entry = this.convertToXMLString(obj.axGetNumericProperty(i));\n result.push('<property id=\"' + i + '\">' + entry + '</property>');\n }\n return '<array>' + result.join('') + '</array>';\n }\n var keys = obj.axGetEnumerableKeys();\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var entry = this.convertToXMLString(obj.axGetPublicProperty(key));\n result.push('<property id=\"' + key + '\">' + entry + '</property>');\n }\n return '<object>' + result.join('') + '</object>';\n default:\n return '<undefined/>';\n }\n };\n ExternalInterface.convertFromXML = function (xml /* ASXML | ASXMLList */) {\n switch (xml._name.name) {\n case 'true':\n return true;\n case 'false':\n return false;\n case 'number':\n return Number(String(xml.children()));\n case 'string':\n return String(xml.children());\n case 'null':\n return null;\n case 'date':\n return this.sec.AXDate.axConstruct([Number(String(xml.children()))]);\n case 'exception':\n if (this.$BgmarshallExceptions) {\n throw this.sec.AXError.axConstruct([String(xml.children())]);\n }\n return undefined;\n case 'array':\n case 'object':\n var obj = xml._name.name === 'object' ?\n this.sec.createObject() :\n this.sec.createArrayUnsafe([]);\n for (var i = 0; i < xml._children.length; i++) {\n var x = xml._children[i];\n obj.axSetPublicProperty(extractId(x), this.convertFromXML(x._children[0]));\n }\n return obj;\n case 'class':\n var className = Multiname.FromFQNString(String(xml.children()), 0 /* NamespaceType.Public */);\n return this.sec.application.getClass(className);\n default:\n return undefined;\n }\n };\n /**\n * Converts an AS value into a JS value, for callbacks that JS calls directly\n */\n ExternalInterface.convertToJS = function (obj) {\n var _this = this;\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n if (this.sec.AXArray.axIsInstanceOf(obj)) {\n return obj.value.map(function (value) { return _this.convertToJS(value); });\n }\n if (this.sec.AXDate.axIsInstanceOf(obj)) {\n return new Date(+obj.value);\n }\n if (this.$BgmarshallExceptions && (this.sec.AXError.axIsInstanceOf(obj))) {\n throw new Error(String(obj));\n }\n var result = {};\n var keys = obj.axGetEnumerableKeys();\n for (var i = 0; i < keys.length; i++) {\n result[keys[i]] = this.convertToJS(obj.axGetPublicProperty(keys[i]));\n }\n return result;\n };\n ExternalInterface.convertToJSString = function (obj) {\n if (typeof obj == 'string') {\n return JSON.stringify(obj);\n }\n if (this.sec.AXArray.axIsInstanceOf(obj)) {\n var parts = [];\n var arr = obj.value;\n for (var i = 0; i < arr.length; i++) {\n parts.push(this.convertToJSString(arr[i]));\n }\n return '[' + parts.join(',') + ']';\n }\n if (this.sec.AXDate.axIsInstanceOf(obj)) {\n return 'new Date(' + (+obj.value) + ')';\n }\n if (this.$BgmarshallExceptions && (this.sec.AXError.axIsInstanceOf(obj))) {\n return 'throw ' + JSON.stringify(String(obj));\n }\n if (typeof obj === 'object' && obj !== null) {\n var parts = [];\n var keys = obj.axGetEnumerableKeys();\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n parts.push(JSON.stringify(key) + ':' + this.convertToJSString(obj.axGetPublicProperty(key)));\n }\n return '({' + parts.join(',') + '})';\n }\n return String(obj);\n };\n ExternalInterface.classInitializer = null;\n ExternalInterface.initialized = false;\n ExternalInterface.registeredCallbacks = {};\n return ExternalInterface;\n}(ASObject));\nexport { ExternalInterface };\nfunction extractId(node) {\n for (var i = 0; i < node._attributes.length; i++) {\n var attribute = node._attributes[i];\n if (attribute._name.name === 'id') {\n return attribute._value;\n }\n }\n // TODO: throw if no `id` attribute was found.\n}\n","import { __extends } from \"tslib\";\nimport { BitmapFilter } from './BitmapFilter';\nimport { somewhatImplemented, release } from '@awayfl/swf-loader';\nimport { axCoerceString } from '@awayfl/avm2';\nvar DisplacementMapFilter = /** @class */ (function (_super) {\n __extends(DisplacementMapFilter, _super);\n function DisplacementMapFilter(mapBitmap, mapPoint, componentX, componentY, scaleX, scaleY, mode, color, alpha) {\n if (mapBitmap === void 0) { mapBitmap = null; }\n if (mapPoint === void 0) { mapPoint = null; }\n if (componentX === void 0) { componentX = 0; }\n if (componentY === void 0) { componentY = 0; }\n if (scaleX === void 0) { scaleX = 0; }\n if (scaleY === void 0) { scaleY = 0; }\n if (mode === void 0) { mode = 'wrap'; }\n if (color === void 0) { color = 0; }\n if (alpha === void 0) { alpha = 0; }\n var _this = _super.call(this) || this;\n _this.mapBitmap = mapBitmap;\n _this.mapPoint = mapPoint;\n _this.componentX = componentX;\n _this.componentY = componentY;\n _this.scaleX = scaleX;\n _this.scaleY = scaleY;\n _this.mode = mode;\n _this.color = color;\n _this.alpha = alpha;\n return _this;\n }\n DisplacementMapFilter.FromUntyped = function (obj, sec) {\n return new sec.flash.filters.DisplacementMapFilter(obj.mapBitmap, obj.mapPoint, obj.componentX, obj.componentY, obj.scaleX, obj.scaleY, obj.mode, obj.color, obj.alpha);\n };\n Object.defineProperty(DisplacementMapFilter.prototype, \"mapBitmap\", {\n get: function () {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::get mapBitmap');\n return this._mapBitmap;\n },\n set: function (value) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set mapBitmap');\n this._mapBitmap = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"mapPoint\", {\n get: function () {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::get mapPoint');\n return this._mapPoint;\n },\n set: function (value) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set mapPoint');\n this._mapPoint = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"componentX\", {\n get: function () {\n return this._componentX;\n },\n set: function (value /*uint*/) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set componentX');\n this._componentX = value >>> 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"componentY\", {\n get: function () {\n return this._componentY;\n },\n set: function (value /*uint*/) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set componentY');\n this._componentY = value >>> 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"scaleX\", {\n get: function () {\n return this._scaleX;\n },\n set: function (value) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set scaleX');\n this._scaleX = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"scaleY\", {\n get: function () {\n return this._scaleY;\n },\n set: function (value) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set scaleY');\n this._scaleY = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"mode\", {\n get: function () {\n return this._mode;\n },\n set: function (value) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set mode');\n this._mode = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value /*uint*/) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set color');\n this._color = (value >>> 0) & 0xffffff;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(DisplacementMapFilter.prototype, \"alpha\", {\n get: function () {\n return this._alpha;\n },\n set: function (value) {\n release || somewhatImplemented('public flash.filters.DisplacementMapFilter::set alpha');\n this._alpha = +value;\n },\n enumerable: false,\n configurable: true\n });\n DisplacementMapFilter.prototype.clone = function () {\n return new this.sec.flash.filters.DisplacementMapFilter(this._mapBitmap, this._mapPoint, this._componentX, this._componentY, this._scaleX, this._scaleY, this._mode, this._color, this._alpha);\n };\n DisplacementMapFilter.prototype.toAwayObject = function () {\n var _a, _b;\n return {\n filterName: 'displacement',\n mapBitmap: (_a = this._mapBitmap) === null || _a === void 0 ? void 0 : _a.adaptee,\n mapPoint: (_b = this._mapPoint) === null || _b === void 0 ? void 0 : _b.adaptee,\n componentX: this._componentX,\n componentY: this._componentY,\n scaleX: this._scaleX,\n scaleY: this._scaleY,\n mode: this._mode,\n color: this._color,\n alpha: this._alpha\n };\n };\n // Called whenever the class is initialized.\n DisplacementMapFilter.classInitializer = null;\n // List of static symbols to link.\n DisplacementMapFilter.classSymbols = null; // [];\n // List of instance symbols to link.\n DisplacementMapFilter.instanceSymbols = null;\n return DisplacementMapFilter;\n}(BitmapFilter));\nexport { DisplacementMapFilter };\n","//import { NumberParseResult } from \"./NumberParseResult\";\nimport { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\n/**\n * The NumberFormatter class provides locale-sensitive formatting and parsing of numeric values.\n * It can format <codeph class=\"+ topic/ph pr-d/codeph \">int</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">uint</codeph>, and\n * <codeph class=\"+ topic/ph pr-d/codeph \">Number</codeph> objects.\n *\n * <p class=\"- topic/p \">The NumberFormatter class uses the data and functionality provided by the operating system\n * and is designed to format numbers according to the conventions\n * of a specific locale, based on the user's preferences and features supported by the user's operating system.\n * The position of the negative symbol, the decimal separator,\n * the grouping separator, the grouping pattern, and other elements within the number format\n * can vary depending on the locale.\n * </p><p class=\"- topic/p \">If the operating system supports the requested locale, the number formatting properties\n * are set according to the conventions and defaults of the requested locale.\n * If the requested locale is not available, then the properties are set according to\n * a fallback or default system locale, which can be retrieved using the\n * <codeph class=\"+ topic/ph pr-d/codeph \">actualLocaleIDName</codeph> property.\n * </p><p class=\"- topic/p \">\n * Due to the use of the user's settings, the use of formatting patterns\n * provided by the operating system, and the use of a fallback locale when a requested locale is not supported,\n * different users can see different formatting results, even when using the same locale ID.\n * </p>\n */\nvar NumberFormatter = /** @class */ (function (_super) {\n __extends(NumberFormatter, _super);\n /**\n * Constructs a new NumberFormatter object to format numbers according to\n * the conventions of a given locale.\n *\n * This constructor determines if the current operating system supports the requested locale ID name.\n * If it is not supported then a fallback locale is used instead.\n * If a fallback locale is used then the the lastOperationStatus property\n * indicates the type of fallback, and the actualLocaleIDName property contains\n * the name of the fallback locale ID. To format based on the user's current operating system preferences,\n * pass the value LocaleID.DEFAULT\n * in the requestedLocaleIDName parameter to the constructor.\n * When the constructor completes successfully, the lastOperationStatus property is set to:\n * LastOperationStatus.NO_ERROR\n * When the requested locale ID name is not available then the lastOperationStatus\n * is set to one of the following:\n * LastOperationStatus.USING_FALLBACK_WARNING\n * LastOperationStatus.USING_DEFAULT_WARNING\n * If this class is not supported on the current operating system, then the lastOperationStatus property is set to:\n * LastOperationStatus.UNSUPPORTED_ERROR\n * Otherwise the lastOperationStatus property is set to one of the constants defined in\n * the LastOperationStatus class.For details on the warnings listed above and other possible values of the\n * lastOperationStatus property see the descriptions in the LastOperationStatus class.\n * @param\trequestedLocaleIDName\tThe preferred locale ID name to use when determining number formats.\n * @throws\tTypeError if the requestedLocaleIDName is null\n */\n function NumberFormatter(requestedLocaleIDName) {\n return _super.call(this) || this;\n }\n Object.defineProperty(NumberFormatter.prototype, \"actualLocaleIDName\", {\n /**\n * The name of the actual locale ID used by this NumberFormatter object.\n *\n * There are three possibilities for the value of the name, depending on operating system and the\n * value of the requestedLocaleIDName parameter passed to the Collator() constructor.\n * If the requested locale was not LocaleID.DEFAULT and\n * the operating system provides support for the requested locale,\n * then the name returned is the same as the requestedLocaleIDName property.\n * If LocaleID.DEFAULT was used as the value for the requestedLocaleIDName\n * parameter to the constructor, then the name of the current locale specified by the user's operating system is\n * used. The LocaleID.DEFAULT value preserves user's customized setting in the OS.\n * Passing an explicit value as the requestedLocaleIDName parameter does not necessarily give the\n * same result as using the LocaleID.DEFAULT even if the two locale ID names are the same.\n * The user could have customized the locale settings on their machine, and by requesting an\n * explicit locale ID name rather than using LocaleID.DEFAULT your application would not\n * retrieve those customized settings.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get actualLocaleIDName', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"decimalSeparator\", {\n /**\n * The decimal separator character used for formatting or parsing numbers that have a decimal part.\n *\n * This property is initially set based on the locale that is selected when the formatter object\n * is constructed.When this property is assigned a value and there are no errors or warnings,\n * the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if this property is assigned a null value.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get decimalSeparator', '');\n return '';\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set decimalSeparator', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"digitsType\", {\n /**\n * Defines the set of digit characters to be used when formatting numbers.\n *\n * Different languages and regions use different sets of characters to represent the\n * digits 0 through 9. This property defines the set of digits to be used.\n * The value of this property represents the Unicode value for the zero digit of a decimal digit set.\n * The valid values for this property are defined in the NationalDigitsType class.\n * When this property is assigned a value and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.\n * NO_ERROROtherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if this property is assigned a null value.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get digitsType', '');\n return 0;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set digitsType', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"fractionalDigits\", {\n /**\n * The maximum number of digits that can appear after the decimal separator.\n *\n * Numbers are rounded to the number of digits specified by this property. The rounding scheme\n * varies depending on the user's operating system.\n * When the trailingZeros property is set to true, the fractional portion of the\n * number (after the decimal point) is padded with trailing zeros until its length matches the value of this\n * fractionalDigits property.\n * When this property is assigned a value and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.\n * NO_ERROROtherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get fractionalDigits', '');\n return 0;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set fractionalDigits', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"groupingPattern\", {\n /**\n * Describes the placement of grouping separators within the formatted number string.\n *\n * When the useGrouping property is set to true, the groupingPattern property is used\n * to define the placement and pattern used for the grouping separator.\n * The grouping pattern is defined as a string containing numbers separated by semicolons and optionally may end\n * with an asterisk. For example: \"3;2;*\". Each number in the string represents the number of digits\n * in a group. The grouping separator is placed before each group of digits. An asterisk at the end of the string\n * indicates that groups with that number of digits should be repeated for the rest of the formatted string.\n * If there is no asterisk then there are no additional groups or separators for the rest of the formatted string.\n * The first number in the string corresponds to the first group of digits to the left of the decimal separator.\n * Subsequent numbers define the number of digits in subsequent groups to the left. Thus the string \"3;2;*\"\n * indicates that a grouping separator is placed after the first group of 3 digits, followed by groups of 2 digits.\n * For example: 98,76,54,321\n * The following table shows examples of formatting the number 123456789.12 with various grouping patterns.\n * The grouping separator is a comma and the decimal separator is a period.\n * Grouping PatternSample Format3;*123,456,789.123;2;*12,34,56,789.123123456,789.12\n * Only a limited number of grouping sizes can be defined.\n * On some operating systems, grouping patterns can only contain\n * two numbers plus an asterisk. Other operating systems can support up to four numbers and an asterisk.\n * For patterns without an asterisk, some operating systems only support one number\n * while others support up to three numbers.\n * If the maximum number of grouping pattern elements is exceeded, then additional elements\n * are ignored and the lastOperationStatus property is set as described below.\n * When this property is assigned a value and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if this property is assigned a null value.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get groupingPattern', '');\n return '';\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set groupingPattern', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"groupingSeparator\", {\n /**\n * The character or string used for the grouping separator.\n *\n * The value of this property is used as the grouping separator when formatting numbers with the\n * useGrouping property set to true. This\n * property is initially set based on the locale that is selected when the formatter object\n * is constructed.When this property is assigned a value and there are no errors or warnings,\n * the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if this property is assigned a null value.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get groupingSeparator', '');\n return '';\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set groupingSeparator', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"lastOperationStatus\", {\n /**\n * The status of previous operation that this NumberFormatter object performed.\n * The lastOperationStatus property is set whenever the constructor or a method of\n * this class is called, or another property is set. For the possible values see the description for each method.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get lastOperationStatus', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"leadingZero\", {\n /**\n * Specifies whether a leading zero is included in a formatted number when there are no integer digits\n * to the left of the decimal separator.\n *\n * When this property is set to true a leading zero is included to the left of the decimal separator\n * when formatting numeric values between -1.0 and 1.0.\n * When this property is set to false a leading zero is not included.\n * For example if the number is 0.321 and this property is set true, then the leading\n * zero is included in the formatted string. If the property is set to false, the leading zero\n * is not included. In that case the string would just include the decimal separator followed by the decimal digits,\n * like .321.\n * The following table shows examples of how numbers are formatted based on the values of this property and\n * the related fractionalDigits and trailingZeros properties.\n * trailingZerosleadingZerofractionalDigits0.120truetrue30.1200.000falsetrue30.120true\n * false3.120.000falsefalse3.120When this property is assigned a value\n * and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if this property is assigned a null value.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get leadingZero', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set leadingZero', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"negativeNumberFormat\", {\n /**\n * A numeric value that indicates a formatting pattern for negative numbers.\n * This pattern defines the location of the negative symbol\n * or parentheses in relation to the numeric portion of the formatted number.\n *\n * The following table summarizes the possible formats for negative numbers. When a negative number is formatted,\n * the minus sign in the format is replaced with the value of\n * the negativeSymbol property and the 'n' character is replaced with the formatted numeric value.\n * Negative number format typeFormat0(n)1-n2- n3n-4n -\n * When this property is assigned a value and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tArgumentError if the assigned value is not a number between 0 and 4.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get negativeNumberFormat', '');\n return 0;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set negativeNumberFormat', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"negativeSymbol\", {\n /**\n * The negative symbol to be used when formatting negative values.\n *\n * This symbol is used with the negative number\n * format when formatting a number that is less than zero. It is not used in negative number formats\n * that do not include\n * a negative sign (e.g. when negative numbers are enclosed in parentheses).\n * This property is set to a default value for the actual locale selected when this\n * formatter is constructed. It can be set with a value to override the default setting.\n * When this property is assigned a value and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tMemoryError if the system cannot allocate enough internal memory.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get negativeSymbol', '');\n return '';\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set negativeSymbol', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"requestedLocaleIDName\", {\n /**\n * The name of the requested locale ID that was passed to the constructor of this NumberFormatter object.\n *\n * If the LocaleID.DEFAULT value was used then the name returned is \"i-default\".\n * The actual locale used can differ from the requested locale when a fallback locale is applied.\n * The name of the actual locale can be retrieved using the actualLocaleIDName property.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get requestedLocaleIDName', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"trailingZeros\", {\n /**\n * Specifies whether trailing zeros are included in a formatted number.\n *\n * When this property is set to true, trailing zeros are included in the fractional part\n * of the formatted number up to the limit specified by the fractionalDigits property.\n * When this property is set to false then no trailing zeros are shown.\n * For example if the numeric value is 123.4, and this property is set true, and the fractionalDigits property\n * is set to 3, the formatted string would show trailing zeros, like 123.400 .\n * If this property is false, trailing zeros are not included, and the string shows just the decimal\n * separator followed by the non-zero decimal digits, like 123.4 .\n * The following table shows examples of how numeric values are formatted based on the values of this property and\n * the related fractionalDigits and leadingZero properties.\n * trailingZerosleadingZerofractionalDigits0.120truetrue30.1200.000falsetrue30.120\n * truefalse3.120.000falsefalse3.120When this property is assigned a value\n * and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if this property is assigned a null value.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get trailingZeros', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set trailingZeros', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NumberFormatter.prototype, \"useGrouping\", {\n /**\n * Enables the use of the grouping separator when formatting numbers.\n *\n * When the useGrouping property is set to true, digits are grouped and\n * delimited by the grouping separator character.\n * For example: 123,456,789.22When the useGrouping property is set to false, digits are not grouped or separated.\n * For example: 123456789.22The symbol to be used as a grouping separator is defined\n * by the groupingSeparator property. The number of digits\n * between grouping separators is defined by the groupingPattern property.\n * When this property is assigned a value and there are no errors or warnings, the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROROtherwise the lastOperationStatus property\n * is set to one of the constants defined in the\n * LastOperationStatus class.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'get useGrouping', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'set useGrouping', '');\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Formats an int value.\n *\n * This function is equivalent to the formatNumber() method except that it takes an int value.\n * If the value passed in is too large or small, such as a value greater than 1.72e308 or\n * less than 1.72e-308, then this function returns 0.\n *\n * When this method is called and it completes successfully,\n * the lastOperationStatus property is set to:\n * LastOperationStatus.\n * NO_ERROROtherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n * @param\tvalue\tAn int value to format.\n * @return\tA formatted number string.\n * @throws\tMemoryError for any internal memory allocation problems.\n */\n NumberFormatter.prototype.formatInt = function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'formatInt', '');\n return value.toString();\n };\n /**\n * Formats a Number value.\n *\n * This function formats the number based on the property values of the formatter. If the properties are\n * not modified after the the numberFormatter object is created, the numbers are formatted\n * according to the locale specific conventions provided by the operating system for the locale identified\n * by actualLocaleIDName. To customize the format, the properties can be altered to control specific\n * aspects of formatting a number.\n * Very large numbers and very small magnitude numbers can be formatted with this function. However, the\n * number of significant digits is limited to the precision provided by the Number object. Scientific notation\n * is not supported.\n * When this method is called and it completes successfully,\n * the lastOperationStatus property is set to:\n * LastOperationStatus.NO_ERROR\n * Otherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n * @param\tvalue\tA Number value to format.\n * @return\tA formatted number string.\n * @throws\tMemoryError if there are any internal memory allocation problems.\n */\n NumberFormatter.prototype.formatNumber = function (value) {\n // @todo\n Debug.throwPIR('playerglobals/globalization/NumberFormatter', 'formatNumber', '');\n return value.toString();\n };\n /**\n * Formats a uint value.\n *\n * This function is equivalent to the formatNumber() method except that it takes a uint.\n * If the value passed in is too large, such as a value greater than 1.72e308, then this function returns 0.\n *\n * When this method is called and it completes successfully,\n * the lastOperationStatus property is set to:\n * LastOperationStatus.NO_ERROR\n * Otherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n * @param\tvalue\tA uint value.\n * @return\tA formatted number string.\n * @throws\tMemoryError if there are any internal memory allocation problems.\n */\n NumberFormatter.prototype.formatUint = function (value) {\n console.log('formatUint not implemented yet in flash/NumberFormatter');\n return '';\n };\n /**\n * Lists all of the locale ID names supported by this class.\n *\n * If this class is not supported on the current operating system,\n * this method returns a null value.When this method is called and it completes successfully,\n * the lastOperationStatus property is set to:\n * LastOperationStatus.NO_ERROR\n * Otherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n * @return\tA vector of strings containing all of the locale ID names supported by this class.\n */\n NumberFormatter.getAvailableLocaleIDNames = function () {\n console.log('getAvailableLocaleIDNames not implemented yet in flash/NumberFormatter');\n return [];\n };\n /**\n * Parses a string and returns a NumberParseResult object containing the parsed elements.\n *\n * The NumberParseResult object contains\n * the value of the first number found in the input string,\n * the starting index for the number within the string, and the index\n * of the first character after the number in the string.\n * If the string does not contain a number, the value property of the NumberParseResult is set to NaN and the\n * startIndex and endIndex properties are set to the hexadecimal value 0x7fffffff.\n * This function uses the value of the decimalSeparator property to determine the portion of the number\n * that contains fractional\n * digits, and the groupingSeparator property to determine\n * which characters are allowed within the digits of a number,\n * and the negativeNumberFormat property to control how negative values are represented.\n * The following table identifies the result of strings parsed for the various NegativeNumberFormat\n * values:NegativeNumberFormatInput\n * StringResult(n)\"(123)\" or \"( 123 )\"\"-123\"-n\"-123\" or \"- 123\"\"-123\"- n\"-123\" or \"- 123\"\"-123\"n-\"123-\"\n * or \"123 -\"\"-123\"n -\"123-\" or \"123 -\"\"-123\"\n * A single white space is allowed between the number and the minus sign or parenthesis.\n * Other properties are ignored when determining a valid number. Specifically the value of the\n * digitsType property is ignored and the digits can be from any of\n * the digit sets that are enumerated in the NationalDigitsType class. The values of the groupingPattern\n * and useGrouping properties do not influence the parsing of the number.\n * If numbers are preceded or followed in the string by a plus sign '+', the plus sign is treated as\n * a character that is not part of the number.\n * This function does not parse strings containing numbers in scientific notation (e.g. 1.23e40).\n * When this method is called and it completes successfully, the lastOperationStatus property\n * is set to:LastOperationStatus.NO_ERROR\n * Otherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if the parseString is null\n */\n NumberFormatter.prototype.parse = function (parseString) {\n // todo: any is NumberParseResult\n console.log('parse not implemented yet in flash/NumberFormatter');\n return null;\n };\n /**\n * Parses a string that contains only digits and optional whitespace characters and returns a Number.\n * If the string does not begin\n * with a number or contains characters other than whitespace that are not part of the number, then\n * this method returns NaN. White space before or after the numeric digits is ignored. A white space\n * character is a character that has a Space Separator (Zs) property in the Unicode Character Database\n * (see http://www.unicode.org/ucd/).\n *\n * If the numeric digit is preceded or followed by a plus sign '+' it is treated as a non-whitespace character.\n * The return value is NaN.\n * See the description of the parse function for more information about number parsing and what constitutes\n * a valid number.\n * When this method is called and it completes successfully, the lastOperationStatus property is set to:\n * LastOperationStatus.NO_ERROR\n * Otherwise the lastOperationStatus property is set to one of the constants defined in the\n * LastOperationStatus class.\n * @throws\tTypeError if the parseString is null\n */\n NumberFormatter.prototype.parseNumber = function (parseString) {\n console.log('parseNumber not implemented yet in flash/NumberFormatter');\n return 0;\n };\n NumberFormatter.prototype.ctor = function (requestedLocaleIDName) {\n console.log('ctor not implemented yet in flash/NumberFormatter');\n };\n NumberFormatter.forceNativeConstructor = true;\n NumberFormatter.forceNativeMethods = true;\n return NumberFormatter;\n}(ASObject));\nexport { NumberFormatter };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * The SoundTransform class contains properties for volume and panning.\n *\n */\nvar SoundTransform = /** @class */ (function (_super) {\n __extends(SoundTransform, _super);\n /**\n * Creates a SoundTransform object.\n * @param\tvol\tThe volume, ranging from 0 (silent) to 1 (full volume).\n * @param\tpanning\tThe left-to-right panning of the sound, ranging from -1 (full pan left)\n * to 1 (full pan right). A value of 0 represents no panning (center).\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n */\n function SoundTransform(vol, panning) {\n if (vol === void 0) { vol = 1; }\n if (panning === void 0) { panning = 0; }\n var _this = _super.call(this) || this;\n _this._vol = 1;\n _this._pan = 0;\n _this._vol = vol;\n _this._pan = panning;\n return _this;\n }\n // for AVM1:\n SoundTransform.prototype.axCallPublicProperty = function (value1, value2) {\n console.log('axCallPublicProperty not implemented yet in flash/SoundTransform');\n return null;\n };\n SoundTransform.prototype.axGetPublicProperty = function (value) {\n console.log('axGetPublicProperty not implemented yet in flash/SoundTransform');\n return null;\n };\n SoundTransform.prototype.axSetPublicProperty = function (value, value2) {\n console.log('axSetPublicProperty not implemented yet in flash/SoundTransform');\n return null;\n };\n SoundTransform.prototype.axHasPublicProperty = function (value) {\n console.log('axHasPublicProperty not implemented yet in flash/SoundTransform');\n return null;\n };\n SoundTransform.prototype.axDeletePublicProperty = function (value) {\n console.log('axDeletePublicProperty not implemented yet in flash/SoundTransform');\n return null;\n };\n SoundTransform.prototype.axGetEnumerableKeys = function () {\n console.log('axGetEnumerableKeys not implemented yet in flash/SoundTransform');\n return [];\n };\n Object.defineProperty(SoundTransform.prototype, \"leftToLeft\", {\n /**\n * A value, from 0 (none) to 1 (all), specifying how much of the left input is played in the\n * left speaker.\n */\n get: function () {\n console.log('leftToLeft not implemented yet in flash/SoundTransform');\n return 0;\n },\n set: function (leftToLeft) {\n console.log('leftToLeft not implemented yet in flash/SoundTransform');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundTransform.prototype, \"leftToRight\", {\n /**\n * A value, from 0 (none) to 1 (all), specifying how much of the left input is played in the\n * right speaker.\n */\n get: function () {\n console.log('leftToRight not implemented yet in flash/SoundTransform');\n return 0;\n },\n set: function (leftToRight) {\n console.log('leftToRight not implemented yet in flash/SoundTransform');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundTransform.prototype, \"pan\", {\n /**\n * The left-to-right panning of the sound, ranging from -1 (full pan left)\n * to 1 (full pan right). A value of 0 represents no panning (balanced center between\n * right and left).\n */\n get: function () {\n return this._pan;\n },\n set: function (value) {\n this._pan = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundTransform.prototype, \"rightToLeft\", {\n /**\n * A value, from 0 (none) to 1 (all), specifying how much of the right input is played in the\n * left speaker.\n */\n get: function () {\n console.log('rightToLeft not implemented yet in flash/SoundTransform');\n return 0;\n },\n set: function (rightToLeft) {\n console.log('rightToLeft not implemented yet in flash/SoundTransform');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundTransform.prototype, \"rightToRight\", {\n /**\n * A value, from 0 (none) to 1 (all), specifying how much of the right input is played in the\n * right speaker.\n */\n get: function () {\n console.log('rightToRight not implemented yet in flash/SoundTransform');\n return 0;\n },\n set: function (rightToRight) {\n console.log('rightToRight not implemented yet in flash/SoundTransform');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundTransform.prototype, \"volume\", {\n /**\n * The volume, ranging from 0 (silent) to 1 (full volume).\n */\n get: function () {\n return this._vol;\n },\n set: function (value) {\n this._vol = (value > 1)\n ? 1\n : (value < 0 ? 0 : value);\n },\n enumerable: false,\n configurable: true\n });\n return SoundTransform;\n}(ASObject));\nexport { SoundTransform };\n","import { __extends } from \"tslib\";\nimport { somewhatImplemented, release, notImplemented, isNullOrUndefined } from '@awayfl/swf-loader';\nimport { ASObject } from '@awayfl/avm2';\nimport { SoundTransform } from './SoundTransform';\nimport { MovieClip as AwayMovieClip } from '@awayjs/scene';\nimport { AudioManager } from '@awayjs/core';\nvar SoundMixer = /** @class */ (function (_super) {\n __extends(SoundMixer, _super);\n function SoundMixer() {\n return _super.call(this) || this;\n }\n Object.defineProperty(SoundMixer, \"bufferTime\", {\n // static _audioPlaybackMode: string;\n // static _useSpeakerphoneForVoice: boolean;\n get: function () {\n release || notImplemented('public flash.media.SoundMixer::get bufferTime');\n return SoundMixer._bufferTime;\n },\n set: function (bufferTime /*int*/) {\n release || somewhatImplemented('public flash.media.SoundMixer::set bufferTime');\n SoundMixer._bufferTime = bufferTime | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundMixer, \"soundTransform\", {\n get: function () {\n release || somewhatImplemented('public flash.media.SoundMixer::get soundTransform');\n return isNullOrUndefined(SoundMixer._soundTransform) ?\n new SoundTransform() :\n new SoundTransform(SoundMixer._soundTransform.volume, SoundMixer._soundTransform.pan);\n },\n set: function (sndTransform) {\n release || somewhatImplemented('public flash.media.SoundMixer::set soundTransform');\n SoundMixer._soundTransform = isNullOrUndefined(sndTransform) ?\n new SoundTransform() :\n sndTransform;\n SoundMixer._updateAllSoundSources();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundMixer, \"audioPlaybackMode\", {\n get: function () {\n release || notImplemented('public flash.media.SoundMixer::get audioPlaybackMode');\n return;\n // return SoundMixer._audioPlaybackMode;\n },\n set: function (_value) {\n release || notImplemented('public flash.media.SoundMixer::set audioPlaybackMode');\n return;\n // SoundMixer._audioPlaybackMode = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundMixer, \"useSpeakerphoneForVoice\", {\n get: function () {\n release || notImplemented('public flash.media.SoundMixer::get useSpeakerphoneForVoice');\n return;\n // return SoundMixer._useSpeakerphoneForVoice;\n },\n set: function (_value) {\n release || notImplemented('public flash.media.SoundMixer::set useSpeakerphoneForVoice');\n return;\n // SoundMixer._useSpeakerphoneForVoice = value;\n },\n enumerable: false,\n configurable: true\n });\n SoundMixer.stopAll = function () {\n SoundMixer._registeredSoundSources.forEach(function (e) { return e.stopSound(); });\n SoundMixer._registeredSoundSources = [];\n AwayMovieClip.stopSounds();\n };\n SoundMixer.computeSpectrum = function (outputArray, _FFTMode, _stretchFactor) {\n if (_FFTMode === void 0) { _FFTMode = false; }\n if (_stretchFactor === void 0) { _stretchFactor = 0; }\n release || somewhatImplemented('public flash.media.SoundMixer::static computeSpectrum');\n var data = new Float32Array(1024);\n for (var i = 0; i < 1024; i++) {\n data[i] = Math.random();\n }\n outputArray.writeRawBytes(data);\n outputArray.position = 0;\n };\n SoundMixer.areSoundsInaccessible = function () {\n release || notImplemented('public flash.media.SoundMixer::static areSoundsInaccessible');\n return;\n };\n SoundMixer._getMasterVolume = function () {\n return SoundMixer._masterVolume;\n };\n SoundMixer._setMasterVolume = function (volume) {\n volume = +volume;\n SoundMixer._masterVolume = volume;\n SoundMixer._updateAllSoundSources();\n };\n SoundMixer._registerSoundSource = function (source) {\n SoundMixer._registeredSoundSources.push(source);\n };\n SoundMixer._unregisterSoundSource = function (source) {\n var index = SoundMixer._registeredSoundSources.indexOf(source);\n if (index >= 0) {\n SoundMixer._registeredSoundSources.splice(index, 1);\n }\n };\n SoundMixer._updateAllSoundSources = function () {\n var volume = SoundMixer._getMasterVolume();\n if (SoundMixer._soundTransform) {\n volume *= SoundMixer._soundTransform.volume;\n }\n AudioManager.setVolume(volume, -1);\n };\n // Called whenever the class is initialized.\n SoundMixer.classInitializer = null;\n // List of static symbols to link.\n SoundMixer.classSymbols = null; // [];\n // List of instance symbols to link.\n SoundMixer.instanceSymbols = null; // [];\n SoundMixer._masterVolume = 1;\n SoundMixer._registeredSoundSources = [];\n SoundMixer._bufferTime = 0;\n return SoundMixer;\n}(ASObject));\nexport { SoundMixer };\n","/**\r\n * Base export class for dispatching events\r\n*\r\n* @export class away.events.EventDispatcher\r\n*\r\n*/\r\nvar EventDispatcher = /** @class */ (function () {\r\n function EventDispatcher(target) {\r\n if (target === void 0) { target = null; }\r\n this._listenerObjects = {};\r\n this._t = target || this;\r\n }\r\n /**\r\n * Add an event listener\r\n * @method addEventListener\r\n * @param {String} type of event to add a listener for\r\n * @param {Function} listener function\r\n */\r\n EventDispatcher.prototype.addEventListener = function (type, listener) {\r\n var l = this._listenerObjects[type];\r\n if (l === undefined)\r\n l = this._listenerObjects[type] = new ListenerObject();\r\n l.addEventListener(listener);\r\n };\r\n /**\r\n * Remove an event listener\r\n * @method removeEventListener\r\n * @param {String} type of event to remove a listener for\r\n * @param {Function} listener function\r\n */\r\n EventDispatcher.prototype.removeEventListener = function (type, listener) {\r\n var l = this._listenerObjects[type];\r\n if (l) {\r\n l.removeEventListener(listener);\r\n if (l.numListeners == 0)\r\n delete this._listenerObjects[type];\r\n }\r\n };\r\n /**\r\n * Dispatch an event\r\n * @method dispatchEvent\r\n * @param {Event} event to dispatch\r\n */\r\n EventDispatcher.prototype.dispatchEvent = function (event, target) {\r\n if (target === void 0) { target = null; }\r\n var l = this._listenerObjects[event.type];\r\n if (l) {\r\n event.target = target || this._t;\r\n event.currentTarget = this._t;\r\n l.dispatchEvent(event);\r\n }\r\n };\r\n /**\r\n * check if an object has an event listener assigned to it\r\n * @method hasListener\r\n * @param {String} type of event to remove a listener for\r\n * @param {Function} listener function\r\n */\r\n EventDispatcher.prototype.hasEventListener = function (type, listener) {\r\n if (this._listenerObjects[type] === undefined)\r\n return false;\r\n if (listener != null)\r\n return this._listenerObjects[type].getEventListenerIndex(listener) !== -1;\r\n return this._listenerObjects[type].numListeners > 0;\r\n };\r\n EventDispatcher.prototype.removeAllEventListeners = function () {\r\n this._listenerObjects = {};\r\n };\r\n return EventDispatcher;\r\n}());\r\nexport { EventDispatcher };\r\nvar ListenerObject = /** @class */ (function () {\r\n function ListenerObject() {\r\n this._index = 0;\r\n this._listeners = new Array();\r\n this.numListeners = 0;\r\n }\r\n ListenerObject.prototype.addEventListener = function (listener) {\r\n //check if listener already added\r\n if (this._listeners.indexOf(listener) !== -1)\r\n return;\r\n this._listeners.push(listener);\r\n this.numListeners++;\r\n };\r\n ListenerObject.prototype.removeEventListener = function (listener) {\r\n //check if listener exists\r\n var index = this._listeners.indexOf(listener);\r\n if (index === -1)\r\n return;\r\n this._listeners.splice(index, 1);\r\n //deals with removing a listener mid-way through dispatching listeners\r\n if (index <= this._index)\r\n this._index--;\r\n this.numListeners--;\r\n };\r\n ListenerObject.prototype.dispatchEvent = function (event) {\r\n var len = this.numListeners;\r\n for (this._index = 0; this._index < len && this._index < this.numListeners; this._index++) {\r\n this._listeners[this._index](event);\r\n if (!event._iAllowedToImmediatlyPropagate) {\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * get Event Listener Index in array. Returns -1 if no listener is added\r\n * @method getEventListenerIndex\r\n * @param {Function} listener function\r\n */\r\n ListenerObject.prototype.getEventListenerIndex = function (listener) {\r\n return this._listeners.indexOf(listener);\r\n };\r\n return ListenerObject;\r\n}());\r\nexport { ListenerObject };\r\n","var EventBase = /** @class */ (function () {\r\n function EventBase(type) {\r\n this._iAllowedToPropagate = true;\r\n this._iAllowedToImmediatlyPropagate = true;\r\n this.type = type;\r\n }\r\n /**\r\n * Clones the current event.\r\n * @return An exact duplicate of the current event.\r\n */\r\n EventBase.prototype.clone = function () {\r\n return new EventBase(this.type);\r\n };\r\n return EventBase;\r\n}());\r\nexport { EventBase };\r\n","import { __extends } from \"tslib\";\r\nimport { EventDispatcher } from '../events/EventDispatcher';\r\nimport { EventBase } from '../events/EventBase';\r\nvar BaseAudioChannel = /** @class */ (function (_super) {\r\n __extends(BaseAudioChannel, _super);\r\n function BaseAudioChannel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._stopped = false;\r\n _this._loops = 0;\r\n _this._id = -1;\r\n _this._isLooping = false;\r\n _this._isPlaying = false;\r\n _this._isDecoding = false;\r\n return _this;\r\n }\r\n Object.defineProperty(BaseAudioChannel.prototype, \"stopped\", {\r\n get: function () {\r\n return this._stopped;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n BaseAudioChannel.prototype.isLooping = function () {\r\n return this._isLooping;\r\n };\r\n BaseAudioChannel.prototype.isPlaying = function () {\r\n return this._isPlaying;\r\n };\r\n BaseAudioChannel.prototype.isDecoding = function () {\r\n return this._isDecoding;\r\n };\r\n BaseAudioChannel.prototype.play = function (buffer, offset, loop, id, meta) {\r\n this._loops = typeof loop === 'number' ? loop : loop ? 1000 : 0;\r\n this._id = id || -1;\r\n };\r\n BaseAudioChannel.prototype.dispatchRestart = function () {\r\n this.dispatchEvent(BaseAudioChannel.RESTART_EVENT);\r\n };\r\n /**\r\n * Check loop and try restart it\r\n * @protected\r\n */\r\n BaseAudioChannel.prototype.tryRestartLoop = function () {\r\n this._loops--;\r\n if (this._loops <= 0) {\r\n return false;\r\n }\r\n if (this.restart()) {\r\n return true;\r\n }\r\n this._loops = 0;\r\n return false;\r\n };\r\n BaseAudioChannel.prototype.completeInternally = function (dispatchComplete, tryRestart) {\r\n if (dispatchComplete === void 0) { dispatchComplete = true; }\r\n if (tryRestart === void 0) { tryRestart = true; }\r\n if (tryRestart && this.tryRestartLoop()) {\r\n return;\r\n }\r\n if (dispatchComplete) {\r\n this.dispatchEvent(BaseAudioChannel.COMPLETE_EVENT);\r\n }\r\n };\r\n BaseAudioChannel.prototype.dispatchComplete = function () {\r\n this.dispatchEvent(BaseAudioChannel.COMPLETE_EVENT);\r\n };\r\n BaseAudioChannel.prototype.dispatchStop = function (error) {\r\n if (error === void 0) { error = false; }\r\n this.dispatchEvent(error ?\r\n BaseAudioChannel.ERROR_EVENT :\r\n BaseAudioChannel.STOP_EVENT);\r\n // now channel can't be restarted;\r\n this.owner = null;\r\n this._stopped = true;\r\n this.removeAllEventListeners();\r\n };\r\n BaseAudioChannel.COMPLETE = 'complete';\r\n BaseAudioChannel.RESTART = 'restart';\r\n BaseAudioChannel.STOP = 'stop';\r\n BaseAudioChannel.ERROR = 'error';\r\n BaseAudioChannel.RESTART_EVENT = new EventBase(BaseAudioChannel.RESTART);\r\n BaseAudioChannel.COMPLETE_EVENT = new EventBase(BaseAudioChannel.COMPLETE);\r\n BaseAudioChannel.STOP_EVENT = new EventBase(BaseAudioChannel.STOP);\r\n BaseAudioChannel.ERROR_EVENT = new EventBase(BaseAudioChannel.ERROR);\r\n return BaseAudioChannel;\r\n}(EventDispatcher));\r\nexport { BaseAudioChannel };\r\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { release } from '@awayfl/swf-loader';\nimport { Event } from '../events/Event';\nimport { SoundMixer } from './SoundMixer';\nimport { BaseAudioChannel } from '@awayjs/core/dist/lib/managers/BaseAudioChannel';\n/**\n * Dispatched when a sound has finished playing.\n * @eventType\tflash.events.Event.SOUND_COMPLETE\n * [Event(name=\"soundComplete\", type=\"flash.events.Event\")]\n *\n * The SoundChannel class controls a sound in an application. Every sound\n * is assigned to a sound channel, and the application can have multiple\n * sound channels that are mixed together.\n * The SoundChannel class contains a <codeph class=\"+ topic/ph pr-d/codeph \">stop()</codeph> method,\n * properties for monitoring the amplitude (volume) of the channel, and a property for assigning a\n * SoundTransform object to the channel.\n */\nvar SoundChannel = /** @class */ (function (_super) {\n __extends(SoundChannel, _super);\n function SoundChannel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // for AVM1:\n SoundChannel.prototype.axCallPublicProperty = function (value1, value2) {\n return null;\n };\n SoundChannel.prototype.axGetPublicProperty = function (value) {\n return null;\n };\n SoundChannel.prototype.axSetPublicProperty = function (value, value2) {\n return null;\n };\n SoundChannel.prototype.axHasPublicProperty = function (value) {\n return null;\n };\n SoundChannel.prototype.axDeletePublicProperty = function (value) {\n return null;\n };\n SoundChannel.prototype.axGetEnumerableKeys = function () {\n return [];\n };\n /* internal */ SoundChannel.prototype.init = function (channel, transform) {\n this._channel = channel;\n if (!this._channel) {\n return;\n }\n this._channel.addEventListener(BaseAudioChannel.COMPLETE, this.soundCompleteInternal.bind(this));\n this.soundTransform = transform;\n SoundMixer._registerSoundSource(this);\n };\n Object.defineProperty(SoundChannel.prototype, \"leftPeak\", {\n /**\n * The current amplitude (volume) of the left channel, from 0 (silent) to 1 (full amplitude).\n */\n get: function () {\n release || console.log('leftPeak not implemented yet in flash/SoundChannel');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundChannel.prototype, \"position\", {\n /**\n * When the sound is playing, the position property indicates in milliseconds the current point\n * that is being played in the sound file. When the sound is stopped or paused, the\n * position property indicates the last point that was played in the sound file.\n *\n * A common use case is to save the value of the position property when the\n * sound is stopped. You can resume the sound later by restarting it from that saved position.\n * If the sound is looped, position is reset to 0 at the beginning of each loop.\n */\n get: function () {\n return this._channel ? this._channel.currentTime : 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundChannel.prototype, \"rightPeak\", {\n /**\n * The current amplitude (volume) of the right channel, from 0 (silent) to 1 (full amplitude).\n */\n get: function () {\n release || console.log('rightPeak not implemented yet in flash/SoundChannel');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SoundChannel.prototype, \"soundTransform\", {\n /**\n * The SoundTransform object assigned to the sound channel. A SoundTransform object\n * includes properties for setting volume, panning, left speaker assignment, and right\n * speaker assignment.\n */\n get: function () {\n //\twe not create this in the constructor, because it gets overwritten from Sound in most cases anyway\n //\tbut we still need a Soundtransform to be available in the getter\n if (!this._soundTransform) {\n this._soundTransform = new this.sec.flash.media.SoundTransform();\n }\n return this._soundTransform;\n },\n set: function (value) {\n if (this._channel) {\n this._channel.volume = (value.volume == null) ? 0 : value.volume;\n this._channel.pan = (value.pan == null) ? 0 : value.pan;\n }\n this._soundTransform = value;\n },\n enumerable: false,\n configurable: true\n });\n SoundChannel.prototype.soundCompleteInternal = function (event) {\n this._stopInternally();\n // we should dispatch sound events to channel, because some games use this\n var complete = new this.sec.flash.events.Event(Event.SOUND_COMPLETE);\n this.dispatchEvent(complete);\n };\n SoundChannel.prototype._stopInternally = function () {\n SoundMixer._unregisterSoundSource(this);\n };\n /**\n * Stops the sound playing in the channel.\n * @langversion\t3.0\n * @playerversion\tFlash 9\n * @playerversion\tLite 4\n * @refpath\n */\n SoundChannel.prototype.stop = function () {\n if (!this._channel) {\n release || console.log('SoundChannel.stop: No sound exists');\n return;\n }\n this._stopInternally();\n this._channel.stop();\n };\n // for ISoundSource\n SoundChannel.prototype.stopSound = function () {\n this.stop();\n };\n // for ISoundSource\n SoundChannel.prototype.updateSoundLevels = function (volume) {\n if (!this._channel) {\n return;\n }\n this._soundTransform.volume = volume;\n this._channel.volume = volume;\n };\n return SoundChannel;\n}(EventDispatcher));\nexport { SoundChannel };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar FileFilter = /** @class */ (function (_super) {\n __extends(FileFilter, _super);\n function FileFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(FileFilter.prototype, \"description\", {\n get: function () {\n return this._description;\n },\n set: function (value) {\n this._description = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileFilter.prototype, \"extension\", {\n get: function () {\n return this._extension;\n },\n set: function (value) {\n this._extension = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileFilter.prototype, \"macType\", {\n get: function () {\n return this._macType;\n },\n set: function (value) {\n this._macType = value;\n },\n enumerable: false,\n configurable: true\n });\n return FileFilter;\n}(ASObject));\nexport { FileFilter };\n","import { ConfigManager } from '@awayjs/core';\nexport var Settings = ConfigManager.instance.addStore('playerglobal', {\n /**\n * @description Enable experimental File Picker\n */\n ENABLE_FILE_PICKER: true,\n});\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { ByteArray } from '../utils/ByteArray';\nimport { Event } from '../events/Event';\nimport { Settings } from '../Settings';\nvar USE_FILE_PICKER = ('showSaveFilePicker' in self) && Settings.ENABLE_FILE_PICKER;\nif (USE_FILE_PICKER) {\n console.debug('[FileReference] `showSaveFilePicker` used for save()');\n}\nvar FileReference = /** @class */ (function (_super) {\n __extends(FileReference, _super);\n function FileReference() {\n return _super.call(this) || this;\n }\n Object.defineProperty(FileReference.prototype, \"size\", {\n get: function () {\n return this._size;\n },\n set: function (value) {\n this._size = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (value) {\n this._data = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"extension\", {\n get: function () {\n return this._extension;\n },\n set: function (value) {\n this._extension = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"permissionStatus\", {\n get: function () {\n return this._permissionStatus;\n },\n set: function (value) {\n this._permissionStatus = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"type\", {\n get: function () {\n return this._type;\n },\n set: function (value) {\n this._type = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"creator\", {\n get: function () {\n return this._creator;\n },\n set: function (value) {\n this._creator = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"name\", {\n get: function () {\n return this._name;\n },\n set: function (value) {\n this._name = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"modificationDate\", {\n get: function () {\n return this._modificationDate;\n },\n set: function (value) {\n this._modificationDate = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FileReference.prototype, \"creationDate\", {\n get: function () {\n return this._creationDate;\n },\n set: function (value) {\n this._creationDate = value;\n },\n enumerable: false,\n configurable: true\n });\n //Displays a file-browsing dialog box that lets the user select a file to upload.\n FileReference.prototype.browse = function (typelist) {\n var _a;\n var _this = this;\n var knownTypes = FileReference.knownMimeTypes;\n var openDialog = window.showOpenFilePicker;\n if (!openDialog) {\n console.warn('[flash/net/FileReference] FileSystem API not supported!');\n return false;\n }\n var types = [];\n for (var i = 0; i < typelist.length; i++) {\n var filter = typelist[i];\n var extension = filter.extension.slice(filter.extension.lastIndexOf('.'));\n var mime = extension in knownTypes ? knownTypes[extension]['mime'] : 'application/unknown';\n types.push({\n description: filter.description,\n accept: (_a = {}, _a[mime] = extension, _a)\n });\n }\n var options = {\n types: types\n };\n openDialog(options)\n .then(function (fileHandler) {\n _this._sendSelectEvent();\n return fileHandler[0].getFile();\n })\n .then(function (file) {\n _this.modificationDate = new Date(file.lastModified);\n _this.name = file.name;\n _this.size = file.size;\n _this.type = file.type;\n var extIndex = file.name.lastIndexOf('.');\n _this.extension = extIndex >= 0 ? file.name.slice(extIndex + 1) : null;\n return file.arrayBuffer();\n })\n .then(function (buf) {\n _this.data = new ByteArray(buf.byteLength);\n _this.data.setArrayBuffer(buf);\n _this._sendCompleteEvent();\n })\n .catch(function (e) {\n if (e.code === 20 && e.message === 'The user aborted a request.') {\n _this._sendCancelEvent();\n return;\n }\n console.warn('[flash/net/FileReference] FileSystem API Reject `showOpenFilePicker` request:', e);\n });\n return true;\n };\n //Starts the upload of the file to a remote server.\n FileReference.prototype.upload = function (url) {\n console.log('upload not implemented yet in flash/FileReference');\n return true;\n };\n //Starts the load of a local file selected by a user.\n FileReference.prototype.load = function () {\n console.log('load not implemented yet in flash/FileReference');\n };\n //Opens a dialog box that lets the user save a file to the local filesystem.\n FileReference.prototype.save = function (data, _defaultFileName) {\n if (_defaultFileName === void 0) { _defaultFileName = null; }\n if (this._useFileSystemSave(data, _defaultFileName)) {\n return;\n }\n };\n FileReference.prototype._useFileSystemSave = function (data, name) {\n var _a;\n var _this = this;\n if (name === void 0) { name = ''; }\n var knownTypes = FileReference.knownMimeTypes;\n var isString = typeof data === 'string';\n var isByteArray = data.getBytes !== undefined;\n var ext = name.slice(name.lastIndexOf('.'));\n if (!USE_FILE_PICKER)\n return false;\n // this is draft API\n // https://web.dev/file-system-access/\n var openDialog = window.showSaveFilePicker;\n if (!openDialog) {\n console.warn('[flash/net/FileReference] FileSystem API not supported!');\n return false;\n }\n if (!isString && !isByteArray) {\n console.warn('[FileReference] Save is only supported for String and ByteArray');\n return;\n }\n var types = [];\n if (ext in knownTypes) {\n var mime = knownTypes[ext].mime;\n types[0] = {\n description: knownTypes[ext].description,\n accept: (_a = {}, _a[mime] = ext, _a),\n };\n }\n else {\n types[0] = {\n description: '',\n accept: { 'application/unknown': ext },\n };\n }\n var options = {\n suggestedName: name || '',\n types: types\n };\n openDialog(options)\n .then(function (fileHandler) {\n _this._sendSelectEvent();\n return fileHandler.createWritable();\n })\n .then(function (stream) {\n return stream\n .write(isByteArray ? data.getBytes() : data)\n .then(function () { return stream.close(); });\n })\n .then(function (_e) {\n _this._sendCompleteEvent();\n })\n .catch(function (e) {\n if (e.code === 20 && e.message === 'The user aborted a request.') {\n _this._sendCancelEvent();\n return;\n }\n console.warn('[flash/net/FileReference] FileSystem API Reject `showSaveFilePicker` request:', e);\n });\n };\n FileReference.prototype._sendCancelEvent = function () {\n var event = new this.sec.flash.events.Event(Event.CANCEL);\n event.currentTarget = this;\n event.target = this;\n this.dispatchEvent(event);\n };\n FileReference.prototype._sendCompleteEvent = function () {\n var event = new this.sec.flash.events.Event(Event.COMPLETE);\n event.currentTarget = this;\n event.target = this;\n this.dispatchEvent(event);\n };\n FileReference.prototype._sendSelectEvent = function () {\n var event = new this.sec.flash.events.Event(Event.SELECT);\n event.currentTarget = this;\n event.target = this;\n this.dispatchEvent(event);\n };\n //Requests permission to access filesystem.\n FileReference.prototype.requestPermission = function () {\n console.log('upload not implemented yet in flash/FileReference');\n };\n //Opens a dialog box that lets the user download a file from a remote server.\n FileReference.prototype.download = function (url, defaultFileName) {\n console.log('download not implemented yet in flash/FileReference');\n return true;\n };\n //Cancels any ongoing upload or download operation on this FileReference object.\n FileReference.prototype.cancel = function () {\n console.log('cancel not implemented yet in flash/FileReference');\n };\n FileReference.forceNativeMethods = true;\n FileReference.knownMimeTypes = {\n '.jpeg': { 'mime': 'image/jpeg', 'description': 'JPEG images' },\n '.jpg': { 'mime': 'image/jpeg', 'description': 'JPEG images' },\n '.txt': { 'mime': 'text/plain', 'description': 'Text documents' },\n };\n return FileReference;\n}(EventDispatcher));\nexport { FileReference };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { notImplemented, warning, StringUtilities } from '@awayfl/swf-loader';\nimport { axCoerceString, ObjectEncoding, AMF3, transformASValueToJS, transformJSValueToAS } from '@awayfl/avm2';\nimport { ByteArray } from '../utils/ByteArray';\nexport var AWAY_SO_VERSION = 3;\nexport var AWAY_SO_MAGIC = 'AWAY';\nexport var AWAY_SO_HEADER_SIZE = AWAY_SO_MAGIC.length + 2; // magic, version, coma\nvar _sharedObjectStorage;\nvar VirtualStorage = /** @class */ (function () {\n function VirtualStorage() {\n this._values = {};\n this._realStorage = null;\n }\n VirtualStorage.prototype.getItem = function (key) {\n if (this._realStorage) {\n this._values[key] = this._realStorage.getItem(key);\n }\n return this._values[key];\n };\n VirtualStorage.prototype.setItem = function (key, value) {\n if (this._realStorage) {\n this._realStorage.setItem(key, value);\n }\n this._values[key] = value;\n };\n VirtualStorage.prototype.removeItem = function (key) {\n if (this._realStorage) {\n this._realStorage.removeItem(key);\n }\n delete this._values[key];\n };\n return VirtualStorage;\n}());\nexport function getSharedObjectStorage() {\n if (!_sharedObjectStorage) {\n _sharedObjectStorage = new VirtualStorage();\n if (typeof Storage !== 'undefined') {\n try {\n _sharedObjectStorage._realStorage = window.localStorage;\n }\n catch (e) {\n console.warn('[Shared Storage] ', e);\n }\n }\n }\n return _sharedObjectStorage;\n}\nvar SharedObjectDebug = /** @class */ (function () {\n function SharedObjectDebug() {\n }\n SharedObjectDebug.decodedData = function () {\n if (!USED_SEC) {\n throw 'Can\\'t decode without security context';\n }\n var store = getSharedObjectStorage();\n var raw = {};\n var dec = {};\n for (var key in store._values) {\n var d = store._values[key];\n if (d !== null) {\n raw[key] = SharedObject.tryDecodeData(store._values[key]).data;\n dec[key] = transformASValueToJS(USED_SEC, raw[key], true);\n }\n else {\n raw[key] = dec[key] = null;\n }\n }\n this._lastDecodedData = dec;\n this._lastRawData = raw;\n return dec;\n };\n SharedObjectDebug.encodeAndApplyData = function () {\n if (!this._lastRawData) {\n throw 'Need call decode before encode for detecting model';\n }\n var newRaw = {};\n for (var key in this._lastRawData) {\n if (typeof this._lastDecodedData[key] === undefined) {\n newRaw[key] = this._lastRawData[key];\n continue;\n }\n newRaw[key] = transformJSValueToAS(USED_SEC, this._lastDecodedData[key], true);\n }\n var so = getSharedObjectStorage();\n for (var key in newRaw) {\n if (newRaw[key] !== null) {\n so.setItem(key, SharedObject.tryEncodeData(newRaw[key]));\n }\n }\n return newRaw;\n };\n SharedObjectDebug._lastRawData = null;\n SharedObjectDebug._lastDecodedData = null;\n return SharedObjectDebug;\n}());\nexport { SharedObjectDebug };\n//@ts-ignore\nwindow._AWAY_DEBUG_STORAGE = SharedObjectDebug;\nwindow.addEventListener('unload', function () {\n SharedObject.closeAll();\n});\nwindow.addEventListener('blur', function () {\n SharedObject.flushAll();\n});\nvar USED_SEC = undefined;\nvar SharedObject = /** @class */ (function (_super) {\n __extends(SharedObject, _super);\n function SharedObject() {\n var _this = _super.call(this) || this;\n _this.awaySOVersion = 1; // legacy\n return _this;\n }\n Object.defineProperty(SharedObject, \"defaultObjectEncoding\", {\n get: function () {\n notImplemented('public flash.net.SharedObject::static defaultObjectEncoding');\n return;\n },\n set: function (version /*uint*/) {\n notImplemented('public flash.net.SharedObject::static defaultObjectEncoding');\n return;\n },\n enumerable: false,\n configurable: true\n });\n SharedObject.deleteAll = function (url) {\n notImplemented('public flash.net.SharedObject::static deleteAll');\n return;\n };\n SharedObject.getDiskUsage = function (url) {\n notImplemented('public flash.net.SharedObject::static getDiskUsage');\n return 0;\n };\n /* internal */ SharedObject.tryDecodeData = function (data) {\n var version = 1;\n if (data.indexOf(AWAY_SO_MAGIC) > -1) {\n version = +data[AWAY_SO_MAGIC.length];\n data = data.substring(AWAY_SO_HEADER_SIZE);\n }\n var bytes = StringUtilities.decodeRestrictedBase64ToBytes(data);\n var serializedData = new ByteArray(bytes.length);\n serializedData.sec = this.sec || USED_SEC;\n serializedData.setArrayBuffer(bytes.buffer);\n return {\n data: AMF3.read(serializedData),\n version: version\n };\n };\n /* internal */ SharedObject.tryEncodeData = function (data) {\n var serializedData = new ByteArray();\n serializedData.sec = this.sec || USED_SEC;\n AMF3.write(serializedData, data);\n var bytes = new Uint8Array(serializedData.arraybytes, 0, serializedData.length);\n return StringUtilities.base64EncodeBytes(bytes);\n };\n SharedObject.getLocal = function (name, localPath, secure) {\n USED_SEC = this.sec;\n name = axCoerceString(name);\n localPath = axCoerceString(localPath);\n secure = !!secure;\n var path = (localPath || '') + '/' + name;\n if (SharedObject._sharedObjects[path]) {\n return SharedObject._sharedObjects[path];\n }\n var encodedData = getSharedObjectStorage().getItem(path);\n var encoding = this._defaultObjectEncoding;\n var data;\n var version = AWAY_SO_VERSION;\n if (encodedData) {\n try {\n var res = SharedObject.tryDecodeData(encodedData);\n data = res.data;\n version = res.version;\n }\n catch (e) {\n warning('Error encountered while decoding LocalStorage entry. Resetting data.');\n }\n if (!data || typeof data !== 'object') {\n data = this.sec.createObject();\n }\n }\n else {\n data = this.sec.createObject();\n }\n var so = new this.sec.flash.net.SharedObject();\n so._path = path;\n so._objectEncoding = encoding;\n so._data = data;\n so.awaySOVersion = version;\n SharedObject._sharedObjects[path] = so;\n return so;\n };\n SharedObject.getRemote = function (name, remotePath, persistence, secure) {\n return new this.sec.flash.net.SharedObject();\n };\n SharedObject.closeAll = function () {\n for (var key in SharedObject._sharedObjects) {\n if (SharedObject._sharedObjects[key]) {\n SharedObject._sharedObjects[key].close();\n }\n }\n };\n SharedObject.flushAll = function () {\n for (var key in SharedObject._sharedObjects) {\n if (SharedObject._sharedObjects[key]) {\n SharedObject._sharedObjects[key].flush();\n }\n }\n };\n SharedObject.prototype.flush = function (minDiskSpace) {\n if (minDiskSpace === void 0) { minDiskSpace = 0; }\n // Check if the object is empty. If it is, don't create a stored object if one doesn't exist.\n var isEmpty = true;\n for (var key in this._data) {\n if (this._data.hasOwnProperty(key)) {\n isEmpty = false;\n break;\n }\n }\n if (isEmpty && !getSharedObjectStorage().getItem(this._path)) {\n return;\n }\n USED_SEC = this.sec;\n var encoded = AWAY_SO_MAGIC +\n AWAY_SO_VERSION.toFixed(0) + ',' +\n SharedObject.tryEncodeData(this._data);\n getSharedObjectStorage().setItem(this._path, encoded);\n };\n Object.defineProperty(SharedObject.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (object) {\n this._data = object;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SharedObject.prototype, \"objectEncoding\", {\n get: function () {\n notImplemented('public flash.net.SharedObject::get objectEncoding');\n return;\n },\n set: function (version /*uint*/) {\n notImplemented('public flash.net.SharedObject::set objectEncoding');\n return;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SharedObject.prototype, \"client\", {\n get: function () {\n notImplemented('public flash.net.SharedObject::get client');\n return;\n // return this._client;\n },\n set: function (object) {\n notImplemented('public flash.net.SharedObject::set client');\n return;\n // this._client = object;\n },\n enumerable: false,\n configurable: true\n });\n SharedObject.prototype.setDirty = function (propertyName) {\n notImplemented('public flash.net.SharedObject::setDirty');\n return;\n };\n SharedObject.prototype.connect = function (myConnection, params) {\n if (params === void 0) { params = null; }\n notImplemented('public flash.net.SharedObject::connect');\n return;\n };\n SharedObject.prototype.send = function () {\n notImplemented('public flash.net.SharedObject::send');\n return;\n };\n /**\n * Closed and flushed SO\n * @see https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html#close()\n */\n SharedObject.prototype.close = function () {\n // should run flush when close is requested\n this.flush();\n delete SharedObject._sharedObjects[this._path];\n };\n /**\n * Clear object\n * @see https://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html#clear()\n */\n SharedObject.prototype.clear = function () {\n this._data = this.sec.createObject();\n // should run flush to overwrite a data to empty, but we only remove key\n // this is look like simmilar\n getSharedObjectStorage().removeItem(this._path);\n delete SharedObject._sharedObjects[this._path];\n };\n Object.defineProperty(SharedObject.prototype, \"size\", {\n get: function () {\n var _a;\n return ((_a = getSharedObjectStorage().getItem(this._path)) === null || _a === void 0 ? void 0 : _a.length) || 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SharedObject.prototype, \"fps\", {\n set: function (updatesPerSecond) {\n notImplemented('public flash.net.SharedObject::set fps');\n return;\n },\n enumerable: false,\n configurable: true\n });\n SharedObject.prototype.setProperty = function (propertyName, value) {\n if (value === void 0) { value = null; }\n notImplemented('public flash.net.SharedObject::setProperty');\n return;\n };\n SharedObject._sharedObjects = {};\n SharedObject._defaultObjectEncoding = ObjectEncoding.DEFAULT;\n return SharedObject;\n}(ASObject));\nexport { SharedObject };\n","import { __extends } from \"tslib\";\nimport { URLLoader as URLLoaderAway, URLLoaderEvent } from '@awayjs/core';\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { Event } from '../events/Event';\nimport { ProgressEvent } from '../events/ProgressEvent';\nimport { IOErrorEvent } from '../events/IOErrorEvent';\nimport { matchRedirect } from '@awayfl/swf-loader';\nimport { URLLoaderDataFormat } from './URLLoaderDataFormat';\nvar URLLoader = /** @class */ (function (_super) {\n __extends(URLLoader, _super);\n function URLLoader() {\n var _this = _super.call(this) || this;\n _this._dataIsNull = true;\n _this._adaptee = new URLLoaderAway();\n _this._completeCallbackDelegate = function (event) { return _this.completeCallback(event); };\n _this._progressCallbackDelegate = function (event) { return _this.progressCallback(event); };\n _this._loadErrorDelegate = function (event) { return _this.loadErrorDelegate(event); };\n _this.eventMapping[Event.COMPLETE] = {\n adaptedType: URLLoaderEvent.LOAD_COMPLETE,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._completeCallbackDelegate\n };\n _this.eventMapping[ProgressEvent.PROGRESS] = {\n adaptedType: URLLoaderEvent.LOAD_PROGRESS,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._progressCallbackDelegate\n };\n _this.eventMapping[IOErrorEvent.IO_ERROR] = {\n adaptedType: URLLoaderEvent.LOAD_ERROR,\n addListener: _this.initListener,\n removeListener: _this.removeListener,\n callback: _this._loadErrorDelegate\n };\n Object.defineProperty(_this, '$Bgdata', {\n get: _this.getData.bind(_this),\n set: _this.setData.bind(_this)\n });\n return _this;\n }\n URLLoader.prototype.close = function () {\n console.log('not mimplemented: URLoader.close');\n };\n URLLoader.prototype.setData = function (v) {\n this._dataIsNull = this._dataIsNull || v === null;\n };\n // trait not have data as get/set, we should redefine it in constructor\n URLLoader.prototype.getData = function () {\n if (this._dataIsNull)\n return null;\n var rawData = this._adaptee.data;\n switch (this.$BgdataFormat) {\n case URLLoaderDataFormat.VARIABLES: {\n return new this.sec.flash.net.URLVariables(rawData);\n }\n case URLLoaderDataFormat.BINARY: {\n console.warn('[URLLoader] Binary not supported');\n return null;\n }\n default: {\n return rawData;\n }\n }\n };\n URLLoader.prototype.initListener = function (type, callback) {\n this._adaptee.addEventListener(type, callback);\n };\n URLLoader.prototype.removeListener = function (type, callback) {\n this._adaptee.removeEventListener(type, callback);\n };\n URLLoader.prototype.addEventListener = function (type, callback) {\n _super.prototype.addEventListener.call(this, type, callback);\n };\n URLLoader.prototype.loadErrorDelegate = function (event) {\n if (event === void 0) { event = null; }\n this._dataIsNull = false;\n var newEvent = new this.sec.flash.events.IOErrorEvent(IOErrorEvent.IO_ERROR);\n newEvent.currentTarget = this;\n this.dispatchEvent(newEvent);\n };\n URLLoader.prototype.progressCallback = function (event) {\n if (event === void 0) { event = null; }\n this._dataIsNull = false;\n var newEvent = new this.sec.flash.events.\n ProgressEvent(ProgressEvent.PROGRESS, null, null, event.urlLoader.bytesLoaded, event.urlLoader.bytesTotal);\n newEvent.currentTarget = this;\n this.dispatchEvent(newEvent);\n };\n URLLoader.prototype.completeCallback = function (event) {\n if (event === void 0) { event = null; }\n this._dataIsNull = false;\n var newEvent = new this.sec.flash.events.Event(Event.COMPLETE);\n newEvent.currentTarget = this;\n newEvent.target = this;\n this.dispatchEvent(newEvent);\n };\n URLLoader.prototype.load = function (request) {\n var directUrl = request.url || '';\n var redirect = matchRedirect(directUrl, URLLoader.redirectRules);\n if (redirect) {\n console.log('[URL LOADER] Override loading url:', redirect.url);\n request.adaptee.url = redirect.url;\n }\n else {\n console.log('[URL LOADER] start loading the url:', directUrl);\n }\n // remap AS to JS before real request,\n // this is needed because some games fill data object after assigment\n request.mapToJSData();\n this._adaptee.load(request.adaptee);\n };\n URLLoader.redirectRules = [];\n return URLLoader;\n}(EventDispatcher));\nexport { URLLoader };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\n//import { LocalConnectionService, LocalConnectionConnectResult } from \"../../base/utilities/LocalConnectionService\";\nimport { axCoerceString, axIsCallable, axIsTypeString, Errors, ByteArray } from '@awayfl/avm2';\nimport { assert, notImplemented, release, warning } from '@awayfl/swf-loader';\nimport { ErrorEvent } from '../events/ErrorEvent';\n/**\n * Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar LocalConnectionService = {};\nvar LocalConnectionConnectResult = {};\nvar forbiddenNames = ['send', 'connect', 'close', 'allowDomain', 'allowInsecureDomain', 'client', 'domain'];\nObject.freeze(forbiddenNames);\nvar LocalConnection = /** @class */ (function (_super) {\n __extends(LocalConnection, _super);\n function LocalConnection() {\n var _this = _super.call(this) || this;\n _this._client = _this;\n _this._connectionName = null;\n _this._allowedInsecureDomains = [];\n _this._allowedSecureDomains = [];\n // tsc contains a definition for URL that's non-constructible.\n var url = new URL(document.baseURI /*getCurrentABC().env.url*/);\n _this._domain = url.hostname;\n _this._secure = url.protocol === 'https:';\n return _this;\n }\n Object.defineProperty(LocalConnection, \"isSupported\", {\n get: function () {\n return true;\n },\n enumerable: false,\n configurable: true\n });\n LocalConnection.prototype.close = function () {\n var connectionName = this._connectionName;\n if (!connectionName) {\n this.sec.throwError('ArgumentError', Errors.CloseNotConnectedError);\n }\n release || assert(typeof connectionName === 'string' && connectionName.length > 0);\n this._connectionName = null;\n // TODO: verify that these really are reset. For now, we aim to err on the safe side.\n this._allowedInsecureDomains = [];\n this._allowedSecureDomains = [];\n //LocalConnectionService.closeConnection(connectionName, this);\n notImplemented('public flash.net.LocalConnection::close');\n };\n LocalConnection.prototype.connect = function (connectionName) {\n notImplemented('public flash.net.LocalConnection::connect');\n return;\n connectionName = axCoerceString(connectionName);\n if (connectionName === null) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'connectionName');\n }\n if (connectionName === '') {\n this.sec.throwError('TypeError', Errors.EmptyStringError, 'connectionName');\n }\n // The only disallowed character for the connection name is \":\".\n if (connectionName.indexOf(':') > -1) {\n this.sec.throwError('ArgumentError', Errors.InvalidParamError);\n }\n if (this._connectionName) {\n this.sec.throwError('ArgumentError', Errors.AlreadyConnectedError);\n }\n var result = LocalConnectionService.createConnection(connectionName, this);\n if (result === LocalConnectionConnectResult.AlreadyTaken) {\n this.sec.throwError('ArgumentError', Errors.AlreadyConnectedError);\n }\n this._connectionName = connectionName;\n release || assert(result === LocalConnectionConnectResult.Success);\n if (this._allowedInsecureDomains.length) {\n LocalConnectionService.allowDomains(connectionName, this, this._allowedInsecureDomains, false);\n }\n if (this._allowedSecureDomains.length) {\n LocalConnectionService.allowDomains(connectionName, this, this._allowedSecureDomains, true);\n }\n };\n LocalConnection.prototype.send = function (connectionName, methodName) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n notImplemented('public flash.net.LocalConnection::send');\n return;\n connectionName = axCoerceString(connectionName);\n methodName = axCoerceString(methodName);\n if (connectionName === null) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'connectionName');\n }\n if (connectionName === '') {\n this.sec.throwError('TypeError', Errors.EmptyStringError, 'connectionName');\n }\n if (methodName === null) {\n this.sec.throwError('TypeError', Errors.NullPointerError, 'methodName');\n }\n if (methodName === '') {\n this.sec.throwError('TypeError', Errors.EmptyStringError, 'methodName');\n }\n if (forbiddenNames.indexOf(methodName) > -1) {\n this.sec.throwError('ArgumentError', Errors.InvalidParamError);\n }\n var serializedArgs = new ByteArray();\n serializedArgs.writeObject(this.sec.createArrayUnsafe(args));\n if (serializedArgs.length > 40 * 1024) {\n this.sec.throwError('ArgumentError', Errors.ArgumentSizeError);\n }\n var argsBuffer = serializedArgs.getBytes().buffer;\n try {\n LocalConnectionService.send(connectionName, methodName, argsBuffer, this, this._domain, this._secure);\n }\n catch (e) {\n // Not sure what to do here, this shouldn't happen. We'll just ignore it with a warning.\n warning('Unknown error occurred in LocalConnection#send', e);\n }\n };\n Object.defineProperty(LocalConnection.prototype, \"client\", {\n get: function () {\n return this._client;\n },\n set: function (client) {\n if (!this.sec.AXObject.axIsType(client)) {\n this.sec.throwError('ArgumentError', Errors.InvalidParamError);\n }\n this._client = client;\n },\n enumerable: false,\n configurable: true\n });\n LocalConnection.prototype.allowDomain = function () {\n var domains = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n domains[_i] = arguments[_i];\n }\n this._allowDomains(domains, true);\n };\n LocalConnection.prototype.allowInsecureDomain = function () {\n var domains = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n domains[_i] = arguments[_i];\n }\n // allowInsecureDomain also allows secure domains.\n this._allowDomains(domains, true);\n this._allowDomains(domains, false);\n };\n LocalConnection.prototype._allowDomains = function (domains, secure) {\n notImplemented('private flash.net.LocalConnection::_allowDomains');\n return;\n var result = [];\n // If no connection has been made yet, store the domains for later retrieval.\n if (!this._connectionName) {\n result = secure ? this._allowedSecureDomains : this._allowedInsecureDomains;\n }\n for (var i = 0; i < domains.length; i++) {\n var domain = domains[i];\n if (!axIsTypeString(domain)) {\n this.sec.throwError('ArgumentError', Errors.AllowDomainArgumentError);\n }\n if (result.indexOf(domain) === -1) {\n result.push(domain);\n }\n }\n if (this._connectionName) {\n LocalConnectionService.allowDomains(this._connectionName, this, domains, secure);\n }\n };\n LocalConnection.prototype.handleMessage = function (methodName, argsBuffer) {\n var client = this._client;\n var error;\n if (!client.axHasPublicProperty(methodName) || forbiddenNames.indexOf(methodName) > -1) {\n // Forbidden names really shouldn't reach this point, but should everything else fail,\n // we just pretend not to have found them here.\n error = this.sec.createError('ReferenceError', Errors.ReadSealedError, methodName, client.axClass.name.name);\n }\n else {\n var handler = client.axGetPublicProperty(methodName);\n if (!axIsCallable(handler)) {\n // Non-callable handlers are just ignored.\n return;\n }\n var ba = new ByteArray(argsBuffer);\n var args = ba.readObject();\n if (!this.sec.AXArray.axIsType(args)) {\n error =\n this.sec.createError('TypeError', Errors.CheckTypeFailedError, args, 'Array');\n }\n else {\n try {\n handler.apply(client, args.value);\n }\n catch (e) {\n error = e;\n }\n }\n }\n if (!error) {\n return;\n }\n var errorEvent = new ErrorEvent('asyncError', false, false, 'Error #2095: flash.net.LocalConnection was' +\n ' unable to invoke' +\n ' callback ' + methodName + '.', error.errorID);\n if (this.hasEventListener('asyncError')) {\n try {\n this.dispatchEvent(errorEvent);\n }\n catch (e) {\n console.warn('Exception encountered during asyncErrorEvent handling in ' +\n 'LocalConnection sender.');\n }\n }\n else {\n // TODO: add the error to the LoaderInfo#uncaughtErrorEvents list.\n console.warn('No handler for asyncError on LocalConnection sender, not sending event', errorEvent);\n }\n };\n Object.defineProperty(LocalConnection.prototype, \"domain\", {\n get: function () {\n return this._domain;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(LocalConnection.prototype, \"isPerUser\", {\n get: function () {\n // We always return true, because everything else would be a lie.\n return true;\n },\n set: function (newValue) {\n !!newValue;\n // Ignored. See\n // https://blogs.adobe.com/simplicity/2009/08/localconnectionisperuser_in_ai.html for an\n // explanation.\n },\n enumerable: false,\n configurable: true\n });\n LocalConnection.classInitializer = null;\n return LocalConnection;\n}(EventDispatcher));\nexport { LocalConnection };\n","import { __extends, __spreadArray } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { axCoerceString, Multiname } from '@awayfl/avm2';\nimport { NetStatusEvent } from '../events/NetStatusEvent';\nimport { somewhatImplemented, release, notImplemented } from '@awayfl/swf-loader';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: NetConnection\nvar NetConnection = /** @class */ (function (_super) {\n __extends(NetConnection, _super);\n function NetConnection() {\n var _this = _super.call(this) || this;\n _this._httpCallId = 0;\n _this._connected = false;\n _this._proxyType = 'none';\n _this._objectEncoding = NetConnection.defaultObjectEncoding;\n _this._usingTLS = false;\n return _this;\n //Telemetry.instance.reportTelemetry({topic: 'feature', feature: Telemetry.Feature.NETCONNECTION_FEATURE});\n }\n // JS -> AS Bindings\n NetConnection.prototype.close = function () {\n this.invoke(1);\n };\n NetConnection.prototype.addHeader = function (operation, mustUnderstand, param) {\n if (mustUnderstand === void 0) { mustUnderstand = false; }\n if (param === void 0) { param = null; }\n this._invoke(3, [axCoerceString(operation), !!mustUnderstand, param]);\n };\n NetConnection.prototype.call = function (command, responder /* more args can be provided */) {\n command = axCoerceString(command);\n // Native methods receive AS3 arguments flat (no ...rest collection) — everything\n // after `responder` is a call argument to be serialised.\n var callArgs = Array.prototype.slice.call(arguments, 2);\n this._httpCall(command, responder, callArgs);\n };\n NetConnection.prototype._debugAMF = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (typeof self !== 'undefined' && self.__AWAYFL_AMF_DEBUG)\n console.log.apply(console, __spreadArray(['[AMF]'], args, true));\n };\n NetConnection.prototype._makeStatusInfo = function (code, level, description) {\n var info = { code: code, level: level };\n if (description !== undefined)\n info.description = description;\n return this.sec.createObjectFromJS(info);\n };\n NetConnection.prototype._dispatchStatus = function (code, level, description) {\n this._debugAMF('netStatus ->', code, description || '');\n try {\n // Events handed to compiled AS3 must be real AVM2 instances (axConstruct on the\n // AXClass); a raw `new NetStatusEvent(...)` lacks runtime traits and property\n // access from compiled code fails on it.\n if (!NetConnection._netStatusEventClass) {\n NetConnection._netStatusEventClass = this.sec.application.getClass(Multiname.FromFQNString('flash.events.NetStatusEvent', 0 /* NamespaceType.Public */));\n }\n var event_1 = NetConnection._netStatusEventClass.axConstruct([NetStatusEvent.NET_STATUS, false, false, this._makeStatusInfo(code, level, description)]);\n event_1.currentTarget = this;\n event_1.target = this;\n this.dispatchEvent(event_1);\n }\n catch (e) {\n console.warn('[NetConnection] netStatus dispatch failed:', e);\n }\n };\n NetConnection.prototype._newAMFByteArray = function () {\n // ByteArray's buffer machinery lives on DataBuffer.prototype and is merged onto the\n // VM-linked prototype via instanceNatives — a raw `new ByteArray()` lacks it, so the\n // instance must be constructed through the AXClass.\n if (!NetConnection._byteArrayClass) {\n NetConnection._byteArrayClass = this.sec.application.getClass(Multiname.FromFQNString('flash.utils.ByteArray', 0 /* NamespaceType.Public */));\n }\n var ba = NetConnection._byteArrayClass.axConstruct([]);\n // the AMF codec resolves classes/objects through the security domain\n ba.sec = this.sec;\n return ba;\n };\n NetConnection.prototype._httpCall = function (command, responder, callArgs) {\n var _this = this;\n var id = String(++this._httpCallId);\n this._debugAMF('call ->', command, 'id', id);\n try {\n if (!this._pendingResponders)\n this._pendingResponders = {};\n if (responder)\n this._pendingResponders[id] = responder;\n var ba = this._newAMFByteArray();\n ba._objectEncoding = 3; // AMF3\n ba.writeByte(0x11); // AMF0 avmplus marker: body is AMF3\n ba.writeObject(this.sec.createArray(callArgs));\n var body = new Uint8Array(ba._buffer.slice(0, ba._length));\n var packet = NetConnection._buildRemotingPacket(command, id, body);\n if (!this._uri) {\n this._httpFail(id, 'NetConnection is not connected (uri is null)');\n return;\n }\n fetch(this._uri, {\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/x-amf' },\n body: packet\n }).then(function (r) {\n if (!r.ok)\n throw new Error('HTTP ' + r.status);\n var ct = (r.headers.get('content-type') || '').toLowerCase();\n // A misconfigured gateway can answer 200 with an HTML error page; surface it\n // as a fault instead of feeding non-AMF bytes to the parser.\n if (ct.indexOf('application/x-amf') === -1) {\n return r.text().then(function (t) {\n throw new Error('Non-AMF response (content-type: ' + (ct || 'none') + '): '\n + t.replace(/\\s+/g, ' ').slice(0, 300));\n });\n }\n return r.arrayBuffer();\n }).then(function (buf) {\n _this._handleRemotingResponse(buf);\n }).catch(function (err) {\n _this._httpFail(id, String((err && err.message) || err));\n });\n }\n catch (e) {\n this._debugAMF('call FAILED synchronously:', e);\n this._httpFail(id, String((e && e.message) || e));\n }\n };\n NetConnection.prototype._handleRemotingResponse = function (buf) {\n var messages;\n try {\n messages = NetConnection._parseRemotingPacket(buf);\n }\n catch (e) {\n console.warn('[NetConnection] AMF response parse failed:', e);\n return;\n }\n for (var i = 0; i < messages.length; i++) {\n var msg = messages[i];\n var value = void 0;\n try {\n var ba = this._newAMFByteArray();\n ba.setArrayBuffer(msg.body);\n ba._position = 0;\n ba._objectEncoding = 0; // AMF0 reader; handles the 0x11 -> AMF3 marker\n value = ba.readObject();\n }\n catch (e) {\n console.warn('[NetConnection] AMF body decode failed for', msg.target, e);\n continue;\n }\n var match = /^\\/([^\\/]*)\\/(onResult|onStatus)$/.exec(msg.target);\n if (!match) {\n console.warn('[NetConnection] unrecognised AMF response target:', msg.target);\n continue;\n }\n var id = match[1], kind = match[2];\n var responder = this._pendingResponders && this._pendingResponders[id];\n if (this._pendingResponders)\n delete this._pendingResponders[id];\n this._debugAMF('response', kind, 'id', id, '->', responder ? 'responder' : '(no responder)');\n if (responder) {\n try {\n kind === 'onResult' ? responder.invokeResult(value) : responder.invokeStatus(value);\n }\n catch (e) {\n console.warn('[NetConnection] responder callback threw:', e);\n }\n }\n else if (kind === 'onStatus') {\n this._dispatchStatus('NetConnection.Call.Failed', 'error');\n }\n }\n };\n NetConnection.prototype._httpFail = function (id, description) {\n this._debugAMF('call failed id', id, ':', description);\n var responder = this._pendingResponders && this._pendingResponders[id];\n if (this._pendingResponders)\n delete this._pendingResponders[id];\n if (responder) {\n try {\n responder.invokeStatus(this._makeStatusInfo('NetConnection.Call.Failed', 'error', description));\n return;\n }\n catch (e) {\n console.warn('[NetConnection] responder status callback threw:', e);\n }\n }\n this._dispatchStatus('NetConnection.Call.Failed', 'error', description);\n };\n /* AMF remoting packet: u16 version | u16 headerCount | u16 messageCount, then per\n * message: utf targetURI | utf responseURI | u32 bodyLength | AMF body. */\n NetConnection._buildRemotingPacket = function (target, responseId, body) {\n var enc = new TextEncoder();\n var head = [];\n var u16 = function (v) { return head.push((v >>> 8) & 0xff, v & 0xff); };\n var u32 = function (v) { return head.push((v >>> 24) & 0xff, (v >>> 16) & 0xff, (v >>> 8) & 0xff, v & 0xff); };\n var utf = function (str) {\n var b = enc.encode(str);\n u16(b.length);\n for (var i = 0; i < b.length; i++)\n head.push(b[i]);\n };\n u16(3); // version 3 (AMF3-capable)\n u16(0); // headers\n u16(1); // messages\n utf(target);\n utf('/' + responseId);\n u32(body.length);\n var out = new Uint8Array(head.length + body.length);\n out.set(head, 0);\n out.set(body, head.length);\n return out;\n };\n NetConnection._parseRemotingPacket = function (buf) {\n var dv = new DataView(buf);\n var dec = new TextDecoder();\n var pos = 0;\n var u16 = function () { var v = dv.getUint16(pos); pos += 2; return v; };\n var u32 = function () { var v = dv.getUint32(pos); pos += 4; return v; };\n var utf = function () { var n = u16(); var s = dec.decode(new Uint8Array(buf, pos, n)); pos += n; return s; };\n var messages = [];\n u16(); // version\n var headers = u16();\n for (var h = 0; h < headers; h++) {\n utf();\n pos += 1; // name, mustUnderstand\n var len = u32();\n if (len !== 0xffffffff)\n pos += len;\n }\n var count = u16();\n for (var m = 0; m < count; m++) {\n var target = utf();\n utf(); // response uri (unused in replies)\n var len = u32();\n var body = void 0;\n if (len !== 0xffffffff && pos + len <= buf.byteLength) {\n body = buf.slice(pos, pos + len);\n pos += len;\n }\n else {\n body = buf.slice(pos);\n pos = buf.byteLength;\n }\n messages.push({ target: target, body: body });\n }\n return messages;\n };\n Object.defineProperty(NetConnection, \"defaultObjectEncoding\", {\n get: function () {\n return NetConnection._defaultObjectEncoding;\n },\n set: function (version /*uint*/) {\n version = version >>> 0;\n NetConnection._defaultObjectEncoding = version;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"connected\", {\n get: function () {\n return this._connected;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"uri\", {\n get: function () {\n return this._uri;\n },\n enumerable: false,\n configurable: true\n });\n NetConnection.prototype.connect = function (command) {\n var _this = this;\n command = axCoerceString(command);\n this._uri = command;\n // A null command or an HTTP(S) url is a Flash Remoting gateway connection: it always\n // \"succeeds\" immediately — calls are independent HTTP POSTs. Dispatch async so\n // listeners registered right after connect() still receive the event.\n if (!command || !/^rtmpt?s?:/i.test(command)) {\n this._connected = true;\n Promise.resolve().then(function () { return _this._dispatchStatus('NetConnection.Connect.Success', 'status'); });\n return;\n }\n // RTMP / RTMPT / RTMPS streaming transports are not implemented.\n console.warn('[NetConnection] rtmp transports are not implemented:', command);\n this._dispatchStatus('NetConnection.Connect.Failed', 'error');\n };\n NetConnection.prototype._createRtmpStream = function (callback) {\n var transactionId = this._rtmpCreateStreamCallbacks.length;\n this._rtmpCreateStreamCallbacks[transactionId] = callback;\n this._rtmpConnection.createStream(transactionId, null);\n };\n Object.defineProperty(NetConnection.prototype, \"client\", {\n get: function () {\n return this._client;\n },\n set: function (object) {\n this._client = object;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"objectEncoding\", {\n get: function () {\n return this._objectEncoding;\n },\n set: function (version /*uint*/) {\n version = version >>> 0;\n release || somewhatImplemented('public flash.net.NetConnection::set objectEncoding');\n this._objectEncoding = version;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"proxyType\", {\n get: function () {\n return this._proxyType;\n },\n set: function (ptype) {\n ptype = axCoerceString(ptype);\n release || somewhatImplemented('public flash.net.NetConnection::set proxyType');\n this._proxyType = ptype;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"connectedProxyType\", {\n get: function () {\n release || notImplemented('public flash.net.NetConnection::get connectedProxyType');\n return this._connectedProxyType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"usingTLS\", {\n get: function () {\n return this._usingTLS;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"protocol\", {\n get: function () {\n return this._protocol;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"maxPeerConnections\", {\n get: function () {\n release || notImplemented('public flash.net.NetConnection::get maxPeerConnections');\n return this._maxPeerConnections;\n },\n set: function (maxPeers /*uint*/) {\n maxPeers = maxPeers >>> 0;\n release || notImplemented('public flash.net.NetConnection::set maxPeerConnections');\n this._maxPeerConnections = maxPeers;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"nearID\", {\n get: function () {\n release || notImplemented('public flash.net.NetConnection::get nearID');\n return this._nearID;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"farID\", {\n get: function () {\n release || notImplemented('public flash.net.NetConnection::get farID');\n return this._farID;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"nearNonce\", {\n get: function () {\n release || notImplemented('public flash.net.NetConnection::get nearNonce');\n return this._nearNonce;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"farNonce\", {\n get: function () {\n release || notImplemented('public flash.net.NetConnection::get farNonce');\n return this._farNonce;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NetConnection.prototype, \"unconnectedPeerStreams\", {\n get: function () {\n release || notImplemented('public flash.net.NetConnection::get unconnectedPeerStreams');\n return this._unconnectedPeerStreams;\n },\n enumerable: false,\n configurable: true\n });\n NetConnection.prototype.invoke = function (index /*uint*/) {\n index = index >>> 0;\n return this._invoke(index, Array.prototype.slice.call(arguments, 1));\n };\n NetConnection.prototype._invoke = function (index, args) {\n var simulated = false;\n var result;\n switch (index) {\n case 1: // close\n case 2: // call, e.g. with ('createStream', <Responder>)\n simulated = true;\n break;\n }\n (simulated ? somewhatImplemented : notImplemented)('private flash.net.NetConnection::_invoke (' + index + ')');\n return result;\n };\n // Called whenever the class is initialized.\n NetConnection.classInitializer = null;\n /* ------------------------------------------------------------------------------------\n * Flash Remoting (AMF over HTTP POST) — the transport used by Zend_Amf / AMFPHP / etc.\n * Serialisation is delegated to the AVM2 ByteArray AMF codec so arguments and results\n * stay proper AVM2 objects; only the remoting packet envelope is hand-written here.\n * ---------------------------------------------------------------------------------- */\n NetConnection._netStatusEventClass = null;\n NetConnection._byteArrayClass = null;\n // AS -> JS Bindings\n NetConnection._defaultObjectEncoding = 3 /* AMF3 */;\n return NetConnection;\n}(EventDispatcher));\nexport { NetConnection };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: Responder\nvar Responder = /** @class */ (function (_super) {\n __extends(Responder, _super);\n function Responder(result, status) {\n if (status === void 0) { status = null; }\n return _super.call(this) || this;\n }\n // JS -> AS Bindings\n // AS -> JS Bindings\n Responder.prototype.ctor = function (result, status) {\n this._result = result;\n this._status = status;\n };\n /** Internal: invoke the result callback (used by NetConnection HTTP/AMF remoting). */\n Responder.prototype.invokeResult = function (value) {\n if (this._result)\n this._result.axApply(null, [value]);\n };\n /** Internal: invoke the status/fault callback (used by NetConnection HTTP/AMF remoting). */\n Responder.prototype.invokeStatus = function (value) {\n if (this._status)\n this._status.axApply(null, [value]);\n };\n // Called whenever the class is initialized.\n Responder.classInitializer = null;\n // List of static symbols to link.\n Responder.classSymbols = null; // [];\n // List of instance symbols to link.\n Responder.instanceSymbols = null; // [];\n return Responder;\n}(ASObject));\nexport { Responder };\n","import { __extends } from \"tslib\";\nimport { release, somewhatImplemented, notImplemented } from '@awayfl/swf-loader';\nimport { axCoerceString } from '@awayfl/avm2';\nimport { Errors } from '@awayfl/avm2';\nimport { EventDispatcher } from '../events/EventDispatcher';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: Socket\nvar Socket = /** @class */ (function (_super) {\n __extends(Socket, _super);\n function Socket(host, port) {\n if (host === void 0) { host = null; }\n if (port === void 0) { port = 0; }\n var _this = _super.call(this, undefined) || this;\n host = axCoerceString(host);\n port = port | 0;\n return _this;\n }\n Object.defineProperty(Socket.prototype, \"bytesAvailable\", {\n // AS -> JS Bindings\n // _timeout: number /*uint*/;\n // _bytesAvailable: number /*uint*/;\n // _connected: boolean;\n // _objectEncoding: number /*uint*/;\n // _endian: string;\n // _bytesPending: number /*uint*/;\n get: function () {\n release || notImplemented('public flash.net.Socket::get bytesAvailable');\n return 0;\n // return this._bytesAvailable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Socket.prototype, \"connected\", {\n get: function () {\n release || notImplemented('public flash.net.Socket::get connected');\n return false;\n // return this._connected;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Socket.prototype, \"objectEncoding\", {\n get: function () {\n release || notImplemented('public flash.net.Socket::get objectEncoding');\n return 0;\n // return this._objectEncoding;\n },\n set: function (version /*uint*/) {\n version = version >>> 0;\n release || notImplemented('public flash.net.Socket::set objectEncoding');\n // this._objectEncoding = version;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Socket.prototype, \"endian\", {\n get: function () {\n release || notImplemented('public flash.net.Socket::get endian');\n return '';\n // return this._endian;\n },\n set: function (type) {\n type = axCoerceString(type);\n release || notImplemented('public flash.net.Socket::set endian');\n // this._endian = type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Socket.prototype, \"bytesPending\", {\n get: function () {\n release || notImplemented('public flash.net.Socket::get bytesPending');\n return 0;\n // return this._bytesPending;\n },\n enumerable: false,\n configurable: true\n });\n Socket.prototype.readBytes = function (bytes, offset, length) {\n if (offset === void 0) { offset = 0; }\n if (length === void 0) { length = 0; }\n bytes = bytes;\n offset = offset >>> 0;\n length = length >>> 0;\n release || notImplemented('public flash.net.Socket::readBytes');\n return;\n };\n Socket.prototype.writeBytes = function (bytes, offset, length) {\n if (offset === void 0) { offset = 0; }\n if (length === void 0) { length = 0; }\n bytes = bytes;\n offset = offset >>> 0;\n length = length >>> 0;\n release || notImplemented('public flash.net.Socket::writeBytes');\n return;\n };\n Socket.prototype.writeBoolean = function (value) {\n value = !!value;\n release || notImplemented('public flash.net.Socket::writeBoolean');\n return;\n };\n Socket.prototype.writeByte = function (value /*int*/) {\n value = value | 0;\n release || notImplemented('public flash.net.Socket::writeByte');\n return;\n };\n Socket.prototype.writeShort = function (value /*int*/) {\n value = value | 0;\n release || notImplemented('public flash.net.Socket::writeShort');\n return;\n };\n Socket.prototype.writeInt = function (value /*int*/) {\n value = value | 0;\n release || notImplemented('public flash.net.Socket::writeInt');\n return;\n };\n Socket.prototype.writeUnsignedInt = function (value /*uint*/) {\n value = value >>> 0;\n release || notImplemented('public flash.net.Socket::writeUnsignedInt');\n return;\n };\n Socket.prototype.writeFloat = function (value) {\n value = +value;\n release || notImplemented('public flash.net.Socket::writeFloat');\n return;\n };\n Socket.prototype.writeDouble = function (value) {\n value = +value;\n release || notImplemented('public flash.net.Socket::writeDouble');\n return;\n };\n Socket.prototype.writeMultiByte = function (value, charSet) {\n value = axCoerceString(value);\n charSet = axCoerceString(charSet);\n release || notImplemented('public flash.net.Socket::writeMultiByte');\n return;\n };\n Socket.prototype.writeUTF = function (value) {\n value = axCoerceString(value);\n release || notImplemented('public flash.net.Socket::writeUTF');\n return;\n };\n Socket.prototype.writeUTFBytes = function (value) {\n value = axCoerceString(value);\n release || notImplemented('public flash.net.Socket::writeUTFBytes');\n return;\n };\n Socket.prototype.readBoolean = function () {\n release || notImplemented('public flash.net.Socket::readBoolean');\n return false;\n };\n Socket.prototype.readByte = function () {\n release || notImplemented('public flash.net.Socket::readByte');\n return 0;\n };\n Socket.prototype.readUnsignedByte = function () {\n release || notImplemented('public flash.net.Socket::readUnsignedByte');\n return 0;\n };\n Socket.prototype.readShort = function () {\n release || notImplemented('public flash.net.Socket::readShort');\n return 0;\n };\n Socket.prototype.readUnsignedShort = function () {\n release || notImplemented('public flash.net.Socket::readUnsignedShort');\n return 0;\n };\n Socket.prototype.readInt = function () {\n release || notImplemented('public flash.net.Socket::readInt');\n return 0;\n };\n Socket.prototype.readUnsignedInt = function () {\n release || notImplemented('public flash.net.Socket::readUnsignedInt');\n return 0;\n };\n Socket.prototype.readFloat = function () {\n release || notImplemented('public flash.net.Socket::readFloat');\n return 0;\n };\n Socket.prototype.readDouble = function () {\n release || notImplemented('public flash.net.Socket::readDouble');\n return 0;\n };\n Socket.prototype.readMultiByte = function (length /*uint*/, charSet) {\n length = length >>> 0;\n charSet = axCoerceString(charSet);\n release || notImplemented('public flash.net.Socket::readMultiByte');\n return '';\n };\n Socket.prototype.readUTF = function () {\n release || notImplemented('public flash.net.Socket::readUTF');\n return '';\n };\n Socket.prototype.readUTFBytes = function (length /*uint*/) {\n length = length >>> 0;\n release || notImplemented('public flash.net.Socket::readUTFBytes');\n return '';\n };\n Socket.prototype.flush = function () {\n release || notImplemented('public flash.net.Socket::flush');\n };\n Socket.prototype.writeObject = function (object) {\n release || notImplemented('public flash.net.Socket::writeObject');\n };\n Socket.prototype.readObject = function () {\n release || notImplemented('public flash.net.Socket::readObject');\n return;\n };\n Socket.prototype.internalGetSecurityErrorMessage = function (host, port) {\n host = axCoerceString(host);\n port |= 0;\n release || somewhatImplemented('flash.net.Socket::internalGetSecurityErrorMessage');\n return 'SecurityErrorEvent';\n };\n Socket.prototype.internalConnect = function (host, port) {\n host = axCoerceString(host);\n port |= 0;\n release || somewhatImplemented('flash.net.Socket::internalConnect');\n this.sec.throwError('SecurityError', Errors.SocketConnectError, host, port);\n };\n Socket.prototype.didFailureOccur = function () {\n release || somewhatImplemented('flash.net.Socket::didFailureOccur');\n return true;\n };\n // Called whenever the class is initialized.\n Socket.classInitializer = null;\n // List of static symbols to link.\n Socket.classSymbols = null; // [];\n // List of instance symbols to link.\n Socket.instanceSymbols = null; // [\"timeout\", \"timeout\", \"connect\", \"close\"];\n return Socket;\n}(EventDispatcher));\nexport { Socket };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar SecurityDomain = /** @class */ (function (_super) {\n __extends(SecurityDomain, _super);\n function SecurityDomain() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SecurityDomain, \"currentDomain\", {\n //todo!\n get: function () {\n return null;\n },\n enumerable: false,\n configurable: true\n });\n return SecurityDomain;\n}(ASObject));\nexport { SecurityDomain };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Class: TouchscreenType\nvar TouchscreenType = /** @class */ (function (_super) {\n __extends(TouchscreenType, _super);\n function TouchscreenType() {\n return _super.call(this) || this;\n }\n // Called whenever the class is initialized.\n TouchscreenType.classInitializer = null;\n // List of static symbols to link.\n TouchscreenType.classSymbols = null; // [];\n // List of instance symbols to link.\n TouchscreenType.instanceSymbols = null; // [];\n TouchscreenType.FINGER = 'finger';\n TouchscreenType.STYLUS = 'stylus';\n TouchscreenType.NONE = 'none';\n return TouchscreenType;\n}(ASObject));\nexport { TouchscreenType };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { release, notImplemented, somewhatImplemented, toKeyValueArray } from '@awayfl/swf-loader';\nimport { TouchscreenType } from './TouchscreenType';\nexport var DEFAULT_CAPABILITIES = {\n LANGUAGE: 'en',\n PLAYER_TYPE: 'PlugIn',\n SCREEN_DPI: 96,\n IS_DEBUGGER: false,\n};\nvar Capabilities = /** @class */ (function (_super) {\n __extends(Capabilities, _super);\n function Capabilities() {\n return _super.call(this) || this;\n }\n Object.defineProperty(Capabilities, \"isEmbeddedInAcrobat\", {\n // static _touchscreenType: string;\n // static _hasIME: boolean;\n // static _hasTLS: boolean;\n // static _maxLevelIDC: string;\n // static _supports32BitProcesses: boolean;\n // static _supports64BitProcesses: boolean;\n // static __internal: number /*uint*/;\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasEmbeddedVideo\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get hasEmbeddedVideo');\n return;\n // return Capabilities._hasEmbeddedVideo;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasAudio\", {\n get: function () {\n // The documentation says \"this property is always true\".\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"avHardwareDisable\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get avHardwareDisable');\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasAccessibility\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get hasAccessibility');\n return Capabilities._hasAccessibility;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasAudioEncoder\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get hasAudioEncoder');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasMP3\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get hasMP3');\n return;\n // return Capabilities._hasMP3;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasPrinting\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get hasPrinting');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasScreenBroadcast\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get hasScreenBroadcast');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasScreenPlayback\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get hasScreenPlayback');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasStreamingAudio\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get hasStreamingAudio');\n return;\n // return Capabilities._hasStreamingAudio;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasStreamingVideo\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get hasStreamingVideo');\n return;\n // return Capabilities._hasStreamingVideo;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasVideoEncoder\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get hasVideoEncoder');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"isDebugger\", {\n get: function () {\n return DEFAULT_CAPABILITIES.IS_DEBUGGER;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"localFileReadDisable\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get localFileReadDisable');\n return;\n // return Capabilities._localFileReadDisable;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"language\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get language');\n return Capabilities._language || DEFAULT_CAPABILITIES.LANGUAGE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"manufacturer\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get manufacturer');\n return Capabilities._manufacturer;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"os\", {\n get: function () {\n if (Capabilities._os === null) {\n var os = void 0;\n var userAgent = window.navigator.userAgent;\n if (userAgent.indexOf('Macintosh') > 0) {\n if (userAgent.indexOf('Mac OS X ') === -1) {\n os = 'Mac OS 10.6';\n }\n else {\n var versionStr = userAgent.split('Mac OS X ')[1];\n os = versionStr.substr(0, versionStr.indexOf(';'));\n }\n }\n else if (userAgent.indexOf('Windows') > 0) {\n os = 'Windows XP';\n }\n else if (userAgent.indexOf('Linux') > 0) {\n os = 'Linux';\n }\n else if (/(iPad|iPhone|iPod|Android)/.test(userAgent)) {\n os = 'iPhone3,1';\n }\n else {\n release || somewhatImplemented('public flash.system.Capabilities::get os');\n os = 'Generic OS';\n }\n Capabilities._os = os;\n }\n return Capabilities._os;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"cpuArchitecture\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get cpuArchitecture');\n return 'x86';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"playerType\", {\n get: function () {\n return Capabilities._playerType || DEFAULT_CAPABILITIES.PLAYER_TYPE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"serverString\", {\n get: function () {\n var str = toKeyValueArray({ OS: Capabilities.os }).map(function (pair) {\n return pair[0] + '=' + encodeURIComponent(pair[1]);\n }).join('&');\n release || somewhatImplemented('Capabilities.serverString: ' + str);\n return str;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"version\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get version');\n return Capabilities._version;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"screenColor\", {\n /**\n * This can be \"color\", \"gray\" or \"bw\" for black and white. I don't know when you'd have anything\n * other than \"color\".\n */\n get: function () {\n return 'color';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"pixelAspectRatio\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get pixelAspectRatio');\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"screenDPI\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get screenDPI');\n return Capabilities._screenDPI || DEFAULT_CAPABILITIES.SCREEN_DPI;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"screenResolutionX\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get screenResolutionX');\n return window.screen.width; // TODO check\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"screenResolutionY\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Capabilities::get screenResolutionY');\n return window.screen.height; // TODO check\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"touchscreenType\", {\n get: function () {\n return TouchscreenType.NONE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasIME\", {\n get: function () {\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"hasTLS\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get hasTLS');\n return;\n // return Capabilities._hasTLS;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"maxLevelIDC\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get maxLevelIDC');\n return;\n // return Capabilities._maxLevelIDC;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"supports32BitProcesses\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get supports32BitProcesses');\n return;\n // return Capabilities._supports32BitProcesses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"supports64BitProcesses\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get supports64BitProcesses');\n return;\n // return Capabilities._supports64BitProcesses;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Capabilities, \"_internal\", {\n get: function () {\n release || notImplemented('public flash.system.Capabilities::get _internal');\n return;\n // return Capabilities.__internal;\n },\n enumerable: false,\n configurable: true\n });\n Capabilities.hasMultiChannelAudio = function (type) {\n release || somewhatImplemented('public flash.system.Capabilities::static hasMultiChannelAudio');\n return false;\n };\n Capabilities.classInitializer = null;\n // static _hasEmbeddedVideo: boolean;\n // static _hasAudio: boolean;\n // static _avHardwareDisable: boolean;\n Capabilities._hasAccessibility = false;\n // static _hasAudioEncoder: boolean;\n // static _hasMP3: boolean;\n // static _hasPrinting: boolean;\n // static _hasScreenBroadcast: boolean;\n // static _hasScreenPlayback: boolean;\n // static _hasStreamingAudio: boolean;\n // static _hasStreamingVideo: boolean;\n // static _hasVideoEncoder: boolean;\n // static _localFileReadDisable: boolean;\n Capabilities._language = null; // DEFAULT_CAPABILITIES.LANGUAGE;\n Capabilities._manufacturer = 'Mozilla Research';\n Capabilities._os = null;\n // static _cpuArchitecture: string;\n Capabilities._playerType = null; // DEFAULT_CAPABILITIES.PLAYER_TYPE;\n Capabilities._version = 'SHUMWAY 10,0,0,0';\n // static _screenColor: string;\n // static _pixelAspectRatio: number;\n Capabilities._screenDPI = 0; // = DEFAULT_CAPABILITIES.SCREEN_DPI;\n return Capabilities;\n}(ASObject));\nexport { Capabilities };\n","import { axCoerceString } from '@awayfl/avm2';\nexport function fscommand(sec, command, args) {\n command = axCoerceString(command);\n args = axCoerceString(args);\n console.log('FSCommand: ' + command + '; ' + args);\n command = command.toLowerCase();\n if (command === 'debugger') {\n /* tslint:disable */\n debugger;\n /* tslint:enable */\n return;\n }\n sec.player.executeFSCommand(command, args);\n}\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nimport { notImplemented, release, somewhatImplemented, FileLoadingService } from '@awayfl/swf-loader';\nvar Security = /** @class */ (function (_super) {\n __extends(Security, _super);\n function Security() {\n return _super.call(this) || this;\n }\n Object.defineProperty(Security, \"exactSettings\", {\n // static _pageDomain: string;\n get: function () {\n return Security._exactSettings;\n },\n set: function (value) {\n value = !!value;\n Security._exactSettings = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Security, \"disableAVM1Loading\", {\n get: function () {\n release || notImplemented('public flash.system.Security::get disableAVM1Loading');\n return;\n // return Security._disableAVM1Loading;\n },\n set: function (value) {\n value = !!value;\n release || notImplemented('public flash.system.Security::set disableAVM1Loading');\n return;\n // Security._disableAVM1Loading = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Security, \"sandboxType\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Security::get sandboxType');\n return Security._sandboxType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Security, \"pageDomain\", {\n get: function () {\n release || somewhatImplemented('public flash.system.Security::get pageDomain');\n // TODO: convert this to proper URI parsing.\n var pageHost = FileLoadingService.resolveUrl('/');\n var parts = pageHost.split('/');\n parts.pop();\n return parts.pop();\n },\n enumerable: false,\n configurable: true\n });\n Security.allowDomain = function () {\n release || somewhatImplemented('public flash.system.Security::static allowDomain [\"' +\n Array.prototype.join.call(arguments, '\", \"') + '\"]');\n /*var whitelist: ICrossDomainSWFLoadingWhitelist = this.sec.player;\n for (var i = 0; i < arguments.length; i++) {\n whitelist.addToSWFLoadingWhitelist(axCoerceString(arguments[i]) || '', false, false);\n }*/\n };\n Security.allowInsecureDomain = function () {\n release || somewhatImplemented('public flash.system.Security::static allowInsecureDomain');\n /*var whitelist: ICrossDomainSWFLoadingWhitelist = this.sec.player;\n for (var i = 0; i < arguments.length; i++) {\n whitelist.addToSWFLoadingWhitelist(axCoerceString(arguments[i]) || '', true, false);\n }*/\n };\n Security.loadPolicyFile = function (url) {\n url = axCoerceString(url);\n release || somewhatImplemented('public flash.system.Security::static loadPolicyFile');\n };\n Security.showSettings = function (panel) {\n if (panel === void 0) { panel = 'default'; }\n panel = axCoerceString(panel);\n release || notImplemented('public flash.system.Security::static showSettings');\n return;\n };\n Security.duplicateSandboxBridgeInputArguments = function (toplevel, args) {\n release || notImplemented('public flash.system.Security::static duplicateSandboxBridgeInputArguments');\n return;\n };\n Security.duplicateSandboxBridgeOutputArgument = function (toplevel, arg) {\n release || notImplemented('public flash.system.Security::static duplicateSandboxBridgeOutputArgument');\n return;\n };\n // Called whenever the class is initialized.\n Security.classInitializer = null;\n // List of static symbols to link.\n Security.classSymbols = null; // [];\n // List of instance symbols to link.\n Security.instanceSymbols = null; // [];\n // JS -> AS Bindings\n Security.REMOTE = 'remote';\n Security.LOCAL_WITH_FILE = 'localWithFile';\n Security.LOCAL_WITH_NETWORK = 'localWithNetwork';\n Security.LOCAL_TRUSTED = 'localTrusted';\n Security.APPLICATION = 'application';\n // AS -> JS Bindings\n Security._exactSettings = false;\n // static _disableAVM1Loading: boolean;\n Security._sandboxType = 'remote';\n return Security;\n}(ASObject));\nexport { Security };\n","//import { XML } from \"../xml/XML\";\nimport { __extends } from \"tslib\";\nimport { notImplemented } from '@awayfl/swf-loader';\nimport { ASObject } from '@awayfl/avm2';\n/**\n * The System class contains properties related to local settings and operations.\n * Among these are <ph class=\"- topic/ph \">\n * settings for camers and microphones, operations with shared objects and</ph> the use of the Clipboard.\n *\n * <p class=\"- topic/p \">Additional properties and methods are in other classes within the flash.system package:\n * the Capabilities class, <ph class=\"- topic/ph \">the IME class,</ph> and the\n * Security class.</p><p class=\"- topic/p \">This class contains only static methods and properties. You cannot\n * create new instances of the System class.</p>\n */\nvar System = /** @class */ (function (_super) {\n __extends(System, _super);\n function System() {\n return _super.call(this) || this;\n }\n Object.defineProperty(System, \"freeMemory\", {\n /**\n * The amount of memory (in bytes) that is allocated to\n * Adobe® Flash® Player or\n * Adobe® AIR® and that is not in use. This unused portion of\n * allocated memory (System.totalMemory) fluctuates as garbage collection takes place.\n * Use this property to monitor garbage collection.\n */\n get: function () {\n notImplemented('public flash.system.System::freeMemory');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(System, \"ime\", {\n /**\n * The currently installed system IME.\n * To register for imeComposition events, call\n * addEventListener() on this instance.\n */\n get: function () {\n notImplemented('public flash.system.System::ime');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(System, \"privateMemory\", {\n /**\n * The entire amount of memory (in bytes) used by an application.\n * This is the amount of resident private memory for the entire process.\n *\n * AIR developers should use this property to determine the entire memory consumption of an application.\n * For Flash Player, this includes the memory used by the container application,\n * such as the web browser.\n */\n get: function () {\n notImplemented('public flash.system.System::privateMemory');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(System, \"processCPUUsage\", {\n get: function () {\n notImplemented('public flash.system.System::processCPUUsage');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(System, \"totalMemory\", {\n /**\n * The amount of memory (in bytes) currently in use that has been directly allocated by\n * Flash Player or AIR.\n *\n * This property does not return all memory used by an Adobe AIR application or by\n * the application (such as a browser) containing Flash Player content. The browser or\n * operating system may consume other memory. The System.privateMemory property reflects all memory used by\n * an application.If the amount of memory allocated is greater than the maximum value for a uint object\n * (uint.MAX_VALUE,\n * or 4,294,967,295), then this property is set to 0. The System.totalMemoryNumber property allows\n * larger values.\n */\n get: function () {\n notImplemented('public flash.system.System::totalMemory');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(System, \"totalMemoryNumber\", {\n /**\n * The amount of memory (in bytes) currently in use that has been directly allocated by\n * Flash Player or AIR.\n *\n * This property is expressed as a Number, which allows higher values than the\n * System.totalMemory property, which is of type int.This property does not return all memory used by an Adobe AIR\n * application or by\n * the application (such as a browser) containing Flash Player content. The browser or\n * operating system may consume other memory. The System.privateMemory property reflects all memory used by\n * an application.\n */\n get: function () {\n notImplemented('public flash.system.System::totalMemoryNumber');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(System, \"useCodePage\", {\n /**\n * A Boolean value that determines which code page to use to interpret external text files.\n * When the property is set to false, external text files are interpretted as Unicode.\n * (These files must be encoded as Unicode when you save them.) When the property is set to\n * true, external text files are interpretted using the traditional code page of the\n * operating system running the application. The default value of useCodePage is false.\n *\n * Text that you load as an external file (using Loader.load(), the URLLoader class or\n * URLStream) must have been saved as Unicode in order for the application to recognize it\n * as Unicode. To encode external files as Unicode, save the files in an application that\n * supports Unicode, such as Notepad on Windows.If you load external text files that are not Unicode-encoded,\n * set useCodePage to true.\n * Add the following as the first line of code of the file that\n * is loading the data (for Flash Professional, add it to the first frame):System.useCodePage = true;\n * When this code is present, the application interprets external text\n * using the traditional code page of the operating system.\n * For example, this is generally CP1252 for an English Windows operating\n * system and Shift-JIS for a Japanese operating system.If you set useCodePage to true,\n * Flash Player 6 and later treat text as Flash Player 5 does. (Flash Player 5\n * treated all text as if it were in the traditional code page of the operating\n * system running the player.)If you set useCodePage to true, remember that the\n * traditional code page of the operating system running the application must include\n * the characters used in your external text file in order to display your text.\n * For example, if you load an external text file that contains Chinese characters,\n * those characters cannot display on a system that uses the CP1252 code page because\n * that code page does not include Chinese characters.To ensure that users on all platforms\n * can view external text files used in your\n * application, you should encode all external text files as Unicode and leave\n * useCodePage set to false. This way, the application\n * (Flash Player 6 and later, or AIR) interprets the text as Unicode.\n */\n get: function () {\n notImplemented('public flash.system.System::useCodePage');\n return false;\n },\n set: function (value) {\n notImplemented('public flash.system.System::useCodePage');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(System, \"vmVersion\", {\n get: function () {\n notImplemented('public flash.system.System::vmVersion');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Makes the specified XML object immediately available for garbage collection.\n * This method will remove parent and child connections between all the nodes\n * for the specified XML node.\n * @param\tnode\tXML reference that should be made available for garbage collection.\n */\n System.disposeXML = function (node /*XML*/) {\n notImplemented('public flash.system.System::disposeXML');\n };\n /**\n * Closes Flash Player.\n *\n * For the standalone Flash Player debugger version only.AIR applications\n * should call the NativeApplication.exit() method to exit the application.\n * @param\tcode\tA value to pass to the operating system. Typically, if\n * the process exits normally, the value is 0.\n */\n System.exit = function (code) {\n notImplemented('public flash.system.System::exit');\n };\n /**\n * Forces the garbage collection process.\n *\n * For the Flash Player debugger version and AIR applications only.\n * In an AIR application, the System.gc() method is only enabled in content running in the AIR Debug Launcher\n * (ADL) or, in an installed applcation, in content in the application security sandbox.\n */\n System.gc = function () {\n notImplemented('public flash.system.System::gc');\n };\n /**\n * Pauses Flash Player or the AIR Debug Launcher (ADL).\n * After calling this method, nothing in the application continues except the delivery of Socket events.\n *\n * For the Flash Player debugger version or the AIR Debug Launcher (ADL) only.\n */\n System.pause = function () {\n notImplemented('public flash.system.System::pause');\n };\n System.pauseForGCIfCollectionImminent = function (imminence) {\n if (imminence === void 0) { imminence = 0.75; }\n notImplemented('public flash.system.System::pauseForGCIfCollectionImminent');\n };\n /**\n * Resumes the application after calling System.pause().\n *\n * For the Flash Player debugger version or the AIR Debug Launcher (ADL) only.\n */\n System.resume = function () {\n notImplemented('public flash.system.System::resume');\n };\n /**\n * Replaces the contents of the Clipboard with a specified text string. This method works from any security\n * context when called as a result of a user event (such as a keyboard or input device event handler).\n *\n * This method is provided for SWF content running in Flash Player 9. It allows only adding\n * String content to the Clipboard.Flash Player 10 content and content in the application security sandbox\n * in an AIR application can call\n * the Clipboard.setData() method.\n * @param\tstring\tA plain-text string of characters to put on the system Clipboard,\n * replacing its current contents (if any).\n */\n System.setClipboard = function (string) {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(string)\n .then(function (_e) {\n console.log('[flash/System] Clipboard writed!');\n })\n .catch(function (e) {\n console.warn('[flash/System] Clipboard write rejected!', e);\n });\n return;\n }\n notImplemented('public flash.system.System::setClipboard');\n };\n return System;\n}(ASObject));\nexport { System };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nimport { DefaultFontManager } from '@awayjs/scene';\nvar Font = /** @class */ (function (_super) {\n __extends(Font, _super);\n function Font() {\n var _this = this;\n var _a;\n _this = _super.call(this) || this;\n _this.isAVMFont = true;\n _this.isAVMFont = true;\n if (_this.axClassName != 'Font') {\n _this._adaptee = DefaultFontManager.getFont(_this.axClassName);\n // Also alias under Font.fontName for TextFormat lookup / embedFonts.\n if ((_a = _this._adaptee) === null || _a === void 0 ? void 0 : _a.name) {\n DefaultFontManager.registerFontForClassName(_this._adaptee, _this._adaptee.name);\n }\n }\n return _this;\n }\n Object.defineProperty(Font.prototype, \"fontName\", {\n get: function () {\n var _a;\n return (_a = this._adaptee) === null || _a === void 0 ? void 0 : _a.name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Font.prototype, \"fontStyle\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Font', 'get fontStyle', '');\n return 'regular';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Font.prototype, \"fontType\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Font', 'get fontType', '');\n return 'embedded';\n },\n enumerable: false,\n configurable: true\n });\n Font.enumerateFonts = function (enumerateDeviceFonts) {\n if (enumerateDeviceFonts === void 0) { enumerateDeviceFonts = false; }\n // @todo\n Debug.throwPIR('playerglobals/text/Font', 'enumerateFonts', '');\n return [];\n };\n Font.registerFont = function (font) {\n // this is not needed for AwayJS, because fonts are already registered after parsing\n //console.warn('`Font.registerFont` not implement yet');\n };\n Font.prototype.hasGlyphs = function (str) {\n // @todo\n Debug.throwPIR('playerglobals/text/Font', 'hasGlyphs', '');\n return false;\n };\n Font.forceNativeConstructor = true;\n Font.forceNativeMethods = true;\n Font.classInitializer = null;\n Font.classSymbols = null;\n Font.instanceSymbols = null;\n return Font;\n}(ASObject));\nexport { Font };\n","import { __extends } from \"tslib\";\nimport { Debug } from '@awayjs/core';\nimport { EventDispatcher } from '../events/EventDispatcher';\n/**\n * The StyleSheet class lets you create a StyleSheet object that contains text\n * formatting rules for font size, color, and other styles. You can then apply\n * styles defined by a style sheet to a TextField object that contains HTML- or\n * XML-formatted text. The text in the TextField object is automatically\n * formatted according to the tag styles defined by the StyleSheet object.\n * You can use text styles to define new formatting tags, redefine built-in HTML\n * tags, or create style classes that you can apply to certain HTML tags.\n *\n * <p class=\"- topic/p \">To apply styles to a TextField object, assign the StyleSheet\n * object to a TextField object's <codeph class=\"+ topic/ph pr-d/codeph \">styleSheet</codeph> property.\n * </p><p class=\"- topic/p \"><b class=\"+ topic/ph hi-d/b \">Note:</b>\n * A text field with a style sheet is not editable. In other words, a text field with the\n * <codeph class=\"+ topic/ph pr-d/codeph \">type</codeph> property set to\n * <codeph class=\"+ topic/ph pr-d/codeph \">TextFieldType.INPUT</codeph>\n * applies the StyleSheet to the default text for the text field, but the content will no longer be editable\n * by the user. Consider using the TextFormat class to assign styles to input text fields.\n * </p><p class=\"- topic/p \">Flash Player supports a subset of properties in the original CSS1 specification\n * (<xref href=\"http://www.w3.org/TR/REC-CSS1\" scope=\"external\" class=\"- topic/xref \">www.w3.org/TR/REC-CSS1</xref>).\n * The following table shows the supported Cascading Style Sheet (CSS) properties and values,\n * as well as their corresponding\n * ActionScript property names. (Each ActionScript property name is derived from the corresponding\n * CSS property name; if the name contains a hyphen, the hyphen is omitted and the subsequent character is capitalized.)\n * </p><adobetable class=\"innertable\"><tgroup cols=\"3\" class=\"- topic/tgroup \"><thead class=\"- topic/thead \">\n * <row class=\"- topic/row \"><entry class=\"- topic/entry \">CSS property</entry>\n * <entry class=\"- topic/entry \">ActionScript property</entry>\n * <entry class=\"- topic/entry \">Usage and supported values</entry></row></thead>\n * <tbody class=\"- topic/tbody \"><row class=\"- topic/row \"><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">color</codeph></entry><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">color</codeph></entry><entry class=\"- topic/entry \">\n * Only hexadecimal color values are supported. Named colors (such as <codeph class=\"+ topic/ph pr-d/codeph \">blue\n * </codeph>)\n * are not supported. Colors are written in the following format:\n * <codeph class=\"+ topic/ph pr-d/codeph \">#FF0000</codeph>.</entry></row><row class=\"- topic/row \">\n * <entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">display</codeph>\n * </entry><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">display</codeph>\n * </entry><entry class=\"- topic/entry \">Supported values are <codeph class=\"+ topic/ph pr-d/codeph \">inline</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">block</codeph>, and <codeph class=\"+ topic/ph pr-d/codeph \">none</codeph>.\n * </entry></row><row class=\"- topic/row \"><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">font-family</codeph>\n * </entry><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">fontFamily</codeph></entry>\n * <entry class=\"- topic/entry \">A comma-separated list of fonts to use, in descending order of desirability. Any font\n * family name can be used. If you specify a generic font name, it is converted to an\n * appropriate device font. The following font conversions are available:\n * <codeph class=\"+ topic/ph pr-d/codeph \">mono</codeph> is\n * converted to <codeph class=\"+ topic/ph pr-d/codeph \">_typewriter</codeph>, <codeph class=\"+ topic/ph pr-d/codeph \">\n * sans-serif</codeph> is converted to\n * <codeph class=\"+ topic/ph pr-d/codeph \">_sans</codeph>, and <codeph class=\"+ topic/ph pr-d/codeph \">\n * serif</codeph> is converted to <codeph class=\"+ topic/ph pr-d/codeph \">_serif</codeph>.</entry></row>\n * <row class=\"- topic/row \"><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">\n * font-size</codeph></entry><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">\n * fontSize</codeph></entry><entry class=\"- topic/entry \">Only the numeric part of the value is used.\n * Units (px, pt) are not parsed; pixels and points\n * are equivalent.</entry></row><row class=\"- topic/row \">\n * <entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">font-style</codeph></entry>\n * <entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">fontStyle</codeph></entry>\n * <entry class=\"- topic/entry \">Recognized values are\n * <codeph class=\"+ topic/ph pr-d/codeph \">normal</codeph> and\n * <codeph class=\"+ topic/ph pr-d/codeph \">italic</codeph>.</entry></row><row class=\"- topic/row \">\n * <entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">font-weight</codeph></entry>\n * <entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">fontWeight</codeph></entry>\n * <entry class=\"- topic/entry \">Recognized values are <codeph class=\"+ topic/ph pr-d/codeph \">normal\n * </codeph> and <codeph class=\"+ topic/ph pr-d/codeph \">bold</codeph>.</entry></row><row class=\"- topic/row \">\n * <entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">kerning</codeph></entry>\n * <entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">kerning</codeph></entry>\n * <entry class=\"- topic/entry \">Recognized values are <codeph class=\"+ topic/ph pr-d/codeph \">true\n * </codeph> and <codeph class=\"+ topic/ph pr-d/codeph \">false</codeph>.\n * Kerning is supported for embedded fonts only. Certain fonts, such as Courier New, do not support kerning.\n * The kerning property is only supported in SWF files created in Windows, not in SWF files created on the\n * Macintosh. However, these SWF files can be played in non-Windows versions of Flash Player and the kerning\n * still applies.</entry></row><row class=\"- topic/row \"><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">leading</codeph></entry><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">leading</codeph></entry><entry class=\"- topic/entry \">\n * The amount of space that is uniformly distributed between lines. The value specifies the\n * number of pixels that are added after each line. A negative value condenses the space\n * between lines. Only the numeric part of the value is used. Units (px, pt) are not parsed;\n * pixels and points are equivalent.</entry></row><row class=\"- topic/row \"><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">letter-spacing</codeph></entry><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">letterSpacing</codeph></entry><entry class=\"- topic/entry \">\n * The amount of space that is uniformly distributed between characters.\n * The value specifies the number of pixels that are added after each\n * character. A negative value condenses the space between characters. Only the numeric part of the\n * value is used. Units (px, pt) are not parsed; pixels and points are equivalent.</entry></row>\n * <row class=\"- topic/row \"><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">margin-left</codeph>\n * </entry><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">marginLeft</codeph></entry>\n * <entry class=\"- topic/entry \">Only the numeric part of the value is used. Units (px, pt) are not parsed;\n * pixels and points\n * are equivalent. </entry></row><row class=\"- topic/row \"><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">margin-right</codeph></entry><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">marginRight</codeph></entry><entry class=\"- topic/entry \">\n * Only the numeric part of the value is used. Units (px, pt) are not parsed; pixels and\n * points are equivalent.</entry></row><row class=\"- topic/row \"><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">text-align</codeph></entry><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">textAlign</codeph></entry><entry class=\"- topic/entry \">\n * Recognized values are <codeph class=\"+ topic/ph pr-d/codeph \">left</codeph>,\n * <codeph class=\"+ topic/ph pr-d/codeph \">center</codeph>, <codeph class=\"+ topic/ph pr-d/codeph \">right</codeph>, and\n * <codeph class=\"+ topic/ph pr-d/codeph \">justify</codeph>.</entry></row>\n * <row class=\"- topic/row \"><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">\n * text-decoration</codeph></entry><entry class=\"- topic/entry \">\n * <codeph class=\"+ topic/ph pr-d/codeph \">textDecoration</codeph>\n * </entry><entry class=\"- topic/entry \">Recognized values are <codeph class=\"+ topic/ph pr-d/codeph \">none</codeph>\n * and <codeph class=\"+ topic/ph pr-d/codeph \">underline</codeph>.</entry></row>\n * <row class=\"- topic/row \"><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">text-indent</codeph>\n * </entry><entry class=\"- topic/entry \"><codeph class=\"+ topic/ph pr-d/codeph \">textIndent</codeph></entry>\n * <entry class=\"- topic/entry \">Only the numeric part of the value is used. Units (px, pt) are not parsed; pixels and\n * points are equivalent. </entry></row></tbody></tgroup></adobetable><p class=\"- topic/p \">\n * <ph outputclass=\"flexonly\" class=\"- topic/ph \">You can use the StyleSheet class to perform low-level text rendering.\n * However, in Flex, you typically use the Label, Text, TextArea, and TextInput controls to process text.</ph></p>\n *\n */\nvar StyleSheet = /** @class */ (function (_super) {\n __extends(StyleSheet, _super);\n /**\n * Creates a new StyleSheet object.\n */\n function StyleSheet() {\n return _super.call(this) || this;\n }\n Object.defineProperty(StyleSheet.prototype, \"styleNames\", {\n /**\n * An array that contains the names (as strings) of all of the styles registered\n * in this style sheet.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/StyleSheet', 'get styleNames', '');\n return [];\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Removes all styles from the style sheet object.\n */\n StyleSheet.prototype.clear = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/StyleSheet', 'clear', '');\n };\n /**\n * Returns a copy of the style object associated with the style named styleName.\n * If there is no style object associated with styleName,\n * null is returned.\n * @param\tstyleName\tA string that specifies the name of the style to retrieve.\n * @return\tAn object.\n */\n StyleSheet.prototype.getStyle = function (styleName) {\n // @todo\n Debug.throwPIR('playerglobals/text/StyleSheet', 'getStyle', '');\n return null;\n };\n /**\n * Parses the CSS in CSSText and loads the style sheet with it. If a style in\n * CSSText is already in styleSheet, the properties in\n * styleSheet are retained, and only the ones in CSSText\n * are added or changed in styleSheet.\n *\n * To extend the native CSS parsing capability, you can override this method by creating a subclass\n * of the StyleSheet class.\n * @param\tCSSText\tThe CSS text to parse (a string).\n */\n StyleSheet.prototype.parseCSS = function (CSSText) {\n // @todo\n Debug.throwPIR('playerglobals/text/StyleSheet', 'parseCSS', '');\n };\n /**\n * Adds a new style with the specified name to the style sheet object.\n * If the named style does not already exist in the style sheet, it is added.\n * If the named style already exists in the style sheet, it is replaced.\n * If the styleObject parameter is null, the named style is removed.\n *\n * Flash Player creates a copy of the style object that you pass to this method.\n * For a list of supported styles, see the table in the description for the StyleSheet class.\n * @param\tstyleName\tA string that specifies the name of the style to add to the style sheet.\n * @param\tstyleObject\tAn object that describes the style, or null.\n */\n StyleSheet.prototype.setStyle = function (styleName, styleObject) {\n // @todo\n Debug.throwPIR('playerglobals/text/StyleSheet', 'setStyle', '');\n };\n /**\n * Extends the CSS parsing capability. Advanced developers can override this method by extending the\n * StyleSheet class.\n * @param\tformatObject\tAn object that describes the style, containing style rules as properties of the object,\n * or null.\n * @return\tA TextFormat object containing the result of the mapping of CSS rules\n * to text format properties.\n */\n StyleSheet.prototype.transform = function (formatObject) {\n // @todo\n Debug.throwPIR('playerglobals/text/StyleSheet', 'transform', '');\n return null;\n };\n return StyleSheet;\n}(EventDispatcher));\nexport { StyleSheet };\n","import { __extends } from \"tslib\";\nimport { InteractiveObject } from '../display/InteractiveObject';\nimport { TextEvent } from '../events/TextEvent';\nimport { Event } from '../events/Event';\nimport { TextField as AwayTextField, TextFieldAutoSize, TextFieldType, TextfieldEvent } from '@awayjs/scene';\nimport { constructClassFromSymbol } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\n/**\n * Flash Player dispatches the textInteractionModeChange event when a user\n * changes the interaction mode of a text field.\n [Event(name=\"textInteractionModeChange\", type=\"flash.events.Event\")]\n\n * Flash Player dispatches the textInput event when a user enters one or more\n * characters of text.\n * @eventType\tflash.events.TextEvent.TEXT_INPUT\n [Event(name=\"textInput\", type=\"flash.events.TextEvent\")]\n\n * Dispatched by a TextField object after the user scrolls.\n * @eventType\tflash.events.Event.SCROLL\n [Event(name=\"scroll\", type=\"flash.events.Event\")]\n\n * Dispatched when a user clicks a hyperlink in an\n * HTML-enabled text field, where the URL begins with \"event:\".\n * @eventType\tflash.events.TextEvent.LINK\n *\n [Event(name=\"link\", type=\"flash.events.TextEvent\")]\n\n * Dispatched after a control value is modified, unlike\n * the textInput event, which is dispatched before the value is modified.\n * @eventType\tflash.events.Event.CHANGE\n [Event(name=\"change\", type=\"flash.events.Event\")]\n\n * The TextField class is used to create display objects for text display and input.\n * <ph outputclass=\"flexonly\" class=\"- topic/ph \">You can use the TextField class to perform low-level text rendering.\n * However, in Flex, you typically use the Label, Text, TextArea, and TextInput controls to process text.\n * </ph><ph outputclass=\"flashonly\" class=\"- topic/ph \">\n * You can give a text field an instance name in the Property inspector and\n * use the methods and properties of the TextField class to manipulate it with ActionScript.\n * TextField instance names are displayed in the Movie Explorer and in the Insert Target Path dialog box\n * in the Actions panel.</ph><p class=\"- topic/p \">To create a text field dynamically,\n * use the <codeph class=\"+ topic/ph pr-d/codeph \">TextField()</codeph> constructor.</p>\n * <p class=\"- topic/p \">\n * The methods of the TextField class let you set, select, and manipulate text in a dynamic or input\n * text field that you create during authoring or at runtime. </p>\n * <p class=\"- topic/p \">ActionScript provides several ways to\n * format your text at runtime. The TextFormat class lets you set character and paragraph formatting\n * for TextField objects. You can apply Cascading Style Sheets (CSS) styles\n * to text fields by using the <codeph class=\"+ topic/ph pr-d/codeph \">TextField.styleSheet</codeph>\n * property and the StyleSheet class. You can use CSS to\n * style built-in HTML tags, define new formatting tags, or apply styles.\n * You can assign HTML formatted text, which optionally uses CSS styles, directly to a text\n * field. HTML text that you assign to a text field can contain embedded\n * media (movie clips, SWF files, GIF files, PNG files, and JPEG files). The text wraps around the\n * embedded media in the same way that a web browser wraps text around media embedded in an HTML document.\n * </p><p class=\"- topic/p \">Flash Player supports a subset of HTML tags that you can use to format text.\n * See the list of supported\n * HTML tags in the description of the <codeph class=\"+ topic/ph pr-d/codeph \">htmlText</codeph> property.</p>\n */\nvar TextField = /** @class */ (function (_super) {\n __extends(TextField, _super);\n /**\n * Creates a new TextField instance. After you create the TextField instance, call the\n * addChild() or addChildAt() method of the parent\n * DisplayObjectContainer object to add the TextField instance to the display list.\n * The default size for a text field is 100 x 100 pixels.\n */\n function TextField() {\n var _this = _super.call(this) || this;\n _this._textFieldChangeListener = {};\n _this.adaptee.autoSize = TextFieldAutoSize.NONE;\n // fucking FLASH constructor can be called after assignments a cloned props\n // and mouseEnabled changed by DisplayObject to TRUE\n _this.adaptee.mouseEnabled = _this.adaptee.selectable;\n _this.eventMappingDummys[TextEvent.TEXT_INPUT] = 'TextField:TextEvent.TEXT_INPUT';\n _this.eventMappingDummys[TextEvent.LINK] = 'TextField:TextEvent.LINK';\n _this.eventMappingDummys[Event.SCROLL] = 'TextField:Event.SCROLL';\n _this.eventMappingDummys[Event.TEXT_INTERACTION_MODE_CHANGE] = 'TextField:Event.TEXT_INTERACTION_MODE_CHANGE';\n _this._textChangeCallbackDelegate = function (event) { return _this.textChangeCallback(event); };\n if (_this.adaptee.type == TextFieldType.INPUT) {\n _this.adaptee.addEventListener(TextfieldEvent.CHANGED, _this._textChangeCallbackDelegate);\n }\n return _this;\n }\n TextField.getNewTextField = function (adaptee) {\n if (adaptee === void 0) { adaptee = null; }\n if (TextField._textFields.length) {\n var textField = TextField._textFields.pop();\n textField.adaptee = adaptee || AwayTextField.getNewTextField();\n return textField;\n }\n return new TextField();\n };\n TextField.prototype.textChangeCallback = function (event) {\n var adaptedEvent = new this.sec.flash.events.Event(Event.CHANGE);\n //adaptedEvent.fillFromAway(event);\n adaptedEvent.target = this;\n //adaptedEvent.currentTarget=this;\n this.dispatchEvent(adaptedEvent, false);\n };\n TextField.prototype.createAdaptee = function () {\n var newAdaptee = AwayTextField.getNewTextField();\n newAdaptee.reset();\n return newAdaptee;\n };\n TextField.prototype.initAdapter = function () { };\n TextField.prototype.dispatchKeyEvent = function (charCode, isShift, isCTRL, isAlt) {\n };\n TextField.prototype.selectTextField = function () {\n };\n TextField.prototype.clone = function () {\n var clone = constructClassFromSymbol(this._symbol, this._symbol.symbolClass);\n //var clone:TextField = new (<SecurityDomain> this.sec).flash.text.TextField();\n var newText = new AwayTextField();\n this.adaptee.copyTo(newText);\n clone.adaptee = newText;\n clone._stage = this.activeStage;\n clone.executeConstructor = function () {\n clone.axInitializer();\n };\n return clone;\n };\n /**\n * @inheritDoc\n */\n TextField.prototype.dispose = function () {\n this.disposeValues();\n TextField._textFields.push(this);\n };\n Object.defineProperty(TextField.prototype, \"alwaysShowSelection\", {\n /**\n * When set to true and the text field is not in focus, Flash Player highlights the\n * selection in the text field in gray. When set to false and the text field is not in\n * focus, Flash Player does not highlight the selection in the text field.\n */\n get: function () {\n return this._adaptee.alwaysShowSelection;\n },\n set: function (value) {\n this._adaptee.alwaysShowSelection = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"antiAliasType\", {\n /**\n * The type of anti-aliasing used for this text field. Use flash.text.AntiAliasType\n * constants for this property. You can control this setting only if the font is\n * embedded (with the embedFonts property set to true).\n * The default setting is flash.text.AntiAliasType.NORMAL.\n *\n * To set values for this property, use the following string values:String valueDescription\n * flash.text.AntiAliasType.NORMALApplies the regular text anti-aliasing.\n * This value matches the type of anti-aliasing that\n * Flash Player 7 and earlier versions used.flash.text.AntiAliasType.ADVANCED\n * Applies advanced anti-aliasing, which makes text more legible. (This feature became\n * available in Flash Player 8.) Advanced anti-aliasing allows for high-quality rendering\n * of font faces at small sizes. It is best used with applications\n * with a lot of small text. Advanced anti-aliasing is not recommended for\n * fonts that are larger than 48 points.\n */\n get: function () {\n return this._adaptee.antiAliasType;\n },\n set: function (antiAliasType) {\n this._adaptee.antiAliasType = antiAliasType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"autoSize\", {\n /**\n * Controls automatic sizing and alignment of text fields.\n * Acceptable values for the TextFieldAutoSize constants: TextFieldAutoSize.NONE (the default),\n * TextFieldAutoSize.LEFT, TextFieldAutoSize.RIGHT, and TextFieldAutoSize.CENTER.\n *\n * If autoSize is set to TextFieldAutoSize.NONE (the default) no resizing occurs.\n * If autoSize is set to TextFieldAutoSize.LEFT, the text is\n * treated as left-justified text, meaning that the left margin of the text field remains fixed and any\n * resizing of a single line of the text field is on the right margin. If the text includes a line break\n * (for example, \"\\n\" or \"\\r\"), the bottom is also resized to fit the next\n * line of text. If wordWrap is also set to true, only the bottom\n * of the text field is resized and the right side remains fixed.\n * If autoSize is set to TextFieldAutoSize.RIGHT, the text is treated as\n * right-justified text, meaning that the right margin of the text field remains fixed and any resizing\n * of a single line of the text field is on the left margin. If the text includes a line break\n * (for example, \"\\n\" or \"\\r\"), the bottom is also resized to fit the next\n * line of text. If wordWrap is also set to true, only the bottom\n * of the text field is resized and the left side remains fixed.\n * If autoSize is set to TextFieldAutoSize.CENTER, the text is treated as\n * center-justified text, meaning that any resizing of a single line of the text field is equally distributed\n * to both the right and left margins. If the text includes a line break (for example, \"\\n\" or\n * \"\\r\"), the bottom is also resized to fit the next line of text. If wordWrap is also\n * set to true, only the bottom of the text field is resized and the left and\n * right sides remain fixed.\n * @throws\tArgumentError The autoSize specified is not a member of flash.text.TextFieldAutoSize.\n */\n get: function () {\n return this._adaptee.autoSize;\n },\n set: function (value) {\n this._adaptee.autoSize = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"background\", {\n /**\n * Specifies whether the text field has a background fill. If true, the text field has a\n * background fill. If false, the text field has no background fill.\n * Use the backgroundColor property to set the background color of a text field.\n */\n get: function () {\n return this._adaptee.background;\n },\n set: function (value) {\n this._adaptee.background = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"backgroundColor\", {\n /**\n * The color of the text field background. The default value is 0xFFFFFF (white).\n * This property can be retrieved or set, even if there currently is no background, but the\n * color is visible only if the text field has the background property set to\n * true.\n */\n get: function () {\n return this._adaptee.backgroundColor;\n },\n set: function (value) {\n this._adaptee.backgroundColor = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"border\", {\n /**\n * Specifies whether the text field has a border. If true, the text field has a border.\n * If false, the text field has no border. Use the borderColor property\n * to set the border color.\n */\n get: function () {\n return this._adaptee.border;\n },\n set: function (value) {\n this._adaptee.border = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"borderColor\", {\n /**\n * The color of the text field border. The default value is 0x000000 (black).\n * This property can be retrieved or set, even if there currently is no border, but the\n * color is visible only if the text field has the border property set to\n * true.\n */\n get: function () {\n return this._adaptee.borderColor;\n },\n set: function (value) {\n this._adaptee.borderColor = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"bottomScrollV\", {\n /**\n * An integer (1-based index) that indicates the bottommost line that is currently visible in\n * the specified text field. Think of the text field as a window onto a block of text.\n * The scrollV property is the 1-based index of the topmost visible line\n * in the window.\n *\n * All the text between the lines indicated by scrollV and bottomScrollV\n * is currently visible in the text field.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'set bottomScrollV', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"caretIndex\", {\n /**\n * The index of the insertion point (caret) position. If no insertion point is displayed,\n * the value is the position the insertion point would be if you restored focus to the field (typically where the\n * insertion point last was, or 0 if the field has not had focus).\n *\n * Selection span indexes are zero-based (for example, the first position is 0,\n * the second position is 1, and so on).\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get caretIndex', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"condenseWhite\", {\n /**\n * A Boolean value that specifies whether extra white space (spaces, line breaks, and so on)\n * in a text field with HTML text is removed. The default value is false.\n * The condenseWhite property only affects text set with\n * the htmlText property, not the text property. If you set\n * text with the text property, condenseWhite is ignored.\n *\n * If condenseWhite is set to true, use standard HTML commands such as\n * <BR> and <P> to place line breaks in the text field.\n * Set the condenseWhite property before setting the htmlText property.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get condenseWhite', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'set condenseWhite', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"defaultTextFormat\", {\n /**\n * Specifies the format applied to newly inserted text, such as text entered by a user or text inserted with the\n * replaceSelectedText() method.\n *\n * Note: When selecting characters to be replaced with setSelection() and\n * replaceSelectedText(), the defaultTextFormat will be applied only if the\n * text has been selected up to and including the last character. Here is an example:\n * var my_txt:TextField new TextField();\n * my_txt.text = \"Flash Macintosh version\";\n * var my_fmt:TextFormat = new TextFormat();\n * my_fmt.color = 0xFF0000;\n * my_txt.defaultTextFormat = my_fmt;\n * my_txt.setSelection(6,15); // partial text selected - defaultTextFormat not applied\n * my_txt.setSelection(6,23); // text selected to end - defaultTextFormat applied\n * my_txt.replaceSelectedText(\"Windows version\");\n * When you access the defaultTextFormat property, the returned TextFormat object has all\n * of its properties defined. No property is null.\n * Note: You can't set this property if a style sheet is applied to the text field.\n * @throws\tError This method cannot be used on a text field with a style sheet.\n */\n get: function () {\n var tf = this._adaptee.newTextFormat;\n if (tf.adapter || tf.adapter === tf.adaptee) {\n tf.adapter = new this.sec.flash.text.TextFormat();\n tf.adapter.adaptee = tf;\n }\n return tf.adapter;\n },\n set: function (format) {\n //console.log(\"todo TextFormat\");\n var textField = this._adaptee;\n var mergedFormat = textField.newTextFormat;\n format.adaptee.applyToFormat(mergedFormat);\n textField.newTextFormat = mergedFormat;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"displayAsPassword\", {\n /**\n * Specifies whether the text field is a password text field. If the value of this property is true,\n * the text field is treated as a password text field and hides the input characters using asterisks instead of the\n * actual characters. If false, the text field is not treated as a password text field. When password mode\n * is enabled, the Cut and Copy commands and their corresponding keyboard shortcuts will\n * not function. This security mechanism prevents an unscrupulous user from using the shortcuts to discover\n * a password on an unattended computer.\n */\n get: function () {\n return this._adaptee.displayAsPassword;\n },\n set: function (value) {\n this._adaptee.displayAsPassword = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"embedFonts\", {\n /**\n * Specifies whether to render by using embedded font outlines.\n * If false, Flash Player renders the text field by using\n * device fonts.\n *\n * If you set the embedFonts property to true for a text field,\n * you must specify a font for that text by using the font property of\n * a TextFormat object applied to the text field.\n * If the specified font is not embedded in the SWF file, the text is not displayed.\n */\n get: function () {\n return !!this._adaptee.embedFonts;\n },\n set: function (value) {\n var field = this._adaptee;\n var embed = !!value;\n if (field.embedFonts === embed)\n return;\n field.embedFonts = embed;\n // LanguageClass (and similar) applies defaultTextFormat before embedFonts.\n // Re-apply the current format font name so lookup runs again after any\n // embedded Font subclass has registered under its family name.\n var format = field.newTextFormat;\n if (format && format.font_name) {\n var fontName = format.font_name;\n format.font = null;\n format.font_name = fontName;\n field.newTextFormat = format;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"gridFitType\", {\n /**\n * The type of grid fitting used for this text field. This property applies only if the\n * flash.text.AntiAliasType property of the text field is set to flash.text.AntiAliasType.ADVANCED.\n *\n * The type of grid fitting used determines whether Flash Player forces strong horizontal and\n * vertical lines to fit to a pixel or subpixel grid, or not at all.\n * For the flash.text.GridFitType property, you can use the following string values:String value\n * Descriptionflash.text.GridFitType.NONE\n * Specifies no grid fitting. Horizontal and vertical lines in the glyphs are not\n * forced to the pixel grid. This setting is recommended for animation or\n * for large font sizes.flash.text.GridFitType.PIXEL\n * Specifies that strong horizontal and vertical lines are fit to the\n * pixel grid. This setting works only for left-aligned text fields.\n * To use this setting, the flash.dispaly.AntiAliasType property of the text field\n * must be set to flash.text.AntiAliasType.ADVANCED.\n * This setting generally provides the best legibility for\n * left-aligned text.flash.text.GridFitType.SUBPIXEL\n * Specifies that strong horizontal and vertical lines are fit to the subpixel grid on\n * an LCD monitor. To use this setting, the\n * flash.text.AntiAliasType property of the text field must be set to\n * flash.text.AntiAliasType.ADVANCED. The flash.text.GridFitType.SUBPIXEL setting is often good\n * for right-aligned or centered\n * dynamic text, and it is sometimes a useful trade-off for animation versus text quality.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get gridFitType', '');\n return '';\n },\n set: function (gridFitType) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'set gridFitType', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"htmlText\", {\n /**\n * Contains the HTML representation of the text field contents.\n *\n * Flash Player supports the following HTML tags:\n * Tag\n *\n * Description\n *\n * Anchor tag\n *\n * The <a> tag creates a hypertext link and supports the following attributes:\n * target: Specifies the name of the target window where you load the page.\n * Options include _self, _blank, _parent, and\n * _top. The _self option specifies the current frame in the current window,\n * _blank specifies a new window, _parent specifies the parent of the\n * current frame, and _top specifies the top-level frame in the current window.\n * href: Specifies a URL or an ActionScript link event.The URL can\n * be either absolute or relative to the location of the SWF file that\n * is loading the page. An example of an absolute reference to a URL is\n * http://www.adobe.com; an example of a relative reference is\n * /index.html. Absolute URLs must be prefixed with\n * http://; otherwise, Flash Player or AIR treats them as relative URLs.\n *\n * You can use the link event to cause the link to execute an ActionScript\n * function in a SWF file instead of opening a URL. To specify a link event, use\n * the event scheme instead of the http scheme in your href attribute. An example\n * is href=\"event:myText\" instead of href=\"http://myURL\"; when the\n * user clicks a hypertext link that contains the event scheme, the text field dispatches a\n * link TextEvent with its text property set to \"myText\". You can then create an ActionScript\n * function that executes whenever the link TextEvent is dispatched.\n *\n * You can also define a:link, a:hover, and a:active\n * styles for anchor tags by using style sheets.\n *\n * Bold tag\n *\n * The <b> tag renders text as bold. A bold typeface must be available for the font used.\n *\n * Break tag\n *\n * The <br> tag creates a line break in the text field. Set the text field to\n * be a multiline text field to use this tag.\n *\n * Font tag\n *\n * The <font> tag specifies a font or list of fonts to display the text.The font tag\n * supports the following attributes:\n * color: Only hexadecimal color (#FFFFFF) values are supported.\n * face: Specifies the name of the font to use. As shown in the following example,\n * you can specify a list of comma-delimited font names, in which case Flash Player selects the first available\n * font. If the specified font is not installed on the local computer system or isn't embedded in the SWF file,\n * Flash Player selects a substitute font.\n * size: Specifies the size of the font. You can use absolute pixel sizes, such as 16 or 18,\n * or relative point sizes, such as +2 or -4.\n *\n * Image tag\n *\n * The <img> tag lets you embed external image files (JPEG, GIF, PNG), SWF files, and\n * movie clips inside text fields. Text automatically flows around images you embed in text fields. You\n * must set the text field to be multiline to wrap text around an image.\n *\n * The <img> tag supports the following attributes: src:\n * Specifies the URL to an image or SWF file, or the linkage identifier for a movie clip\n * symbol in the library.\n * This attribute is required; all other attributes are optional. External files (JPEG, GIF, PNG,\n * and SWF files) do not show until they are downloaded completely.\n * width: The width of the image, SWF file, or movie clip being inserted, in pixels.\n * height: The height of the image, SWF file, or movie clip being inserted, in pixels.\n * align: Specifies the horizontal alignment of the embedded image within the text field.\n * Valid values are left and right. The default value is left.\n * hspace: Specifies the amount of horizontal space that surrounds the image where\n * no text appears. The default value is 8.\n * vspace: Specifies the amount of vertical space that surrounds the image where no\n * text appears. The default value is 8.\n * id: Specifies the name for the movie clip instance (created by Flash Player) that contains\n * the embedded image file, SWF file, or movie clip. This approach is used to control the embedded content with\n * ActionScript.\n * checkPolicyFile: Specifies that Flash Player checks for a URL policy file\n * on the server associated with the image domain. If a policy file exists, SWF files in the domains\n * listed in the file can access the data of the loaded image, for example, by calling the\n * BitmapData.draw() method with this image as the source parameter.\n * For more information related to security, see the Flash Player Developer Center Topic:\n * Security.\n *\n * Flash displays media embedded in a text field at full size. To specify the dimensions of the media\n * you are embedding, use the <img> tag height and width\n * attributes. In general, an image embedded in a text field appears on the line following the\n * <img> tag. However, when the <img> tag\n * is the first character in the text field, the image appears on the first line of the text field.\n * For AIR content in the application security sandbox, AIR ignores img tags in\n * HTML content in ActionScript TextField objects. This is to prevent possible phishing attacks,\n * Italic tag\n *\n * The <i> tag displays the tagged text in italics. An italic typeface must be available\n * for the font used.\n *\n * List item tag\n *\n * The <li> tag places a bullet in front of the text that it encloses.\n * Note: Because Flash Player and AIR do not recognize ordered and unordered list tags (<ol>\n * and <ul>, they do not modify how your list is rendered. All lists are unordered and all\n * list items use bullets.\n *\n * Paragraph tag\n *\n * The <p> tag creates a new paragraph. The text field must be set to be a multiline\n * text field to use this tag.\n *\n * The <p> tag supports the following attributes:\n *\n * align: Specifies alignment of text within the paragraph; valid values are left, right, justify, and center.\n *\n * class: Specifies a CSS style class defined by a flash.text.StyleSheet object.\n *\n * Span tag\n *\n * The <span> tag is available only for use with CSS text styles. It supports the\n * following attribute:\n *\n * class: Specifies a CSS style class defined by a flash.text.StyleSheet object.\n *\n * Text format tag\n * The <textformat> tag lets you use a subset of paragraph formatting\n * properties of the TextFormat class within text fields, including line leading, indentation,\n * margins, and tab stops. You can combine <textformat> tags with the\n * built-in HTML tags. The <textformat> tag has the following attributes: blockindent:\n * Specifies the block indentation in points; corresponds to\n * TextFormat.blockIndent.\n * indent: Specifies the indentation from the left margin to the first character\n * in the paragraph; corresponds to TextFormat.indent. Both positive and negative\n * numbers are acceptable.\n * leading: Specifies the amount of leading (vertical space) between lines;\n * corresponds to TextFormat.leading. Both positive and negative numbers are acceptable.\n * leftmargin: Specifies the left margin of the paragraph, in points; corresponds\n * to TextFormat.leftMargin.\n * rightmargin: Specifies the right margin of the paragraph, in points; corresponds\n * to TextFormat.rightMargin.\n * tabstops: Specifies custom tab stops as an array of non-negative integers;\n * corresponds to TextFormat.tabStops.\n *\n * Underline tag\n *\n * The <u> tag underlines the tagged text.\n * Flash Player and AIR support the following HTML entities:\n * Entity\n *\n * Description\n *\n * &lt;\n *\n * < (less than)\n *\n * &gt;\n *\n * > (greater than)\n *\n * &amp;\n *\n * & (ampersand)\n *\n * &quot;\n *\n * \" (double quotes)\n *\n * &apos;\n *\n * ' (apostrophe, single quote)\n *\n * Flash Player and AIR also support explicit character codes, such as\n * & (ASCII ampersand) and € (Unicode € symbol).\n */\n get: function () {\n return this.adaptee.htmlText;\n },\n set: function (value) {\n this.adaptee.htmlText = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"length\", {\n /**\n * The number of characters in a text field. A character such as tab (\\t) counts as one\n * character.\n */\n get: function () {\n //todo\n return this._adaptee.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"maxChars\", {\n /**\n * The maximum number of characters that the text field can contain, as entered by a user.\n * A script can insert more text than maxChars allows; the maxChars property\n * indicates only how much text a user can enter. If the value of this property is 0,\n * a user can enter an unlimited amount of text.\n */\n get: function () {\n return this.adaptee.maxChars;\n },\n set: function (value) {\n this.adaptee.maxChars = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"maxScrollH\", {\n /**\n * The maximum value of scrollH.\n */\n get: function () {\n return this.adaptee.maxScrollH;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"maxScrollV\", {\n /**\n * The maximum value of scrollV.\n */\n get: function () {\n return this.adaptee.maxScrollV + 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"mouseWheelEnabled\", {\n /**\n * A Boolean value that indicates whether Flash Player automatically scrolls multiline\n * text fields when the user clicks a text field and rolls the mouse wheel.\n * By default, this value is true. This property is useful if you want to prevent\n * mouse wheel scrolling of text fields, or implement your own text field scrolling.\n */\n get: function () {\n return this.adaptee.mouseWheelEnabled;\n },\n set: function (value) {\n this.adaptee.mouseWheelEnabled = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"multiline\", {\n /**\n * Indicates whether field is a multiline text field. If the value is true,\n * the text field is multiline; if the value is false, the text field is a single-line\n * text field. In a field of type TextFieldType.INPUT, the multiline value\n * determines whether the Enter key creates a new line (a value of false,\n * and the Enter key is ignored).\n * If you paste text into a TextField with a multiline value of false,\n * newlines are stripped out of the text.\n */\n get: function () {\n return this._adaptee.multiline;\n },\n set: function (value) {\n this._adaptee.multiline = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"numLines\", {\n /**\n * Defines the number of text lines in a multiline text field.\n * If wordWrap property is set to true,\n * the number of lines increases when text wraps.\n */\n get: function () {\n return this._adaptee.numLines;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"restrict\", {\n /**\n * Indicates the set of characters that a user can enter into the text field. If the value of the\n * restrict property is null, you can enter any character. If the value of\n * the restrict property is an empty string, you cannot enter any character. If the value\n * of the restrict property is a string of characters, you can enter only characters in\n * the string into the text field. The string is scanned from left to right. You can specify a range by\n * using the hyphen (-) character. Only user interaction is restricted; a script can put any text into the\n * text field. This property does not synchronize with the Embed font options\n * in the Property inspector.If the string begins with a caret (^) character,\n * all characters are initially accepted and\n * succeeding characters in the string are excluded from the set of accepted characters. If the string does\n * not begin with a caret (^) character, no characters are initially accepted and succeeding characters in the\n * string are included in the set of accepted characters.\n * The following example allows only uppercase characters, spaces, and numbers to be entered into\n * a text field:\n * my_txt.restrict = \"A-Z 0-9\";\n * The following example includes all characters, but excludes lowercase letters:\n * my_txt.restrict = \"^a-z\";\n * You can use a backslash to enter a ^ or - verbatim. The accepted backslash sequences are \\-, \\^ or \\\\.\n * The backslash must be an actual character in the string, so when specified in ActionScript, a double backslash\n * must be used. For example, the following code includes only the dash (-) and caret (^):\n * my_txt.restrict = \"\\\\-\\\\^\";\n * The ^ can be used anywhere in the string to toggle between including characters and excluding characters.\n * The following code includes only uppercase letters, but excludes the uppercase letter Q:\n * my_txt.restrict = \"A-Z^Q\";\n * You can use the \\u escape sequence to construct restrict strings.\n * The following code includes only the characters from ASCII 32 (space) to ASCII 126 (tilde).\n * my_txt.restrict = \"\\u0020-\\u007E\";\n */\n get: function () {\n return this.adaptee.restrict;\n },\n set: function (value) {\n this.adaptee.restrict = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"scrollH\", {\n /**\n * The current horizontal scrolling position. If the scrollH property is 0, the text\n * is not horizontally scrolled. This property value is an integer that represents the horizontal\n * position in pixels.\n *\n * The units of horizontal scrolling are pixels, whereas the units of vertical scrolling are lines.\n * Horizontal scrolling is measured in pixels because most fonts you typically use are proportionally\n * spaced; that is, the characters can have different widths. Flash Player performs vertical scrolling by\n * line because users usually want to see a complete line of text rather than a\n * partial line. Even if a line uses multiple fonts, the height of the line adjusts to fit\n * the largest font in use.Note: The scrollH property is zero-based, not 1-based like\n * the scrollV vertical scrolling property.\n */\n get: function () {\n return this.adaptee.scrollH;\n },\n set: function (value) {\n this.adaptee.scrollH = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"scrollV\", {\n /**\n * The vertical position of text in a text field. The scrollV property is useful for\n * directing users to a specific paragraph in a long passage, or creating scrolling text fields.\n *\n * The units of vertical scrolling are lines, whereas the units of horizontal scrolling are pixels.\n * If the first line displayed is the first line in the text field, scrollV is set to 1 (not 0).\n * Horizontal scrolling is measured in pixels because most fonts are proportionally\n * spaced; that is, the characters can have different widths. Flash performs vertical scrolling by line\n * because users usually want to see a complete line of text rather than a partial line.\n * Even if there are multiple fonts on a line, the height of the line adjusts to fit the largest font in\n * use.\n */\n get: function () {\n return this.adaptee.scrollV + 1;\n },\n set: function (value) {\n this.adaptee.scrollV = value - 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"selectable\", {\n /**\n * A Boolean value that indicates whether the text field is selectable. The value true\n * indicates that the text is selectable. The selectable property controls whether\n * a text field is selectable, not whether a text field is editable. A dynamic text field can\n * be selectable even if it is not editable. If a dynamic text field is not selectable, the user\n * cannot select its text.\n *\n * If selectable is set to false, the text in the text field does not\n * respond to selection commands from the mouse or keyboard, and the text cannot be copied with the\n * Copy command. If selectable is set to true, the text in the text field\n * can be selected with the mouse or keyboard, and the text can be copied with the Copy command.\n * You can select text this way even if the text field is a dynamic text field instead of an input text field.\n */\n get: function () {\n return this.adaptee.selectable;\n },\n set: function (value) {\n this._adaptee.selectable = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"selectedText\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get selectedText', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"selectionBeginIndex\", {\n /**\n * The zero-based character index value of the first character in the current selection.\n * For example, the first character is 0, the second character is 1, and so on. If no\n * text is selected, this property is the value of caretIndex.\n */\n get: function () {\n return this.adaptee.selectionBeginIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"selectionEndIndex\", {\n /**\n * The zero-based character index value of the last character in the current selection.\n * For example, the first character is 0, the second character is 1, and so on. If no\n * text is selected, this property is the value of caretIndex.\n */\n get: function () {\n return this.adaptee.selectionEndIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"sharpness\", {\n /**\n * The sharpness of the glyph edges in this text field. This property applies\n * only if the flash.text.AntiAliasType property of the text field is set to\n * flash.text.AntiAliasType.ADVANCED. The range for\n * sharpness is a number from -400 to 400. If you attempt to set\n * sharpness to a value outside that range, Flash sets the property to\n * the nearest value in the range (either -400 or 400).\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get sharpness', '');\n return 0;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'set sharpness', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"styleSheet\", {\n /**\n * Attaches a style sheet to the text field. For information on creating style sheets, see the StyleSheet class\n * and the ActionScript 3.0 Developer's Guide.\n *\n * You can change the style sheet associated with a text field at any time. If you change\n * the style sheet in use, the text field is redrawn with the new style sheet.\n * You can set the style sheet to null or undefined\n * to remove the style sheet. If the style sheet in use is removed, the text field is redrawn without a style sheet.\n * Note: If the style sheet is removed, the contents of both TextField.text and\n * TextField.htmlText change to incorporate the formatting previously applied by the style sheet. To preserve\n * the original TextField.htmlText contents without the formatting, save the value in a variable before\n * removing the style sheet.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get styleSheet', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'set styleSheet', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"text\", {\n /**\n * A string that is the current text in the text field. Lines are separated by the carriage\n * return character ('\\r', ASCII 13). This property contains unformatted text in the text\n * field, without HTML tags.\n *\n * To get the text in HTML form, use the htmlText property.\n */\n get: function () {\n return this._adaptee.text;\n },\n set: function (value) {\n this._adaptee.text = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"textColor\", {\n /**\n * The color of the text in a text field, in hexadecimal format.\n * The hexadecimal color system uses six digits to represent\n * color values. Each digit has 16 possible values or characters. The characters range from\n * 0-9 and then A-F. For example, black is 0x000000; white is\n * 0xFFFFFF.\n */\n get: function () {\n return this._adaptee.textColor;\n },\n set: function (value) {\n this._adaptee.textColor = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"textHeight\", {\n /**\n * The height of the text in pixels.\n */\n get: function () {\n return this._adaptee.textHeight;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"textInteractionMode\", {\n /**\n * The interaction mode property, Default value is TextInteractionMode.NORMAL.\n * On mobile platforms, the normal mode implies that the text can be scrolled but not selected.\n * One can switch to the selectable mode through the in-built context menu on the text field.\n * On Desktop, the normal mode implies that the text is in scrollable as well as selection mode.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get textInteractionMode', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"textWidth\", {\n /**\n * The width of the text in pixels.\n */\n get: function () {\n return this._adaptee.textWidth;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"thickness\", {\n /**\n * The thickness of the glyph edges in this text field. This property applies only\n * when flash.text.AntiAliasType is set to flash.text.AntiAliasType.ADVANCED.\n *\n * The range for thickness is a number from -200 to 200. If you attempt to\n * set thickness to a value outside that range, the property is set to the\n * nearest value in the range (either -200 or 200).\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get thickness', '');\n return 0;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'set thickness', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"type\", {\n /**\n * The type of the text field.\n * Either one of the following TextFieldType constants: TextFieldType.DYNAMIC,\n * which specifies a dynamic text field, which a user cannot edit, or TextFieldType.INPUT,\n * which specifies an input text field, which a user can edit.\n * @throws\tArgumentError The type specified is not a member of flash.text.TextFieldType.\n */\n get: function () {\n return this._adaptee.type;\n },\n set: function (value) {\n if (value == TextFieldType.INPUT && this._adaptee.type != TextFieldType.INPUT)\n this.adaptee.addEventListener(TextfieldEvent.CHANGED, this._textChangeCallbackDelegate);\n else if (value != TextFieldType.INPUT && this._adaptee.type == TextFieldType.INPUT)\n this.adaptee.addEventListener(TextfieldEvent.CHANGED, this._textChangeCallbackDelegate);\n this._adaptee.type = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"useRichTextClipboard\", {\n /**\n * Specifies whether to copy and paste the text formatting along with the text. When set to true,\n * Flash Player copies and pastes formatting (such as alignment, bold, and italics)\n * when you copy and paste between text fields.\n * Both the origin and destination text fields for the copy and paste procedure must have\n * useRichTextClipboard set to true. The default value\n * is false.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'get useRichTextClipboard', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'set useRichTextClipboard', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextField.prototype, \"wordWrap\", {\n /**\n * A Boolean value that indicates whether the text field has word wrap. If the value of\n * wordWrap is true, the text field has word wrap;\n * if the value is false, the text field does not have word wrap. The default\n * value is false.\n */\n get: function () {\n return this._adaptee.wordWrap;\n },\n set: function (value) {\n this._adaptee.wordWrap = value;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Appends the string specified by the newText parameter to the end of the text\n * of the text field. This method is more efficient than an addition assignment (+=) on\n * a text property (such as someTextField.text += moreText),\n * particularly for a text field that contains a significant amount of content.\n * @param\tnewText\tThe string to append to the existing text.\n */\n TextField.prototype.appendText = function (newText) {\n this._adaptee.appendText(newText);\n };\n TextField.prototype.copyRichText = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'copyRichText', '');\n return '';\n };\n /**\n * Returns a rectangle that is the bounding box of the character.\n * @param\tcharIndex\tThe zero-based index value for the character (for example, the first\n * position is 0, the second position is 1, and so on).\n * @return\tA rectangle with x and y minimum and maximum values\n * defining the bounding box of the character.\n */\n TextField.prototype.getCharBoundaries = function (charIndex) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'getCharBoundaries', '');\n return null;\n };\n /**\n * Returns the zero-based index value of the character at the point specified by the x\n * and y parameters.\n * @param\tx\tThe x coordinate of the character.\n * @param\ty\tThe y coordinate of the character.\n * @return\tThe zero-based index value of the character (for example, the first position is 0,\n * the second position is 1, and so on). Returns -1 if the point is not over any character.\n */\n TextField.prototype.getCharIndexAtPoint = function (x, y) {\n return this._adaptee.getCharIndexAtPoint(x, y);\n };\n /**\n * Given a character index, returns the index of the first character in the same paragraph.\n * @param\tcharIndex\tThe zero-based index value of the character (for example, the first character is 0,\n * the second character is 1, and so on).\n * @return\tThe zero-based index value of the first character in the same paragraph.\n * @throws\tRangeError The character index specified is out of range.\n */\n TextField.prototype.getFirstCharInParagraph = function (charIndex) {\n return this._adaptee.getFirstCharInParagraph(charIndex);\n };\n /**\n * Returns a DisplayObject reference for the given id, for an image or SWF file\n * that has been added to an HTML-formatted text field by using an <img> tag.\n * The <img> tag is in the following format:\n *\n * <img src = 'filename.jpg' id = 'instanceName' >\n * @param\tid\tThe id to match (in the id attribute of the\n * <img> tag).\n * @return\tThe display object corresponding to the image or SWF file with the matching id\n * attribute in the <img> tag of the text field. For media loaded from an external source,\n * this object is a Loader object, and, once loaded, the media object is a child of that Loader object. For media\n * embedded in the SWF file, it is the loaded object. If no <img> tag with\n * the matching id exists, the method returns null.\n */\n TextField.prototype.getImageReference = function (id) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'getImageReference', '');\n return null;\n };\n /**\n * Returns the zero-based index value of the line at the point specified by the x\n * and y parameters.\n * @param\tx\tThe x coordinate of the line.\n * @param\ty\tThe y coordinate of the line.\n * @return\tThe zero-based index value of the line (for example, the first line is 0, the\n * second line is 1, and so on). Returns -1 if the point is not over any line.\n */\n TextField.prototype.getLineIndexAtPoint = function (x, y) {\n return this._adaptee.getLineIndexAtPoint(x, y);\n };\n /**\n * Returns the zero-based index value of the line containing the character specified\n * by the charIndex parameter.\n * @param\tcharIndex\tThe zero-based index value of the character (for example, the first character is 0,\n * the second character is 1, and so on).\n * @return\tThe zero-based index value of the line.\n */\n TextField.prototype.getLineIndexOfChar = function (charIndex) {\n return this._adaptee.getLineIndexOfChar(charIndex);\n };\n /**\n * Returns the number of characters in a specific text line.\n * @param\tlineIndex\tThe line number for which you want the length.\n * @return\tThe number of characters in the line.\n * @throws\tRangeError The line number specified is out of range.\n */\n TextField.prototype.getLineLength = function (lineIndex) {\n return this._adaptee.getLineLength(lineIndex);\n };\n /**\n * Returns metrics information about a given text line.\n * @param\tlineIndex\tThe line number for which you want metrics information.\n * @return\tA TextLineMetrics object.\n * @throws\tRangeError The line number specified is out of range.\n */\n TextField.prototype.getLineMetrics = function (lineIndex) {\n var _a = this._adaptee.getLineMetrics(lineIndex), x = _a.x, width = _a.width, height = _a.height, ascent = _a.ascent, descent = _a.descent, leading = _a.leading;\n return new this.sec.flash.text.TextLineMetrics(x, width, height, ascent, descent, leading);\n };\n /**\n * Returns the character index of the first character in the line that\n * the lineIndex parameter specifies.\n * @param\tlineIndex\tThe zero-based index value of the line (for example, the first line is 0,\n * the second line is 1, and so on).\n * @return\tThe zero-based index value of the first character in the line.\n * @throws\tRangeError The line number specified is out of range.\n */\n TextField.prototype.getLineOffset = function (lineIndex) {\n return this._adaptee.getLineOffset(lineIndex);\n };\n /**\n * Returns the text of the line specified by the lineIndex parameter.\n * @param\tlineIndex\tThe zero-based index value of the line (for example, the first line is 0,\n * the second line is 1, and so on).\n * @return\tThe text string contained in the specified line.\n * @throws\tRangeError The line number specified is out of range.\n */\n TextField.prototype.getLineText = function (lineIndex) {\n return this._adaptee.getLineText(lineIndex);\n };\n /**\n * Given a character index, returns the length of the paragraph containing the given character.\n * The length is relative to the first character in the paragraph (as returned by\n * getFirstCharInParagraph()), not to the character index passed in.\n * @param\tcharIndex\tThe zero-based index value of the character (for example, the first character is 0,\n * the second character is 1, and so on).\n * @return\tReturns the number of characters in the paragraph.\n * @throws\tRangeError The character index specified is out of range.\n */\n TextField.prototype.getParagraphLength = function (charIndex) {\n return this._adaptee.getParagraphLength(charIndex);\n };\n TextField.prototype.getRawText = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'getRawText', '');\n return '';\n };\n /**\n * Returns a TextFormat object that contains formatting information for the range of text that the\n * beginIndex and endIndex parameters specify. Only properties\n * that are common to the entire text specified are set in the resulting TextFormat object.\n * Any property that is mixed, meaning that it has different values\n * at different points in the text, has a value of null.\n *\n * If you do not specify\n * values for these parameters, this method is applied to all the text in the text field.\n * The following table describes three possible usages:UsageDescriptionmy_textField.getTextFormat()\n * Returns a TextFormat object containing formatting information for all text in a text field.\n * Only properties that are common to all text in the text field are set in the resulting TextFormat\n * object. Any property that is mixed, meaning that it has different values at different\n * points in the text, has a value of null.my_textField.getTextFormat(beginIndex:Number)\n * Returns a TextFormat object containing a copy of the text format of the character at the\n * beginIndex position.my_textField.getTextFormat(beginIndex:Number,endIndex:Number)\n * Returns a TextFormat object containing formatting information for the span of\n * text from beginIndex to endIndex-1. Only properties that are common\n * to all of the text in the specified range are set in the resulting TextFormat object. Any property\n * that is mixed (that is, has different values at different points in the range) has its value set to null.\n * @param\tbeginIndex\tOptional; an integer that specifies the starting location\n * of a range of text within the text field.\n * @param\tendIndex\tOptional; an integer that specifies the position of the first character after the desired\n * text span. As designed, if you specify beginIndex and endIndex values,\n * the text from beginIndex to endIndex-1 is read.\n * @return\tThe TextFormat object that represents the formatting properties for the specified text.\n * @throws\tRangeError The beginIndex or endIndex specified is out of range.\n */\n TextField.prototype.getTextFormat = function (beginIndex, endIndex) {\n if (beginIndex === void 0) { beginIndex = -1; }\n if (endIndex === void 0) { endIndex = -1; }\n var awt = this._adaptee.getTextFormat(beginIndex, endIndex);\n if (!awt) {\n console.warn('[playerglobal/Textfield] - getTextFormat - textformat should not be null');\n return;\n }\n if (awt.adaptee !== awt.adapter) {\n return awt.adapter;\n }\n var tf = new this.sec.flash.text.TextFormat();\n tf.adaptee = awt;\n awt.adapter = tf;\n return tf;\n };\n TextField.prototype.getTextRuns = function (beginIndex, endIndex) {\n if (beginIndex === void 0) { beginIndex = 0; }\n if (endIndex === void 0) { endIndex = 2147483647; }\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'getTextRuns', '');\n return [];\n };\n TextField.prototype.getXMLText = function (beginIndex, endIndex) {\n if (beginIndex === void 0) { beginIndex = 0; }\n if (endIndex === void 0) { endIndex = 2147483647; }\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'getXMLText', '');\n return '';\n };\n TextField.prototype.insertXMLText = function (beginIndex, endIndex, richText, pasting) {\n if (pasting === void 0) { pasting = false; }\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'insertXMLText', '');\n };\n /**\n * Returns true if an embedded font is available with the specified fontName and fontStyle\n * where Font.fontType is flash.text.FontType.EMBEDDED. Starting with Flash Player 10,\n * two kinds of embedded fonts can appear in a SWF file. Normal embedded fonts are only used with\n * TextField objects.\n * CFF embedded fonts are only used with the flash.text.engine classes. The two types are distinguished by the\n * fontType property of the Font class, as returned by the enumerateFonts() function.\n *\n * TextField cannot use a font of type EMBEDDED_CFF. If embedFonts is set to true\n * and the only font available at run time with the specified name and style is of type EMBEDDED_CFF,\n * Flash Player fails to render the text, as if no embedded font were available with the specified name and style.\n * If both EMBEDDED and EMBEDDED_CFF fonts are available with the same name and style, the EMBEDDED\n * font is selected and text renders with the EMBEDDED font.\n * @param\tfontName\tThe name of the embedded font to check.\n * @param\tfontStyle\tSpecifies the font style to check. Use flash.text.FontStyle\n * @return\ttrue if a compatible embedded font is available, otherwise false.\n * @throws\tArgumentError The fontStyle specified is not a member of flash.text.FontStyle.\n */\n TextField.isFontCompatible = function (fontName, fontStyle) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'isFontCompatible', '');\n return false;\n };\n TextField.prototype.pasteRichText = function (richText) {\n // @todo\n Debug.throwPIR('playerglobals/text/Textfield', 'pasteRichText', '');\n return false;\n };\n /**\n * Replaces the current selection with the contents of the value parameter.\n * The text is inserted at the position of the current selection, using the current default character\n * format and default paragraph format. The text is not treated as HTML.\n *\n * You can use the replaceSelectedText() method to insert and delete text without disrupting\n * the character and paragraph formatting of the rest of the text.\n * Note: This method does not work if a style sheet is applied to the text field.\n * @param\tvalue\tThe string to replace the currently selected text.\n * @throws\tError This method cannot be used on a text field with a style sheet.\n */\n TextField.prototype.replaceSelectedText = function (value) {\n return this._adaptee.replaceSelectedText(value);\n };\n /**\n * Replaces the range of characters that the beginIndex and\n * endIndex parameters specify with the contents\n * of the newText parameter. As designed, the text from\n * beginIndex to endIndex-1 is replaced.\n * Note: This method does not work if a style sheet is applied to the text field.\n * @param\tbeginIndex\tThe zero-based index value for the start position of the replacement range.\n * @param\tendIndex\tThe zero-based index position of the first character after the desired\n * text span.\n * @param\tnewText\tThe text to use to replace the specified range of characters.\n * @throws\tError This method cannot be used on a text field with a style sheet.\n */\n TextField.prototype.replaceText = function (beginIndex, endIndex, newText) {\n return this._adaptee.replaceText(beginIndex, endIndex, newText);\n };\n /**\n * Sets as selected the text designated by the index values of the\n * first and last characters, which are specified with the beginIndex\n * and endIndex parameters. If the two parameter values are the same,\n * this method sets the insertion point, as if you set the\n * caretIndex property.\n * @param\tbeginIndex\tThe zero-based index value of the first character in the selection\n * (for example, the first character is 0, the second character is 1, and so on).\n * @param\tendIndex\tThe zero-based index value of the last character in the selection.\n * @internal\tNeed to add an example.\n */\n TextField.prototype.setSelection = function (beginIndex, endIndex) {\n return this._adaptee.setSelection(beginIndex, endIndex);\n };\n /**\n * Applies the text formatting that the format parameter specifies to the specified text in a text field.\n * The value of format must be a TextFormat object that specifies the\n * desired text formatting changes. Only the non-null properties of format are applied\n * to the text field. Any property of format that is set to null is not\n * applied. By default, all of the properties of a newly created TextFormat object are set to null.\n * Note: This method does not work if a style sheet is applied to the text field.\n * The setTextFormat() method changes the text formatting applied to a range of\n * characters or to the entire body of text in a text field.\n * To apply the properties of format to all text in the text\n * field, do not specify values for beginIndex and endIndex. To apply the\n * properties of the format to a range of text, specify values for the beginIndex and\n * the endIndex parameters. You can use the length property to determine\n * the index values.The two types of formatting information in a TextFormat object are\n * character level formatting and paragraph level formatting.\n * Each character in a text field can have its own character formatting\n * settings, such as font name, font size, bold, and italic.For paragraphs,\n * the first character of the paragraph is examined for the paragraph formatting\n * settings for the entire paragraph. Examples of paragraph formatting settings are left margin,\n * right margin, and indentation.Any text inserted manually by the user, or replaced by the\n * replaceSelectedText() method, receives the default text field formatting for new text,\n * and not the formatting specified for the text insertion point. To set the default\n * formatting for new text, use defaultTextFormat.\n * @param\tformat\tA TextFormat object that contains character and paragraph formatting information.\n * @param\tbeginIndex\tOptional; an integer that specifies the zero-based index position specifying the\n * first character of the desired range of text.\n * @param\tendIndex\tOptional; an integer that specifies the first character after the desired text span.\n * As designed, if you specify beginIndex and endIndex values,\n * the text from beginIndex to endIndex-1 is updated.\n *\n * UsageDescriptionmy_textField.setTextFormat(textFormat:TextFormat)\n * Applies the properties of textFormat to all text in the text\n * field.my_textField.setTextFormat(textFormat:TextFormat, beginIndex:int)\n * Applies the properties of textFormat to the text starting with the\n * beginIndex position.my_textField.setTextFormat(textFormat:TextFormat, beginIndex:int,\n * endIndex:int)Applies the properties of the textFormat parameter to the span of\n * text from the beginIndex position to the endIndex-1 position.\n * Notice that any text inserted manually by the user, or replaced by the\n * replaceSelectedText() method, receives the default text field formatting for new\n * text, and not the formatting specified for the text insertion point. To set a text field's\n * default formatting for new text, use the defaultTextFormat property.\n * @throws\tError This method cannot be used on a text field with a style sheet.\n * @throws\tRangeError The beginIndex or endIndex specified is out of range.\n */\n TextField.prototype.setTextFormat = function (format, beginIndex, endIndex) {\n if (beginIndex === void 0) { beginIndex = -1; }\n if (endIndex === void 0) { endIndex = -1; }\n //todo implement for multi-formats\n this._adaptee.setTextFormat(format.adaptee, beginIndex, endIndex);\n };\n TextField._textFields = new Array();\n return TextField;\n}(InteractiveObject));\nexport { TextField };\n","import { __extends } from \"tslib\";\nimport { TextFormat as AwaytextFormat } from '@awayjs/scene';\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextFormat = /** @class */ (function (_super) {\n __extends(TextFormat, _super);\n function TextFormat(font, size, color, bold, italic, underline, url, link_target, align, leftMargin, rightMargin, indent, leading) {\n if (font === void 0) { font = null; }\n if (size === void 0) { size = null; }\n if (color === void 0) { color = null; }\n if (bold === void 0) { bold = null; }\n if (italic === void 0) { italic = null; }\n if (underline === void 0) { underline = null; }\n if (url === void 0) { url = null; }\n if (link_target === void 0) { link_target = null; }\n if (align === void 0) { align = null; }\n if (leftMargin === void 0) { leftMargin = null; }\n if (rightMargin === void 0) { rightMargin = null; }\n if (indent === void 0) { indent = null; }\n if (leading === void 0) { leading = null; }\n var _this = _super.call(this) || this;\n _this.adaptee = new AwaytextFormat(font, size, color, bold, italic, underline, url, link_target, align, leftMargin, rightMargin, indent, leading);\n return _this;\n }\n Object.defineProperty(TextFormat.prototype, \"target\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'get target', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'set target', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"tabStops\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'get tabStops', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'set tabStops', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"display\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'get display', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'set display', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"bullet\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'get bullet', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'set bullet', '');\n //this._bullet = TextFormat.coerceBoolean(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"url\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'get url', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'set url', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"link_target\", {\n /**\n * Indicates the target window where the hyperlink is displayed. If the\n * target window is an empty string, the text is displayed in the default\n * target window <code>_self</code>. You can choose a custom name or one of\n * the following four names: <code>_self</code> specifies the current frame\n * in the current window, <code>_blank</code> specifies a new window,\n * <code>_parent</code> specifies the parent of the current frame, and\n * <code>_top</code> specifies the top-level frame in the current window. If\n * the <code>TextFormat.url</code> property is an empty string or\n * <code>null</code>, you can get or set this property, but the property will\n * have no effect.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'get target', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormat', 'get target', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"align\", {\n get: function () {\n return this.adaptee.align;\n },\n set: function (value) {\n this.adaptee.align = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"blockIndent\", {\n get: function () {\n return this.adaptee.blockIndent;\n },\n set: function (value) {\n this.adaptee.blockIndent = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"leftMargin\", {\n get: function () {\n return this.adaptee.leftMargin;\n },\n set: function (value) {\n this.adaptee.leftMargin = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"rightMargin\", {\n get: function () {\n return this.adaptee.rightMargin;\n },\n set: function (value) {\n this.adaptee.rightMargin = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"indent\", {\n get: function () {\n return this.adaptee.indent;\n },\n set: function (value) {\n this.adaptee.indent = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"color\", {\n get: function () {\n return this.adaptee.color;\n },\n set: function (value) {\n this.adaptee.color = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"kerning\", {\n get: function () {\n return this.adaptee.kerning;\n },\n set: function (value) {\n this.adaptee.kerning = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"leading\", {\n get: function () {\n return this.adaptee.leading;\n },\n set: function (value) {\n this.adaptee.leading = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"letterSpacing\", {\n get: function () {\n return this.adaptee.letterSpacing;\n },\n set: function (value) {\n this.adaptee.letterSpacing = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"size\", {\n get: function () {\n return this.adaptee.size;\n },\n set: function (value) {\n this.adaptee.size = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"bold\", {\n get: function () {\n return this.adaptee.bold;\n },\n set: function (value) {\n this.adaptee.bold = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"italic\", {\n get: function () {\n return this.adaptee.italic;\n },\n set: function (value) {\n this.adaptee.italic = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"underline\", {\n get: function () {\n return this.adaptee.underline;\n },\n set: function (value) {\n this.adaptee.underline = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextFormat.prototype, \"font\", {\n get: function () {\n // in awayjs textformat, font is a Awayjs Font object\n // we have font_name for the font name string\n return this.adaptee.font_name;\n },\n set: function (value) {\n this.adaptee.font_name = value;\n },\n enumerable: false,\n configurable: true\n });\n TextFormat.prototype.clone = function () {\n //console.log(\"not implemented: textFOrmat.clone\");\n var clonedFormat = new this.sec.flash.text.TextFormat();\n clonedFormat.adaptee = this.adaptee.clone();\n return clonedFormat;\n };\n return TextFormat;\n}(ASObject));\nexport { TextFormat };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TextRun = /** @class */ (function (_super) {\n __extends(TextRun, _super);\n function TextRun(beginIndex /*int*/, endIndex /*int*/, textFormat) {\n var _this = _super.call(this) || this;\n _this._beginIndex = beginIndex | 0;\n _this._endIndex = endIndex | 0;\n _this._textFormat = textFormat;\n return _this;\n }\n Object.defineProperty(TextRun.prototype, \"beginIndex\", {\n get: function () {\n return this._beginIndex;\n },\n set: function (value) {\n this._beginIndex = value | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextRun.prototype, \"endIndex\", {\n get: function () {\n return this._endIndex;\n },\n set: function (value) {\n this._endIndex = value | 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextRun.prototype, \"textFormat\", {\n get: function () {\n return this._textFormat;\n },\n set: function (value) {\n this._textFormat = value;\n },\n enumerable: false,\n configurable: true\n });\n TextRun.prototype.clone = function () {\n return new TextRun(this.beginIndex, this.endIndex, this.textFormat.clone());\n };\n TextRun.prototype.containsIndex = function (index) {\n return index >= this._beginIndex && index < this._endIndex;\n };\n TextRun.prototype.intersects = function (beginIndex, endIndex) {\n return Math.max(this._beginIndex, beginIndex) < Math.min(this._endIndex, endIndex);\n };\n TextRun.classInitializer = null;\n return TextRun;\n}(ASObject));\nexport { TextRun };\n","import { __extends } from \"tslib\";\nimport { Debug } from '@awayjs/core';\nimport { DisplayObject } from '../display/DisplayObject';\nvar StaticText = /** @class */ (function (_super) {\n __extends(StaticText, _super);\n function StaticText() {\n var _this = _super.call(this) || this;\n // @todo\n Debug.throwPIR('playerglobals/text/StaticText', 'constructor', '');\n return _this;\n }\n //_symbol: TextSymbol;\n StaticText.prototype.applySymbol = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/StaticText', 'applySymbol', '');\n };\n StaticText.prototype._canHaveTextContent = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/StaticText', '_canHaveTextContent', '');\n return true;\n };\n StaticText.prototype._getTextContent = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/StaticText', '_getTextContent', '');\n return this._textContent;\n };\n Object.defineProperty(StaticText.prototype, \"text\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/StaticText', 'text', '');\n return this._textContent.plainText;\n },\n enumerable: false,\n configurable: true\n });\n StaticText.classInitializer = null;\n StaticText.classSymbols = null;\n StaticText.instanceSymbols = null;\n return StaticText;\n}(DisplayObject));\nexport { StaticText };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextRenderer = /** @class */ (function (_super) {\n __extends(TextRenderer, _super);\n function TextRenderer() {\n var _this = _super.call(this) || this;\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'constructor', '');\n return _this;\n }\n Object.defineProperty(TextRenderer.prototype, \"antiAliasType\", {\n // static _antiAliasType: string;\n // static _maxLevel: number /*int*/;\n // static _displayMode: string;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'get antiAliasType', '');\n return null;\n },\n set: function (value) {\n value = axCoerceString(value);\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'set antiAliasType', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextRenderer.prototype, \"maxLevel\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'get maxLevel', '');\n return 0;\n },\n set: function (value /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'set maxLevel', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextRenderer.prototype, \"displayMode\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'get displayMode', '');\n return null;\n },\n set: function (value) {\n value = axCoerceString(value);\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'set displayMode', '');\n },\n enumerable: false,\n configurable: true\n });\n TextRenderer.setAdvancedAntiAliasingTable = function (fontName, fontStyle, colorType, advancedAntiAliasingTable) {\n fontName = axCoerceString(fontName);\n fontStyle = axCoerceString(fontStyle);\n colorType = axCoerceString(colorType);\n // @todo\n Debug.throwPIR('playerglobals/text/TextRenderer', 'setAdvancedAntiAliasingTable', '');\n };\n // Called whenever the class is initialized.\n TextRenderer.classInitializer = null;\n // List of static symbols to link.\n TextRenderer.classSymbols = null; // [];\n // List of instance symbols to link.\n TextRenderer.instanceSymbols = null; // [];\n return TextRenderer;\n}(ASObject));\nexport { TextRenderer };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextFormatDisplay = /** @class */ (function (_super) {\n __extends(TextFormatDisplay, _super);\n function TextFormatDisplay() {\n var _this = _super.call(this) || this;\n // @todo\n Debug.throwPIR('playerglobals/text/TextFormatDisplay', 'constructor', '');\n return _this;\n }\n TextFormatDisplay.classInitializer = null;\n TextFormatDisplay.classSymbols = null;\n TextFormatDisplay.instanceSymbols = null;\n TextFormatDisplay.INLINE = 'inline';\n TextFormatDisplay.BLOCK = 'block';\n return TextFormatDisplay;\n}(ASObject));\nexport { TextFormatDisplay };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextExtent = /** @class */ (function (_super) {\n __extends(TextExtent, _super);\n function TextExtent(width, height, textFieldWidth, textFieldHeight, ascent, descent) {\n var _this = _super.call(this) || this;\n _this.width = +width;\n _this.height = +height;\n _this.textFieldWidth = +textFieldWidth;\n _this.textFieldHeight = +textFieldHeight;\n _this.ascent = +ascent;\n _this.descent = +descent;\n // @todo\n Debug.throwPIR('playerglobals/text/TextExtent', 'constructor', '');\n return _this;\n }\n return TextExtent;\n}(ASObject));\nexport { TextExtent };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TextDisplayMode = /** @class */ (function (_super) {\n __extends(TextDisplayMode, _super);\n function TextDisplayMode() {\n return _super.call(this) || this;\n }\n TextDisplayMode.classInitializer = null;\n TextDisplayMode.classSymbols = null;\n TextDisplayMode.instanceSymbols = null;\n TextDisplayMode.LCD = 'lcd';\n TextDisplayMode.CRT = 'crt';\n TextDisplayMode.DEFAULT = 'default';\n return TextDisplayMode;\n}(ASObject));\nexport { TextDisplayMode };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TextColorType = /** @class */ (function (_super) {\n __extends(TextColorType, _super);\n function TextColorType() {\n return _super.call(this) || this;\n }\n TextColorType.classInitializer = null;\n TextColorType.classSymbols = null;\n TextColorType.instanceSymbols = null;\n TextColorType.DARK_COLOR = 'dark';\n TextColorType.LIGHT_COLOR = 'light';\n return TextColorType;\n}(ASObject));\nexport { TextColorType };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar FontType = /** @class */ (function (_super) {\n __extends(FontType, _super);\n function FontType() {\n return _super.call(this) || this;\n }\n FontType.classInitializer = null;\n FontType.classSymbols = null;\n FontType.instanceSymbols = null;\n // JS -> AS Bindings\n FontType.EMBEDDED = 'embedded';\n FontType.EMBEDDED_CFF = 'embeddedCFF';\n FontType.DEVICE = 'device';\n return FontType;\n}(ASObject));\nexport { FontType };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar CSMSettings = /** @class */ (function (_super) {\n __extends(CSMSettings, _super);\n function CSMSettings(fontSize, insideCutoff, outsideCutoff) {\n var _this = _super.call(this) || this;\n _this.fontSize = +fontSize;\n _this.insideCutoff = +insideCutoff;\n _this.outsideCutoff = +outsideCutoff;\n // @todo\n Debug.throwPIR('playerglobals/text/CSMSettings', 'constructor', '');\n return _this;\n }\n CSMSettings.classInitializer = null;\n CSMSettings.classSymbols = null;\n CSMSettings.instanceSymbols = null; // [\"fontSize\", \"insideCutoff\", \"outsideCutoff\"];\n return CSMSettings;\n}(ASObject));\nexport { CSMSettings };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextLineMetrics = /** @class */ (function (_super) {\n __extends(TextLineMetrics, _super);\n /**\n * Creates a TextLineMetrics object. The TextLineMetrics object contains\n * information about the text metrics of a line of text in a text field.\n * Objects of this class are returned by the\n * away.entities.TextField.getLineMetrics() method.\n *\n * @param x The left position of the first character in pixels.\n * @param width The width of the text of the selected lines (not\n * necessarily the complete text) in pixels.\n * @param height The height of the text of the selected lines (not\n * necessarily the complete text) in pixels.\n * @param ascent The length from the baseline to the top of the line\n * height in pixels.\n * @param descent The length from the baseline to the bottom depth of\n * the line in pixels.\n * @param leading The measurement of the vertical distance between the\n * lines of text.\n */\n function TextLineMetrics(x, width, height, ascent, descent, leading) {\n if (x === void 0) { x = NaN; }\n if (width === void 0) { width = NaN; }\n if (height === void 0) { height = NaN; }\n if (ascent === void 0) { ascent = NaN; }\n if (descent === void 0) { descent = NaN; }\n if (leading === void 0) { leading = NaN; }\n var _this = _super.call(this) || this;\n // @todo\n Debug.throwPIR('playerglobals/text/TextLineMetrics', 'constructor', '');\n return _this;\n }\n return TextLineMetrics;\n}(ASObject));\nexport { TextLineMetrics };\n","import { __extends } from \"tslib\";\nimport { axCoerceString, ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextSnapshot = /** @class */ (function (_super) {\n __extends(TextSnapshot, _super);\n function TextSnapshot() {\n return _super.call(this) || this;\n }\n Object.defineProperty(TextSnapshot.prototype, \"charCount\", {\n // _charCount: number /*int*/;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'get charCount', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n TextSnapshot.prototype.findText = function (beginIndex /*int*/, textToFind, caseSensitive) {\n beginIndex = beginIndex | 0;\n textToFind = axCoerceString(textToFind);\n caseSensitive = !!caseSensitive;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'findText', '');\n return 0;\n };\n TextSnapshot.prototype.getSelected = function (beginIndex /*int*/, endIndex /*int*/) {\n beginIndex = beginIndex | 0;\n endIndex = endIndex | 0;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'getSelected', '');\n return false;\n };\n TextSnapshot.prototype.getSelectedText = function (includeLineEndings) {\n if (includeLineEndings === void 0) { includeLineEndings = false; }\n includeLineEndings = !!includeLineEndings;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'getSelectedText', '');\n return '';\n };\n TextSnapshot.prototype.getText = function (beginIndex /*int*/, endIndex /*int*/, includeLineEndings) {\n if (includeLineEndings === void 0) { includeLineEndings = false; }\n beginIndex = beginIndex | 0;\n endIndex = endIndex | 0;\n includeLineEndings = !!includeLineEndings;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'getText', '');\n return '';\n };\n TextSnapshot.prototype.getTextRunInfo = function (beginIndex /*int*/, endIndex /*int*/) {\n beginIndex = beginIndex | 0;\n endIndex = endIndex | 0;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'getTextRunInfo', '');\n return null;\n };\n TextSnapshot.prototype.hitTestTextNearPos = function (x, y, maxDistance) {\n if (maxDistance === void 0) { maxDistance = 0; }\n x = +x;\n y = +y;\n maxDistance = +maxDistance;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'hitTestTextNearPos', '');\n return 0;\n };\n TextSnapshot.prototype.setSelectColor = function (hexColor) {\n if (hexColor === void 0) { hexColor = 16776960; }\n hexColor = hexColor >>> 0;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'setSelectColor', '');\n };\n TextSnapshot.prototype.setSelected = function (beginIndex /*int*/, endIndex /*int*/, select) {\n beginIndex = beginIndex | 0;\n endIndex = endIndex | 0;\n select = !!select;\n // @todo\n Debug.throwPIR('playerglobals/text/TextSnapshot', 'setSelected', '');\n };\n // Called whenever the class is initialized.\n TextSnapshot.classInitializer = null;\n return TextSnapshot;\n}(ASObject));\nexport { TextSnapshot };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar CompositionAttributeRange = /** @class */ (function (_super) {\n __extends(CompositionAttributeRange, _super);\n function CompositionAttributeRange(relativeStart /*int*/, relativeEnd /*int*/, selected, converted) {\n relativeStart = relativeStart | 0;\n relativeEnd = relativeEnd | 0;\n selected = !!selected;\n converted = !!converted;\n return _super.call(this) || this;\n }\n // Called whenever the class is initialized.\n CompositionAttributeRange.classInitializer = null;\n // List of static symbols to link.\n CompositionAttributeRange.classSymbols = null; // [];\n // List of instance symbols to link.\n CompositionAttributeRange.instanceSymbols = null; // [\"relativeStart\", \"relativeEnd\", \"selected\", \"converted\"];\n return CompositionAttributeRange;\n}(ASObject));\nexport { CompositionAttributeRange };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar BreakOpportunity = /** @class */ (function (_super) {\n __extends(BreakOpportunity, _super);\n function BreakOpportunity() {\n return _super.call(this) || this;\n }\n BreakOpportunity.forceNativeConstructor = true;\n BreakOpportunity.forceNativeMethods = true;\n BreakOpportunity.AUTO = 'auto';\n BreakOpportunity.ANY = 'any';\n BreakOpportunity.NONE = 'none';\n BreakOpportunity.ALL = 'all';\n return BreakOpportunity;\n}(ASObject));\nexport { BreakOpportunity };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar CFFHinting = /** @class */ (function (_super) {\n __extends(CFFHinting, _super);\n function CFFHinting() {\n return _super.call(this) || this;\n }\n CFFHinting.forceNativeConstructor = true;\n CFFHinting.forceNativeMethods = true;\n CFFHinting.NONE = 'none';\n CFFHinting.HORIZONTAL_STEM = 'horizontalStem';\n return CFFHinting;\n}(ASObject));\nexport { CFFHinting };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nvar noLogs = true;\nvar contentElementIDs = 0;\nvar ContentElement = /** @class */ (function (_super) {\n __extends(ContentElement, _super);\n function ContentElement(elementFormat, eventMirror, textRotation) {\n if (elementFormat === void 0) { elementFormat = null; }\n if (eventMirror === void 0) { eventMirror = null; }\n if (textRotation === void 0) { textRotation = 'rotate0'; }\n var _this = _super.call(this) || this;\n _this._id = contentElementIDs++;\n _this._elementFormat = elementFormat;\n _this._eventMirror = eventMirror;\n _this._textRotation = axCoerceString(textRotation);\n noLogs || console.log('[ContentElement] constructor ' + _this._id\n + ' elementFormat', elementFormat\n + ' eventMirror', eventMirror\n + ' textRotation', textRotation);\n return _this;\n }\n ContentElement.prototype.setTextBlock = function (value) {\n noLogs || console.log('[ContentElement] ' + this._id + ' - setTextBlock', this._textBlock);\n this._textBlock = value;\n };\n ContentElement.prototype.setGroupElement = function (value) {\n noLogs || console.log('[ContentElement] ' + this._id + ' - setGroupElement', value);\n this._groupElement = value;\n };\n Object.defineProperty(ContentElement.prototype, \"textBlock\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get textBlock', this._textBlock);\n return this._textBlock;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContentElement.prototype, \"textBlockBeginIndex\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get textBlockBeginIndex', this._textBlockBeginIndex);\n return this._textBlockBeginIndex;\n },\n set: function (value) {\n noLogs || console.log('[ContentElement] ' + this._id + ' - set textBlock', this._textBlock);\n this._textBlockBeginIndex = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContentElement.prototype, \"elementFormat\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get elementFormat', this._elementFormat);\n return this._elementFormat;\n },\n set: function (value) {\n noLogs || console.log('[ContentElement] ' + this._id + ' - set elementFormat', value);\n this._elementFormat = value;\n if (this._textBlock)\n this._textBlock.setTextDataDirty();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContentElement.prototype, \"eventMirror\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get eventMirror', this._eventMirror);\n return this._eventMirror;\n },\n set: function (value) {\n noLogs || console.log('[ContentElement] ' + this._id + ' - set eventMirror', value);\n this._eventMirror = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContentElement.prototype, \"groupElement\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get groupElement', this._groupElement);\n return this._groupElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContentElement.prototype, \"rawText\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get rawText', this._rawText);\n return this._rawText;\n },\n set: function (value) {\n noLogs || console.log('[ContentElement] ' + this._id + ' - set rawText', value);\n this._rawText = value;\n this._text = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContentElement.prototype, \"text\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get text', this._text);\n return this._text;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContentElement.prototype, \"textRotation\", {\n get: function () {\n noLogs || console.log('[ContentElement] ' + this._id + ' - get textRotation', this._textRotation);\n return this._textRotation;\n },\n set: function (value) {\n noLogs || console.log('[ContentElement] ' + this._id + ' - set textRotation', value);\n this._textRotation = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n ContentElement.forceNativeConstructor = true;\n ContentElement.forceNativeMethods = true;\n // JS -> AS Bindings\n ContentElement.GRAPHIC_ELEMENT = 65007;\n return ContentElement;\n}(ASObject));\nexport { ContentElement };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar DigitCase = /** @class */ (function (_super) {\n __extends(DigitCase, _super);\n function DigitCase() {\n return _super.call(this) || this;\n }\n DigitCase.forceNativeConstructor = true;\n DigitCase.forceNativeMethods = true;\n // JS -> AS Bindings\n DigitCase.DEFAULT = 'default';\n DigitCase.LINING = 'lining';\n DigitCase.OLD_STYLE = 'oldStyle';\n return DigitCase;\n}(ASObject));\nexport { DigitCase };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar DigitWidth = /** @class */ (function (_super) {\n __extends(DigitWidth, _super);\n function DigitWidth() {\n return _super.call(this) || this;\n }\n DigitWidth.forceNativeConstructor = true;\n DigitWidth.forceNativeMethods = true;\n // JS -> AS Bindings\n DigitWidth.DEFAULT = 'default';\n DigitWidth.PROPORTIONAL = 'proportional';\n DigitWidth.TABULAR = 'tabular';\n return DigitWidth;\n}(ASObject));\nexport { DigitWidth };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextJustifier = /** @class */ (function (_super) {\n __extends(TextJustifier, _super);\n function TextJustifier(locale, lineJustification) {\n var _this = _super.call(this) || this;\n _this._locale = axCoerceString(locale);\n _this._lineJustification = axCoerceString(lineJustification);\n return _this;\n }\n TextJustifier.getJustifierForLocale = function (locale) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextJustifier', 'getJustifierForLocale', '');\n return null;\n };\n TextJustifier.prototype.clone = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextJustifier', 'clone', '');\n return null;\n };\n Object.defineProperty(TextJustifier.prototype, \"locale\", {\n get: function () {\n return this._locale;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextJustifier.prototype, \"lineJustification\", {\n get: function () {\n return this._lineJustification;\n },\n set: function (value) {\n this._lineJustification = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n TextJustifier.prototype.setLocale = function (value) {\n this._locale = axCoerceString(value);\n };\n TextJustifier.forceNativeConstructor = true;\n TextJustifier.forceNativeMethods = true;\n return TextJustifier;\n}(ASObject));\nexport { TextJustifier };\n","import { __extends } from \"tslib\";\nimport { axCoerceString } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nimport { TextJustifier } from './TextJustifier';\nvar EastAsianJustifier = /** @class */ (function (_super) {\n __extends(EastAsianJustifier, _super);\n function EastAsianJustifier(locale, lineJustification, justificationStyle) {\n if (locale === void 0) { locale = 'ja'; }\n if (lineJustification === void 0) { lineJustification = 'allButLast'; }\n if (justificationStyle === void 0) { justificationStyle = 'pushInKinsoku'; }\n locale = axCoerceString(locale);\n lineJustification = axCoerceString(lineJustification);\n justificationStyle = axCoerceString(justificationStyle);\n return _super.call(this, undefined, undefined) || this;\n }\n Object.defineProperty(EastAsianJustifier.prototype, \"justificationStyle\", {\n // AS -> JS Bindings\n // _justificationStyle: string;\n // _composeTrailingIdeographicSpaces: boolean;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/EastAsianJustifier', 'get justificationStyle', '');\n return null;\n },\n set: function (value) {\n value = axCoerceString(value);\n // @todo\n Debug.throwPIR('playerglobals/text/engine/EastAsianJustifier', 'set justificationStyle', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(EastAsianJustifier.prototype, \"composeTrailingIdeographicSpaces\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/EastAsianJustifier', 'get composeTrailingIdeographicSpaces', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/EastAsianJustifier', 'set composeTrailingIdeographicSpaces', '');\n },\n enumerable: false,\n configurable: true\n });\n EastAsianJustifier.forceNativeConstructor = true;\n EastAsianJustifier.forceNativeMethods = true;\n return EastAsianJustifier;\n}(TextJustifier));\nexport { EastAsianJustifier };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TextBaseline = /** @class */ (function (_super) {\n __extends(TextBaseline, _super);\n function TextBaseline() {\n return _super.call(this) || this;\n }\n TextBaseline.forceNativeConstructor = true;\n TextBaseline.forceNativeMethods = true;\n // JS -> AS Bindings\n TextBaseline.ROMAN = 'roman';\n TextBaseline.ASCENT = 'ascent';\n TextBaseline.DESCENT = 'descent';\n TextBaseline.IDEOGRAPHIC_TOP = 'ideographicTop';\n TextBaseline.IDEOGRAPHIC_CENTER = 'ideographicCenter';\n TextBaseline.IDEOGRAPHIC_BOTTOM = 'ideographicBottom';\n TextBaseline.USE_DOMINANT_BASELINE = 'useDominantBaseline';\n return TextBaseline;\n}(ASObject));\nexport { TextBaseline };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nimport { TextFormat, TextFormatAlign } from '@awayjs/scene';\nimport { FontLookUpMode } from '@awayjs/scene';\nimport { TextBaseline } from './TextBaseline';\nimport { Debug } from '@awayjs/core';\nvar noLogs = true;\nvar elementFormatIDs = 0;\nvar ElementFormat = /** @class */ (function (_super) {\n __extends(ElementFormat, _super);\n function ElementFormat(fontDescription, fontSize, color, alpha, textRotation, dominantBaseline, alignmentBaseline, baselineShift, kerning, trackingRight, trackingLeft, locale, breakOpportunity, digitCase, digitWidth, ligatureLevel, typographicCase) {\n if (fontDescription === void 0) { fontDescription = null; }\n if (fontSize === void 0) { fontSize = 12; }\n if (color === void 0) { color = 0; }\n if (alpha === void 0) { alpha = 1; }\n if (textRotation === void 0) { textRotation = 'auto'; }\n if (dominantBaseline === void 0) { dominantBaseline = 'roman'; }\n if (alignmentBaseline === void 0) { alignmentBaseline = 'useDominantBaseline'; }\n if (baselineShift === void 0) { baselineShift = 0; }\n if (kerning === void 0) { kerning = 'on'; }\n if (trackingRight === void 0) { trackingRight = 0; }\n if (trackingLeft === void 0) { trackingLeft = 0; }\n if (locale === void 0) { locale = 'en'; }\n if (breakOpportunity === void 0) { breakOpportunity = 'auto'; }\n if (digitCase === void 0) { digitCase = 'default'; }\n if (digitWidth === void 0) { digitWidth = 'default'; }\n if (ligatureLevel === void 0) { ligatureLevel = 'common'; }\n if (typographicCase === void 0) { typographicCase = 'default'; }\n var _this = _super.call(this) || this;\n _this._id = elementFormatIDs++;\n noLogs || console.log('[ElementFormat] ' + _this._id + ' constructor', 'fontDescription', fontDescription, 'fontSize', fontSize, 'color', color, 'alpha', alpha, 'textRotation', textRotation, 'dominantBaseline', dominantBaseline, 'alignmentBaseline', alignmentBaseline, 'baselineShift', baselineShift, 'kerning', kerning, 'trackingRight', trackingRight, 'trackingLeft', trackingLeft, 'locale', locale, 'breakOpportunity', breakOpportunity, 'digitCase', digitCase, 'digitWidth', digitWidth, 'ligatureLevel', ligatureLevel, 'typographicCase', typographicCase);\n _this._fontDescription = fontDescription;\n _this._fontSize = +fontSize;\n _this._color = color >>> 0;\n _this._alpha = +alpha;\n _this._textRotation = axCoerceString(textRotation);\n _this._dominantBaseline = axCoerceString(dominantBaseline);\n _this._alignmentBaseline = axCoerceString(alignmentBaseline);\n _this._baselineShift = +baselineShift;\n _this._kerning = axCoerceString(kerning);\n _this._trackingRight = +trackingRight;\n _this._trackingLeft = +trackingLeft;\n _this._locale = axCoerceString(locale);\n _this._breakOpportunity = axCoerceString(breakOpportunity);\n _this._digitCase = axCoerceString(digitCase);\n _this._digitWidth = axCoerceString(digitWidth);\n _this._ligatureLevel = axCoerceString(ligatureLevel);\n _this._typographicCase = axCoerceString(typographicCase);\n return _this;\n }\n ElementFormat.prototype.createAwayTextformat = function () {\n var _a, _b, _c;\n var awayTextFormat = new TextFormat();\n awayTextFormat.size = this._fontSize;\n awayTextFormat.color = this._color;\n awayTextFormat.fontLookUpMode = (this._fontDescription ?\n this._fontDescription.fontLookup : FontLookUpMode.DEVICE);\n awayTextFormat.font_name = (_a = this._fontDescription) === null || _a === void 0 ? void 0 : _a.fontName;\n awayTextFormat.italic = ((_b = this._fontDescription) === null || _b === void 0 ? void 0 : _b.fontPosture) == 'italic';\n awayTextFormat.bold = ((_c = this._fontDescription) === null || _c === void 0 ? void 0 : _c.fontWeight) == 'bold';\n awayTextFormat.align = TextFormatAlign.LEFT;\n if (this._baselineShift != 0) {\n console.warn('baselineshift is not 0', this._baselineShift);\n }\n if (this._alignmentBaseline != TextBaseline.USE_DOMINANT_BASELINE) {\n console.warn('_alignmentBaseline is not USE_DOMINANT_BASELINE', this._alignmentBaseline);\n }\n if (this._dominantBaseline != TextBaseline.ROMAN) {\n console.warn('_dominantBaseline is not ROMAN', this._dominantBaseline);\n }\n if (this._trackingRight != 0) {\n console.warn('_trackingRight is not 0', this._trackingRight);\n }\n if (this._trackingLeft != 0) {\n console.warn('_trackingLeft is not 0', this._trackingLeft);\n }\n if (this._alpha != 1) {\n console.warn('_alpha is not 1', this._alpha);\n }\n if (this._digitCase != 'default') {\n console.warn('_digitCase is not \"default\"', this._digitCase);\n }\n if (this._digitWidth != 'default') {\n console.warn('_digitWidth is not \"default\"', this._digitWidth);\n }\n if (this._typographicCase != 'default') {\n console.warn('_typographicCase is not \"default\"', this._typographicCase);\n }\n if (this._ligatureLevel != 'common') {\n console.warn('_ligatureLevel is not \"common\"', this._ligatureLevel);\n }\n noLogs || console.log('[ElementFormat] ' + this._id + ' createAwayTextformat', awayTextFormat.id, 'fontDescription', this._fontDescription, 'fontSize', this._fontSize, 'color', this._color, 'alpha', this._alpha, 'textRotation', this._textRotation, 'dominantBaseline', this._dominantBaseline, 'alignmentBaseline', this._alignmentBaseline, 'baselineShift', this._baselineShift, 'kerning', this._kerning, 'trackingRight', this._trackingRight, 'trackingLeft', this._trackingLeft, 'locale', this._locale, 'breakOpportunity', this._breakOpportunity, 'digitCase', this._digitCase, 'digitWidth', this._digitWidth, 'ligatureLevel', this._ligatureLevel, 'typographicCase', this._typographicCase);\n return awayTextFormat;\n };\n // AS -> JS Bindings\n ElementFormat.prototype.getBaseline = function () {\n if (this._alignmentBaseline == TextBaseline.USE_DOMINANT_BASELINE) {\n return this._dominantBaseline;\n }\n return this._alignmentBaseline;\n };\n Object.defineProperty(ElementFormat.prototype, \"alignmentBaseline\", {\n get: function () {\n return this._alignmentBaseline;\n },\n set: function (alignmentBaseline) {\n this._alignmentBaseline = axCoerceString(alignmentBaseline);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"alpha\", {\n get: function () {\n return this._alpha;\n },\n set: function (value) {\n this._alpha = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"baselineShift\", {\n get: function () {\n return this._baselineShift;\n },\n set: function (value) {\n this._baselineShift = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"breakOpportunity\", {\n get: function () {\n return this._breakOpportunity;\n },\n set: function (opportunityType) {\n this._breakOpportunity = axCoerceString(opportunityType);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"color\", {\n get: function () {\n return this._color;\n },\n set: function (value /*uint*/) {\n this._color = value >>> 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"dominantBaseline\", {\n get: function () {\n return this._dominantBaseline;\n },\n set: function (dominantBaseline) {\n this._dominantBaseline = axCoerceString(dominantBaseline);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"fontDescription\", {\n get: function () {\n return this._fontDescription;\n },\n set: function (value) {\n this._fontDescription = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"digitCase\", {\n get: function () {\n return this._digitCase;\n },\n set: function (digitCaseType) {\n this._digitCase = axCoerceString(digitCaseType);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"digitWidth\", {\n get: function () {\n return this._digitWidth;\n },\n set: function (digitWidthType) {\n this._digitWidth = axCoerceString(digitWidthType);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"ligatureLevel\", {\n get: function () {\n return this._ligatureLevel;\n },\n set: function (ligatureLevelType) {\n this._ligatureLevel = axCoerceString(ligatureLevelType);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"fontSize\", {\n get: function () {\n return this._fontSize;\n },\n set: function (value) {\n this._fontSize = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"kerning\", {\n get: function () {\n return this._kerning;\n },\n set: function (value) {\n this._kerning = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"locale\", {\n get: function () {\n return this._locale;\n },\n set: function (value) {\n this._locale = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"textRotation\", {\n get: function () {\n return this._textRotation;\n },\n set: function (value) {\n this._textRotation = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"trackingRight\", {\n get: function () {\n return this._trackingRight;\n },\n set: function (value) {\n this._trackingRight = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"trackingLeft\", {\n get: function () {\n return this._trackingLeft;\n },\n set: function (value) {\n this._trackingLeft = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"typographicCase\", {\n get: function () {\n return this._typographicCase;\n },\n set: function (typographicCaseType) {\n this._typographicCase = axCoerceString(typographicCaseType);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ElementFormat.prototype, \"locked\", {\n get: function () {\n return this._locked;\n },\n set: function (value) {\n this._locked = value;\n },\n enumerable: false,\n configurable: true\n });\n ElementFormat.prototype.getFontMetrics = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/ElementFormat', 'set getFontMetrics', '');\n return null;\n };\n ElementFormat.forceNativeConstructor = true;\n ElementFormat.forceNativeMethods = true;\n return ElementFormat;\n}(ASObject));\nexport { ElementFormat };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar FontDescription = /** @class */ (function (_super) {\n __extends(FontDescription, _super);\n function FontDescription(fontName, fontWeight, fontPosture, fontLookup, renderingMode, cffHinting) {\n if (fontName === void 0) { fontName = '_serif'; }\n if (fontWeight === void 0) { fontWeight = 'normal'; }\n if (fontPosture === void 0) { fontPosture = 'normal'; }\n if (fontLookup === void 0) { fontLookup = 'device'; }\n if (renderingMode === void 0) { renderingMode = 'cff'; }\n if (cffHinting === void 0) { cffHinting = 'horizontalStem'; }\n var _this = _super.call(this) || this;\n _this._fontName = axCoerceString(fontName);\n _this._fontWeight = axCoerceString(fontWeight);\n _this._fontPosture = axCoerceString(fontPosture);\n _this._fontLookup = axCoerceString(fontLookup);\n _this._renderingMode = axCoerceString(renderingMode);\n _this._cffHinting = axCoerceString(cffHinting);\n return _this;\n }\n // AS -> JS Bindings\n FontDescription.isFontCompatible = function (fontName, fontWeight, fontPosture) {\n fontName = axCoerceString(fontName);\n fontWeight = axCoerceString(fontWeight);\n fontPosture = axCoerceString(fontPosture);\n // @todo\n Debug.throwPIR('playerglobals/text/engine/FontDescription', 'static isFontCompatible', '');\n return null;\n };\n FontDescription.isDeviceFontCompatible = function (fontName, fontWeight, fontPosture) {\n fontName = axCoerceString(fontName);\n fontWeight = axCoerceString(fontWeight);\n fontPosture = axCoerceString(fontPosture);\n // @todo\n Debug.throwPIR('playerglobals/text/engine/FontDescription', 'static isDeviceFontCompatible', '');\n return null;\n };\n Object.defineProperty(FontDescription.prototype, \"renderingMode\", {\n get: function () {\n return this._renderingMode;\n },\n set: function (value) {\n this._renderingMode = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FontDescription.prototype, \"fontLookup\", {\n get: function () {\n return this._fontLookup;\n },\n set: function (value) {\n this._fontLookup = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FontDescription.prototype, \"fontName\", {\n get: function () {\n return this._fontName;\n },\n set: function (value) {\n this._fontName = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FontDescription.prototype, \"fontPosture\", {\n get: function () {\n return this._fontPosture;\n },\n set: function (value) {\n this._fontPosture = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FontDescription.prototype, \"fontWeight\", {\n get: function () {\n return this._fontWeight;\n },\n set: function (value) {\n this._fontWeight = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FontDescription.prototype, \"cffHinting\", {\n get: function () {\n return this._cffHinting;\n },\n set: function (value) {\n this._cffHinting = axCoerceString(value);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FontDescription.prototype, \"locked\", {\n get: function () {\n return this._locked;\n },\n set: function (value) {\n this._locked = value;\n },\n enumerable: false,\n configurable: true\n });\n FontDescription.forceNativeConstructor = true;\n FontDescription.forceNativeMethods = true;\n return FontDescription;\n}(ASObject));\nexport { FontDescription };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar FontLookup = /** @class */ (function (_super) {\n __extends(FontLookup, _super);\n function FontLookup() {\n return _super.call(this) || this;\n }\n FontLookup.forceNativeConstructor = true;\n FontLookup.forceNativeMethods = true;\n // JS -> AS Bindings\n FontLookup.DEVICE = 'device';\n FontLookup.EMBEDDED_CFF = 'embeddedCFF';\n return FontLookup;\n}(ASObject));\nexport { FontLookup };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar FontMetrics = /** @class */ (function (_super) {\n __extends(FontMetrics, _super);\n function FontMetrics(emBox, strikethroughOffset, strikethroughThickness, underlineOffset, underlineThickness, subscriptOffset, subscriptScale, superscriptOffset, superscriptScale, lineGap) {\n if (lineGap === void 0) { lineGap = 0; }\n var _this = _super.call(this) || this;\n _this.emBox = emBox;\n _this.strikethroughOffset = +strikethroughOffset;\n _this.strikethroughThickness = +strikethroughThickness;\n _this.underlineOffset = +underlineOffset;\n _this.underlineThickness = +underlineThickness;\n _this.subscriptOffset = +subscriptOffset;\n _this.subscriptScale = +subscriptScale;\n _this.superscriptOffset = +superscriptOffset;\n _this.superscriptScale = +superscriptScale;\n _this.lineGap = +lineGap;\n return _this;\n }\n FontMetrics.forceNativeConstructor = true;\n FontMetrics.forceNativeMethods = true;\n return FontMetrics;\n}(ASObject));\nexport { FontMetrics };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar FontPosture = /** @class */ (function (_super) {\n __extends(FontPosture, _super);\n function FontPosture() {\n return _super.call(this) || this;\n }\n FontPosture.forceNativeConstructor = true;\n FontPosture.forceNativeMethods = true;\n // JS -> AS Bindings\n FontPosture.NORMAL = 'normal';\n FontPosture.ITALIC = 'italic';\n return FontPosture;\n}(ASObject));\nexport { FontPosture };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar FontWeight = /** @class */ (function (_super) {\n __extends(FontWeight, _super);\n function FontWeight() {\n return _super.call(this) || this;\n }\n FontWeight.forceNativeConstructor = true;\n FontWeight.forceNativeMethods = true;\n // JS -> AS Bindings\n FontWeight.NORMAL = 'normal';\n FontWeight.BOLD = 'bold';\n return FontWeight;\n}(ASObject));\nexport { FontWeight };\n","import { __extends } from \"tslib\";\nimport { axCoerceString } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nimport { ContentElement } from './ContentElement';\nvar GraphicElement = /** @class */ (function (_super) {\n __extends(GraphicElement, _super);\n function GraphicElement(graphic, elementWidth, elementHeight, elementFormat, eventMirror, textRotation) {\n if (graphic === void 0) { graphic = null; }\n if (elementWidth === void 0) { elementWidth = 15; }\n if (elementHeight === void 0) { elementHeight = 15; }\n if (elementFormat === void 0) { elementFormat = null; }\n if (eventMirror === void 0) { eventMirror = null; }\n if (textRotation === void 0) { textRotation = 'rotate0'; }\n var _this = _super.call(this, undefined, undefined, undefined) || this;\n _this.graphic = graphic;\n _this.elementWidth = +elementWidth;\n _this.elementHeight = +elementHeight;\n _this.elementFormat = elementFormat;\n _this.eventMirror = eventMirror;\n _this.textRotation = axCoerceString(textRotation);\n return _this;\n }\n Object.defineProperty(GraphicElement.prototype, \"graphic\", {\n // JS -> AS Bindings\n // AS -> JS Bindings\n // _graphic: flash.display.DisplayObject;\n // _elementHeight: number;\n // _elementWidth: number;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GraphicElement', 'get graphic', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GraphicElement', 'set graphic', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GraphicElement.prototype, \"elementHeight\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GraphicElement', 'get elementHeight', '');\n return null;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GraphicElement', 'set elementHeight', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GraphicElement.prototype, \"elementWidth\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GraphicElement', 'get elementWidth', '');\n return null;\n },\n set: function (value) {\n value = +value;\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GraphicElement', 'set elementWidth', '');\n },\n enumerable: false,\n configurable: true\n });\n GraphicElement.forceNativeConstructor = true;\n GraphicElement.forceNativeMethods = true;\n return GraphicElement;\n}(ContentElement));\nexport { GraphicElement };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar JustificationStyle = /** @class */ (function (_super) {\n __extends(JustificationStyle, _super);\n function JustificationStyle() {\n return _super.call(this) || this;\n }\n JustificationStyle.forceNativeConstructor = true;\n JustificationStyle.forceNativeMethods = true;\n // JS -> AS Bindings\n JustificationStyle.PUSH_IN_KINSOKU = 'pushInKinsoku';\n JustificationStyle.PUSH_OUT_ONLY = 'pushOutOnly';\n JustificationStyle.PRIORITIZE_LEAST_ADJUSTMENT = 'prioritizeLeastAdjustment';\n return JustificationStyle;\n}(ASObject));\nexport { JustificationStyle };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar Kerning = /** @class */ (function (_super) {\n __extends(Kerning, _super);\n function Kerning() {\n return _super.call(this) || this;\n }\n Kerning.forceNativeConstructor = true;\n Kerning.forceNativeMethods = true;\n // JS -> AS Bindings\n Kerning.ON = 'on';\n Kerning.OFF = 'off';\n Kerning.AUTO = 'auto';\n return Kerning;\n}(ASObject));\nexport { Kerning };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar LigatureLevel = /** @class */ (function (_super) {\n __extends(LigatureLevel, _super);\n function LigatureLevel() {\n return _super.call(this) || this;\n }\n LigatureLevel.forceNativeConstructor = true;\n LigatureLevel.forceNativeMethods = true;\n // JS -> AS Bindings\n LigatureLevel.NONE = 'none';\n LigatureLevel.MINIMUM = 'minimum';\n LigatureLevel.COMMON = 'common';\n LigatureLevel.UNCOMMON = 'uncommon';\n LigatureLevel.EXOTIC = 'exotic';\n return LigatureLevel;\n}(ASObject));\nexport { LigatureLevel };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar LineJustification = /** @class */ (function (_super) {\n __extends(LineJustification, _super);\n function LineJustification() {\n return _super.call(this) || this;\n }\n LineJustification.forceNativeConstructor = true;\n LineJustification.forceNativeMethods = true;\n // JS -> AS Bindings\n LineJustification.UNJUSTIFIED = 'unjustified';\n LineJustification.ALL_BUT_LAST = 'allButLast';\n LineJustification.ALL_INCLUDING_LAST = 'allIncludingLast';\n LineJustification.ALL_BUT_MANDATORY_BREAK = 'allButMandatoryBreak';\n return LineJustification;\n}(ASObject));\nexport { LineJustification };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar RenderingMode = /** @class */ (function (_super) {\n __extends(RenderingMode, _super);\n function RenderingMode() {\n return _super.call(this) || this;\n }\n RenderingMode.forceNativeConstructor = true;\n RenderingMode.forceNativeMethods = true;\n // JS -> AS Bindings\n RenderingMode.NORMAL = 'normal';\n RenderingMode.CFF = 'cff';\n return RenderingMode;\n}(ASObject));\nexport { RenderingMode };\n","import { __extends } from \"tslib\";\nimport { TextJustifier } from './TextJustifier';\nvar SpaceJustifier = /** @class */ (function (_super) {\n __extends(SpaceJustifier, _super);\n function SpaceJustifier(locale, lineJustification, letterSpacing) {\n if (locale === void 0) { locale = 'en'; }\n if (lineJustification === void 0) { lineJustification = 'unjustified'; }\n if (letterSpacing === void 0) { letterSpacing = false; }\n var _this = _super.call(this, locale, lineJustification) || this;\n _this._letterSpacing = !!letterSpacing;\n return _this;\n }\n Object.defineProperty(SpaceJustifier.prototype, \"letterSpacing\", {\n // AS -> JS Bindings\n get: function () {\n return this._letterSpacing;\n },\n set: function (value) {\n this._letterSpacing = !!value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SpaceJustifier.prototype, \"minimumSpacing\", {\n get: function () {\n return this._minimumSpacing;\n },\n set: function (value) {\n this._minimumSpacing = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SpaceJustifier.prototype, \"optimumSpacing\", {\n get: function () {\n return this._optimumSpacing;\n },\n set: function (value) {\n this._optimumSpacing = +value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SpaceJustifier.prototype, \"maximumSpacing\", {\n get: function () {\n return this._maximumSpacing;\n },\n set: function (value) {\n this._maximumSpacing = +value;\n },\n enumerable: false,\n configurable: true\n });\n SpaceJustifier.forceNativeConstructor = true;\n SpaceJustifier.forceNativeMethods = true;\n return SpaceJustifier;\n}(TextJustifier));\nexport { SpaceJustifier };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TabAlignment = /** @class */ (function (_super) {\n __extends(TabAlignment, _super);\n function TabAlignment() {\n return _super.call(this) || this;\n }\n TabAlignment.forceNativeConstructor = true;\n TabAlignment.forceNativeMethods = true;\n // JS -> AS Bindings\n TabAlignment.START = 'start';\n TabAlignment.CENTER = 'center';\n TabAlignment.END = 'end';\n TabAlignment.DECIMAL = 'decimal';\n return TabAlignment;\n}(ASObject));\nexport { TabAlignment };\n","import { __extends } from \"tslib\";\nimport { ASObject, axCoerceString } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TabStop = /** @class */ (function (_super) {\n __extends(TabStop, _super);\n function TabStop(alignment, position, decimalAlignmentToken) {\n if (alignment === void 0) { alignment = 'start'; }\n if (position === void 0) { position = 0; }\n if (decimalAlignmentToken === void 0) { decimalAlignmentToken = ''; }\n alignment = axCoerceString(alignment);\n position = +position;\n decimalAlignmentToken = axCoerceString(decimalAlignmentToken);\n return _super.call(this) || this;\n }\n Object.defineProperty(TabStop.prototype, \"alignment\", {\n // JS -> AS Bindings\n // AS -> JS Bindings\n // _alignment: string;\n // _position: number;\n // _decimalAlignmentToken: string;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TabStop', 'get alignment', '');\n return;\n },\n set: function (value) {\n value = axCoerceString(value);\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TabStop', 'set alignment', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TabStop.prototype, \"position\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TabStop', 'get position', '');\n return;\n },\n set: function (value) {\n value = +value;\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TabStop', 'set position', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TabStop.prototype, \"decimalAlignmentToken\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TabStop', 'get decimalAlignmentToken', '');\n return;\n },\n set: function (value) {\n value = axCoerceString(value);\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TabStop', 'set decimalAlignmentToken', '');\n },\n enumerable: false,\n configurable: true\n });\n TabStop.forceNativeConstructor = true;\n TabStop.forceNativeMethods = true;\n return TabStop;\n}(ASObject));\nexport { TabStop };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TextLineCreationResult = /** @class */ (function (_super) {\n __extends(TextLineCreationResult, _super);\n function TextLineCreationResult() {\n return _super.call(this) || this;\n }\n TextLineCreationResult.forceNativeConstructor = true;\n TextLineCreationResult.forceNativeMethods = true;\n // JS -> AS Bindings\n TextLineCreationResult.SUCCESS = 'success';\n TextLineCreationResult.EMERGENCY = 'emergency';\n TextLineCreationResult.COMPLETE = 'complete';\n TextLineCreationResult.INSUFFICIENT_WIDTH = 'insufficientWidth';\n return TextLineCreationResult;\n}(ASObject));\nexport { TextLineCreationResult };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nimport { TextFormat } from '@awayjs/scene';\nimport { TextBaseline } from './TextBaseline';\nimport { TextLineCreationResult } from './TextLineCreationResult';\nvar noLogs = true;\nvar textBlockIDs = 0;\nvar textLinePool = [];\nvar TextBlock = /** @class */ (function (_super) {\n __extends(TextBlock, _super);\n function TextBlock(content, tabStops, textJustifier, lineRotation, baselineZero, bidiLevel, applyNonLinearFontScaling, baselineFontDescription, baselineFontSize) {\n if (content === void 0) { content = null; }\n if (tabStops === void 0) { tabStops = null; }\n if (textJustifier === void 0) { textJustifier = null; }\n if (lineRotation === void 0) { lineRotation = 'rotate0'; }\n if (baselineZero === void 0) { baselineZero = 'roman'; }\n if (bidiLevel === void 0) { bidiLevel = 0; }\n if (applyNonLinearFontScaling === void 0) { applyNonLinearFontScaling = true; }\n if (baselineFontDescription === void 0) { baselineFontDescription = null; }\n if (baselineFontSize === void 0) { baselineFontSize = 12; }\n var _this = _super.call(this) || this;\n _this._id = textBlockIDs++;\n noLogs || console.log('[TextBlock] ' + _this._id + ' - new textblock ', content, tabStops, textJustifier, lineRotation, baselineZero, bidiLevel, applyNonLinearFontScaling, baselineFontDescription, baselineFontSize);\n _this._content = content;\n if (content) {\n _this._content.setTextBlock(_this);\n }\n _this._tabStops = tabStops;\n _this._textJustifier = textJustifier;\n _this._lineRotation = lineRotation;\n _this._baselineZero = baselineZero;\n _this._bidiLevel = bidiLevel;\n _this._applyNonLinearFontScaling = applyNonLinearFontScaling;\n _this._baselineFontDescription = baselineFontDescription;\n _this._baselineFontSize = baselineFontSize;\n _this._textLines = [];\n _this._creationResult = null;\n return _this;\n }\n TextBlock.prototype.setTextDataDirty = function () {\n this._textData = null;\n };\n TextBlock.prototype._convertContentToTextData = function () {\n if (this._textData) {\n return this._textData;\n }\n this._textData = {\n text: '',\n formats: [],\n elementFormats: [],\n formatIndices: [],\n processedIdx: 0,\n creationResult: null,\n spaces: {},\n lineBreaks: {},\n charWidths: []\n };\n this.resolveGroupElements(this._content);\n if (this._textData.formatIndices[this._textData.formatIndices.length - 1] != this._textData.text.length)\n this._textData.formatIndices.push(this._textData.text.length);\n var formats = this._textData.formats;\n var formatsIndicies = this._textData.formatIndices;\n /*if (this._textData.text.charCodeAt(this._textData.text.length - 1) == 8233) {\n this._textData.text = this._textData.text.substring(0, this._textData.text.length - 1);\n }*/\n var text = this._textData.text;\n this._content.rawText = text;\n var spaces = this._textData.spaces;\n var lineBreaks = this._textData.lineBreaks;\n var charWidths = this._textData.charWidths;\n var c = 0;\n var form_len = formats.length;\n for (var f = 0; f < form_len; f++) {\n var tf = formats[f];\n tf.font_table.initFontSize(tf.size);\n var lastChar = formatsIndicies[f];\n for (c; c <= lastChar; c++) {\n var char_code = text.charCodeAt(c);\n var isLineBreak = char_code === 10 /* CHAR_CODES.LF */ || char_code === 8233;\n if (isLineBreak) {\n lineBreaks[c] = 1;\n charWidths[charWidths.length] = 0;\n }\n else {\n charWidths[charWidths.length] = tf.font_table.getCharWidth(char_code.toString());\n var isSpace = char_code == 9 /* CHAR_CODES.TAB */ || char_code == 32 /* CHAR_CODES.SPACE */;\n if (isSpace) {\n spaces[c] = true;\n }\n }\n }\n }\n };\n TextBlock.prototype.resolveGroupElements = function (content) {\n if (content.axClassName == 'flash.text.engine.TextElement') {\n var text = content.text;\n var elementFormat = content.elementFormat;\n var tf = void 0;\n if (elementFormat)\n tf = elementFormat.createAwayTextformat();\n else {\n tf = new TextFormat();\n }\n this._textData.text += text ? text : '';\n this._textData.formats.push(tf);\n this._textData.elementFormats.push(elementFormat);\n this._textData.formatIndices.push(this._textData.text.length);\n }\n if (content.axClassName == 'flash.text.engine.GroupElement') {\n var group = content;\n //noLogs || console.log('resolve GroupElement', group.elementCount);\n for (var i = 0; i < group.elementCount; i++) {\n this.resolveGroupElements(group.getElementAt(i));\n }\n }\n };\n TextBlock.prototype.createTextLine = function (previousLine, width, lineOffset, fitSomething) {\n if (!this._textData) {\n this._textLines = [];\n this._convertContentToTextData();\n }\n if (this._tabStops && this._tabStops.buffer.length > 0) {\n console.warn('this._tabStops is not []', this._tabStops);\n }\n if (this._textJustifier && this._textJustifier.lineJustification != 'unjustified') {\n console.warn('lineJustification is not unjustified', this._textJustifier.lineJustification);\n }\n if (this._textJustifier && this._textJustifier.letterSpacing != 0) {\n console.warn('letterSpacing is not 0', this._textJustifier.letterSpacing);\n }\n if (this._baselineZero != TextBaseline.ROMAN) {\n console.warn('_baselineZero is not \"roman\"', this._baselineZero);\n }\n noLogs || console.log('[TextBlock] ' + this._id + ' - text', this._textData.text);\n noLogs || console.log('[TextBlock] ' + this._id + ' - createTextLine', '\\n\t\twidth', width, '\\n\t\tpreviousLine', previousLine, '\\n\t\tlineOffset', lineOffset, '\\n\t\tfitSomething', fitSomething, '\\n\t\tprocessedIdx', this._textData.processedIdx);\n var text = this._textData.text;\n var processedIdx = this._textData.processedIdx;\n if (processedIdx > text.length) {\n this._creationResult = TextLineCreationResult.COMPLETE;\n noLogs || console.log('[TextBlock] ' + this._id + ' - all textlines already complete', processedIdx, text.length);\n return null;\n }\n var formats = this._textData.formats;\n var elementFormats = this._textData.elementFormats;\n var formatsIndicies = this._textData.formatIndices;\n var spaces = this._textData.spaces;\n var lineBreaks = this._textData.lineBreaks;\n var charWidths = this._textData.charWidths;\n var form_len = formats.length;\n var c = processedIdx;\n var newText = '';\n var newWord = '';\n var newCharCnt = 0;\n var newFormats = [];\n var newElementFormats = [];\n var newFormatindices = [];\n var result = TextLineCreationResult.EMERGENCY; // is valid if its a linebreak or at least one word that fits\n var textWidth = 0;\n var defaultFormat;\n var defaultElementFormat;\n loop1: for (var f = 0; f < form_len; f++) {\n if (processedIdx > formatsIndicies[f]) {\n continue;\n }\n var format = formats[f];\n defaultFormat = format;\n newFormats[newFormats.length] = format;\n newElementFormats[newElementFormats.length] = elementFormats[f];\n defaultElementFormat = elementFormats[f];\n newFormatindices[newFormatindices.length] = 0;\n var lastChar = formatsIndicies[f];\n for (c; c <= lastChar; c++) {\n if (lineBreaks[c] === 1) {\n noLogs || console.log('lineBreaks', result, c, text[c]);\n newText += newWord;\n newCharCnt += newWord.length + 1;\n result = TextLineCreationResult.SUCCESS;\n this._textData.processedIdx = c;\n // remove the linebreak marker so we not stuck in infinite loop\n lineBreaks[c] = 2;\n break loop1;\n }\n if (spaces[c]) {\n noLogs || console.log('space', result, c, text[c], newWord);\n result = TextLineCreationResult.SUCCESS;\n newText += newWord;\n newCharCnt += newWord.length;\n newWord = '';\n this._textData.processedIdx = c;\n }\n if (newWord.length == 1 &&\n (newWord.charCodeAt(0) == 32 /* CHAR_CODES.SPACE */ || newWord.charCodeAt(0) == 9 /* CHAR_CODES.TAB */)) {\n result = TextLineCreationResult.SUCCESS;\n newText += newWord;\n newCharCnt += newWord.length;\n newWord = '';\n this._textData.processedIdx = c;\n }\n textWidth += charWidths[c];\n if (textWidth > width - 2) {\n noLogs || console.log('text is to wide', 'textWidth', textWidth, 'width', width, newText, result, text[c], newWord);\n if (result == TextLineCreationResult.SUCCESS) {\n break loop1;\n }\n newText += newWord;\n newCharCnt += newWord.length;\n this._textData.processedIdx = c;\n break loop1;\n }\n if (c == text.length) {\n newText += newWord;\n newCharCnt += newWord.length;\n this._textData.processedIdx = c + 1;\n break loop1;\n }\n if (!lineBreaks[c]) {\n newWord += text[c];\n }\n else {\n newWord += text[c];\n processedIdx++;\n }\n }\n newFormatindices[newFormatindices.length - 1] = newText.length + newWord.length - 1;\n }\n newFormatindices[newFormatindices.length - 1] = newText.length;\n if (this._textData.processedIdx >= text.length) {\n noLogs || console.log('[TextBlock] ' + this._id + ' - all text processed', this._textData.processedIdx, text.length);\n this._textData.processedIdx++;\n result = TextLineCreationResult.COMPLETE;\n }\n noLogs || console.log('[TextBlock] ' + this._id + ' - textline prepared', this._textData.processedIdx, \"\\\"\".concat(newText, \"\\\"\"));\n noLogs || console.log('[TextBlock] ' + this._id + ' - all text length', text.length, 'newCharCnt', newCharCnt, 'processedIdx', processedIdx);\n //this._textData.processedIdx = text.length + 1;\n if (newFormats.length == 0) {\n newFormats[0] = defaultFormat;\n newElementFormats[0] = defaultElementFormat;\n }\n var textLine;\n for (var c_1 = 0; c_1 < textLinePool.length; c_1++) {\n if (!textLinePool[c_1].parent && textLinePool[c_1].free) {\n textLine = textLinePool[c_1];\n break;\n }\n }\n if (textLine) {\n textLine.setPreviousLine(null);\n textLine.setNextLine(null);\n textLine['$BguserData'] = null;\n textLine.free = false;\n textLine.reUseTextLine(previousLine, width, lineOffset, fitSomething, newText, newFormats, newFormatindices, processedIdx, newCharCnt, newElementFormats);\n }\n else {\n textLine = new this.sec.flash.text.engine.TextLine(previousLine, width, lineOffset, fitSomething, newText, newFormats, newFormatindices, processedIdx, newCharCnt, newElementFormats);\n }\n this._creationResult = result;\n textLine.setTextBlock(this);\n this._textLines.push(textLine);\n return textLine;\n };\n TextBlock.prototype.recreateTextLine = function (textLine, previousLine, width, lineOffset, fitSomething) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'recreateTextLine', '');\n return new this.sec.flash.text.engine.TextLine();\n };\n Object.defineProperty(TextBlock.prototype, \"textLineCreationResult\", {\n get: function () {\n noLogs || console.log('[TextBlock] ' + this._id + ' - textLineCreationResult', this._creationResult);\n return this._creationResult;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"applyNonLinearFontScaling\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'get applyNonLinearFontScaling', '');\n return this._applyNonLinearFontScaling;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'set applyNonLinearFontScaling', '');\n this._applyNonLinearFontScaling = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"baselineFontDescription\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'get baselineFontDescription', '');\n return this._baselineFontDescription;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'set baselineFontDescription', '');\n this._baselineFontDescription = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"baselineFontSize\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'get baselineFontSize', '');\n return this._baselineFontSize;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'set baselineFontSize', '');\n this._baselineFontSize = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"baselineZero\", {\n get: function () {\n noLogs || console.log('[TextBlock] ' + this._id + ' - get baselineZero', this._baselineZero);\n return this._baselineZero;\n },\n set: function (value) {\n noLogs || console.log('[TextBlock] ' + this._id + ' - set baselineZero', value);\n this._baselineZero = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"content\", {\n get: function () {\n //console.warn('[TextBlock] ' + this._id + ' - get content not implemented');\n noLogs || console.log('[TextBlock] ' + this._id + ' - get content', this._content);\n return this._content;\n },\n set: function (value) {\n //console.warn('[TextBlock] ' + this._id + ' - set content not implemented');\n noLogs || console.log('[TextBlock] ' + this._id + ' - set content', value);\n this._textData = null;\n if (this._content)\n this._content.setTextBlock(null);\n this._content = value;\n if (this._content)\n this._content.setTextBlock(this);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"bidiLevel\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'get bidiLevel', '');\n return this._bidiLevel;\n },\n set: function (value /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'set bidiLevel', '');\n this._bidiLevel = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"firstInvalidLine\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'firstInvalidLine', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"firstLine\", {\n get: function () {\n noLogs || console.log('[TextBlock] ' + this._id + ' - get firstLine', this._textLines.length > 0 ? this._textLines[0] : null);\n return this._textLines.length > 0 ? this._textLines[0] : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"lastLine\", {\n get: function () {\n noLogs || console.log('[TextBlock] ' + this._id + ' - get lastLine', this._textLines.length > 0 ? this._textLines[this._textLines.length - 1] : null);\n return this._textLines.length > 0 ? this._textLines[this._textLines.length - 1] : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextBlock.prototype, \"lineRotation\", {\n get: function () {\n return this._lineRotation;\n },\n set: function (value) {\n this._lineRotation = value;\n },\n enumerable: false,\n configurable: true\n });\n TextBlock.prototype.findNextAtomBoundary = function (afterCharIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'findNextAtomBoundary', '');\n return null;\n };\n TextBlock.prototype.findPreviousAtomBoundary = function (beforeCharIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'findPreviousAtomBoundary', '');\n return null;\n };\n TextBlock.prototype.findNextWordBoundary = function (afterCharIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'findNextWordBoundary', '');\n return null;\n };\n TextBlock.prototype.findPreviousWordBoundary = function (beforeCharIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'findPreviousWordBoundary', '');\n return null;\n };\n TextBlock.prototype.getTextLineAtCharIndex = function (charIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'getTextLineAtCharIndex', '');\n return null;\n };\n TextBlock.prototype.releaseLineCreationData = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'releaseLineCreationData', '');\n };\n TextBlock.prototype.releaseLines = function (firstLine, lastLine) {\n //console.warn('[TextBlock] ' + this._id + ' - releaseLines not implemented');\n if (this._textLines.length == 0)\n return;\n if (firstLine == this._textLines[0] && lastLine == this._textLines[this._textLines.length - 1]) {\n if (textLinePool.length < 100) {\n for (var i = 0; i < this._textLines.length; i++) {\n this._textLines[i].free = true;\n if (textLinePool.indexOf(this._textLines[i]) <= 0)\n textLinePool.push(this._textLines[i]);\n }\n }\n this._textLines.length = 0;\n return;\n }\n while (firstLine) {\n var idx = this._textLines.indexOf(firstLine);\n if (idx >= 0) {\n this._textLines.splice(idx, 1);\n }\n firstLine.free = true;\n if (textLinePool.indexOf(firstLine) <= 0)\n textLinePool.push(firstLine);\n if (firstLine != lastLine)\n firstLine = firstLine.nextLine;\n else\n firstLine = null;\n }\n };\n TextBlock.prototype.dump = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'dump', '');\n return null;\n };\n TextBlock.prototype.DoCreateTextLine = function (previousLine, width, lineOffset, fitSomething, reuseLine) {\n if (lineOffset === void 0) { lineOffset = 0; }\n if (fitSomething === void 0) { fitSomething = false; }\n if (reuseLine === void 0) { reuseLine = null; }\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextBlock', 'DoCreateTextLine', '');\n return null;\n };\n TextBlock.prototype.getTabStops = function () {\n noLogs || console.log('[TextBlock] ' + this._id + ' - getTabStops', this._tabStops);\n return this._tabStops;\n };\n TextBlock.prototype.setTabStops = function (value /*ASVector<flash.text.engine.TabStop>*/) {\n noLogs || console.log('[TextBlock] ' + this._id + ' - setTabStops not implemented', value);\n this._tabStops = value;\n };\n TextBlock.prototype.getTextJustifier = function () {\n noLogs || console.log('[TextBlock] ' + this._id + ' - getTextJustifier', this._textJustifier);\n return this._textJustifier;\n };\n TextBlock.prototype.setTextJustifier = function (value) {\n noLogs || console.log('[TextBlock] ' + this._id + ' - setTextJustifier', value);\n this._textJustifier = value;\n };\n Object.defineProperty(TextBlock.prototype, \"userData\", {\n get: function () {\n noLogs || console.log('[TextBlock] ' + this._id + ' - get userData', this._userData);\n return this._userData;\n },\n set: function (value) {\n noLogs || console.log('[TextBlock] ' + this._id + ' - set userData', value);\n this._userData = value;\n },\n enumerable: false,\n configurable: true\n });\n TextBlock.forceNativeConstructor = true;\n TextBlock.forceNativeMethods = true;\n return TextBlock;\n}(ASObject));\nexport { TextBlock };\n","import { __extends } from \"tslib\";\nimport { ContentElement } from './ContentElement';\nvar noLogs = true;\nvar TextElement = /** @class */ (function (_super) {\n __extends(TextElement, _super);\n function TextElement(text, elementFormat, eventMirror, textRotation) {\n if (text === void 0) { text = null; }\n if (elementFormat === void 0) { elementFormat = null; }\n if (eventMirror === void 0) { eventMirror = null; }\n if (textRotation === void 0) { textRotation = 'rotate0'; }\n var _this = _super.call(this, elementFormat, eventMirror, textRotation) || this;\n _this._text = text;\n _this._rawText = text;\n noLogs || console.log('[TextElement] ' + _this._id + ' constructor', 'text', text);\n return _this;\n }\n Object.defineProperty(TextElement.prototype, \"text\", {\n get: function () {\n noLogs || console.log('[TextElement] ' + this._id + ' get text', this._text);\n return this._text;\n },\n // JS -> AS Bindings\n // AS -> JS Bindings\n // _text: string;\n set: function (value) {\n noLogs || console.log('[TextElement] ' + this._id + ' set text', value);\n this._text = value;\n if (this._textBlock)\n this._textBlock.setTextDataDirty();\n },\n enumerable: false,\n configurable: true\n });\n TextElement.prototype.replaceText = function (beginIndex /*int*/, endIndex /*int*/, newText) {\n noLogs || console.log('[TextElement] ' + this._id + ' replaceText', 'beginIndex', beginIndex, 'endIndex', endIndex, 'newText', newText);\n this._rawText = this._text.slice(0, beginIndex) + newText + this._text.slice(endIndex, this._text.length - 1);\n this._text = this._rawText;\n if (this._textBlock)\n this._textBlock.setTextDataDirty();\n };\n TextElement.forceNativeConstructor = true;\n TextElement.forceNativeMethods = true;\n return TextElement;\n}(ContentElement));\nexport { TextElement };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TextLineValidity = /** @class */ (function (_super) {\n __extends(TextLineValidity, _super);\n function TextLineValidity() {\n return _super.call(this) || this;\n }\n TextLineValidity.forceNativeConstructor = true;\n TextLineValidity.forceNativeMethods = true;\n // JS -> AS Bindings\n TextLineValidity.VALID = 'valid';\n TextLineValidity.POSSIBLY_INVALID = 'possiblyInvalid';\n TextLineValidity.INVALID = 'invalid';\n TextLineValidity.STATIC = 'static';\n return TextLineValidity;\n}(ASObject));\nexport { TextLineValidity };\n","import { __extends } from \"tslib\";\nimport { Debug } from '@awayjs/core';\nimport { TextField, DisplayObjectContainer as AwayDisplayObjectContainer, TextFieldAutoSize } from '@awayjs/scene';\nimport { DisplayObjectContainer } from '../../display/DisplayObjectContainer';\nimport { TextBaseline } from './TextBaseline';\nimport { TextLineValidity } from './TextLineValidity';\nvar noLogs = true;\nvar TextLine = /** @class */ (function (_super) {\n __extends(TextLine, _super);\n function TextLine(previousLine, width, lineOffset, fitSomething, text, formats, formatsIndices, textBlockBeginIndex, textLength, elementsFormats) {\n var _this = _super.call(this) || this;\n var adaptee = new AwayDisplayObjectContainer();\n _this.adaptee = adaptee;\n _this._previousLine = previousLine;\n if (previousLine) {\n previousLine.setNextLine(_this);\n }\n _this._width = width;\n _this._textWidth = 0;\n _this._textHeight = 0;\n _this._lineOffset = lineOffset;\n _this._fitSomething = fitSomething;\n _this._rawText = text ? text : '';\n _this._textFormatsIndices = formatsIndices;\n _this._textFormats = formats;\n _this._textLength = textLength;\n _this._textBlockBeginIndex = textBlockBeginIndex;\n _this._specifiedWidth = _this._width;\n _this._textfield = new TextField();\n _this.initTextline(elementsFormats);\n noLogs || console.log('[TextLine] ' + _this.adaptee.id + ' textfield:', _this._textfield, '\\n\t\tpreviousLine', previousLine, '\\n\t\twidth', width, '\\n\t\tlineOffset', lineOffset, '\\n\t\tfitSomething', fitSomething, '\\n\t\ttext', text, '\\n\t\tformats', formats, '\\n\t\tformatsIndices', formatsIndices, '\\n\t\ttextBlockBeginIndex', textBlockBeginIndex, '\\n\t\ttextLength', textLength, '\\n\t\t_ascent', _this._ascent, '\\n\t\t_descent', _this._descent, '\\n\t\tnewTextField.textWidth', _this._textfield.textWidth);\n return _this;\n }\n TextLine.prototype.initTextline = function (elementsFormats) {\n this._ascent = 0;\n this._descent = Number.POSITIVE_INFINITY;\n this._textfield.multiline = false;\n this._textfield.border = false;\n this._textfield.wordWrap = false;\n var defaultFormat = this._textFormats[0];\n var defaultElementFormat = elementsFormats[0];\n var lastAlignmentBaseline = defaultElementFormat.getBaseline();\n this.adaptee.addChild(this._textfield);\n if (this._rawText !== '') {\n this._textfield.autoSize = TextFieldAutoSize.LEFT;\n this._textfield.text = this._rawText;\n var startIdx = 0;\n for (var i = 0; i < this._textFormatsIndices.length; i++) {\n var textFormat = this._textFormats[i];\n var elementFormat = elementsFormats[i];\n if (lastAlignmentBaseline != elementFormat.getBaseline()) {\n console.warn('[TextLine] - one Textline with different alignmentBaseline');\n }\n var endIdx = this._textFormatsIndices[i];\n var ascent = textFormat.font_table.ascent;\n var descent = textFormat.font_table.descent;\n var em_size = textFormat.font_table.get_font_em_size();\n ascent = (ascent / em_size) * textFormat.size;\n descent = (descent / em_size) * textFormat.size;\n /*console.log(\"em_size\", em_size);\n console.log(\"ascent\", ascent);\n console.log(\"descent\", descent);\n console.log(\"both\", ascent + descent);*/\n if (this._ascent < ascent) {\n this._ascent = ascent;\n }\n if (this._descent > descent) {\n this._descent = descent;\n }\n !this._textfield || this._textfield.setTextFormat(textFormat, startIdx, endIdx);\n startIdx = endIdx;\n this._textfield.height = this._ascent - this._descent;\n }\n }\n else {\n this._textfield.autoSize = TextFieldAutoSize.NONE;\n this._ascent = defaultFormat.font_table.ascent;\n this._descent = defaultFormat.font_table.descent;\n var em_size = defaultFormat.font_table.get_font_em_size();\n this._ascent = (this._ascent / em_size) * defaultFormat.size;\n this._descent = (this._descent / em_size) * defaultFormat.size;\n this._textfield.width = 10;\n this._textfield.height = this._ascent - this._descent;\n }\n this._textWidth = this._textfield ? this._textfield.textWidth + 4 : 10;\n this._unjustifiedTextWidth = this._textWidth;\n noLogs || console.log('[TextLine]', this._rawText.length, lastAlignmentBaseline, this._ascent, this._descent);\n this._descent = Math.abs(this._descent);\n this._ascent += 1;\n if (lastAlignmentBaseline == TextBaseline.ROMAN) {\n this._textfield.y = -(this._ascent); // - this._descent);\n }\n else if (lastAlignmentBaseline == TextBaseline.ASCENT) {\n this._textfield.y = -(this._ascent - this._descent) - this._ascent - this._descent;\n }\n else {\n console.warn('[TextLine] - unsupported alignmentBaseline', lastAlignmentBaseline);\n this._textfield.y = -(this._ascent - this._descent) - this._ascent;\n }\n this._textfield.x = 0;\n this._ascent = this._ascent - this._descent;\n //this._forceWidth = this._ascent + this._descent;\n //this._forceHeight = this._ascent - this._descent;\n //this._forceHeight = 200;//Math.ceil(this._forceHeight * 20) / 20;\n /*if (lineOffset == 0 && previousLine && previousLine._lineOffset) {\n lineOffset = previousLine._lineOffset;\n }*/\n noLogs || console.log('[TextLine] ' + this.adaptee.id, '_rawText', this._rawText);\n this._validity = TextLineValidity.VALID;\n };\n TextLine.prototype.reUseTextLine = function (previousLine, width, lineOffset, fitSomething, text, formats, formatsIndices, textBlockBeginIndex, textLength, elementsFormats) {\n this.adaptee.x = 0;\n this.adaptee.y = 0;\n this._previousLine = previousLine;\n if (previousLine) {\n previousLine.setNextLine(this);\n }\n this._width = width;\n this._textWidth = 0;\n this._textHeight = 0;\n this._lineOffset = lineOffset;\n this._fitSomething = fitSomething;\n this._rawText = text ? text : '';\n this._textFormatsIndices = formatsIndices;\n this._textFormats = formats;\n this._textLength = textLength;\n this._textBlockBeginIndex = textBlockBeginIndex;\n this._specifiedWidth = this._width;\n this._textfield.reset();\n this._textfield.text = '';\n this.initTextline(elementsFormats);\n };\n TextLine.prototype.getBaselinePosition = function (baseline) {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - getBaselinePosition', baseline);\n switch (baseline) {\n case TextBaseline.ROMAN:\n // does not seem to matter what we return here\n // for each TLF it checks 2 times for this value,\n // and than 1 time for the ASCENT value\n return -(this._ascent + this._descent);\n case TextBaseline.ASCENT:\n return -(this._ascent); // + this._descent);\n }\n return 0;\n };\n TextLine.prototype.setNextLine = function (value) {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - setNextLine', value);\n this._nextLine = value;\n };\n TextLine.prototype.setPreviousLine = function (value) {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get previousLine', this._previousLine);\n this._previousLine = value;\n };\n TextLine.prototype.setTextBlock = function (value) {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - setTextBlock', value);\n this._textBlock = value;\n };\n TextLine.prototype.getMirrorRegion = function (mirror) {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - getMirrorRegion', mirror);\n return null;\n };\n TextLine.prototype.flushAtomData = function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - flushAtomData');\n };\n Object.defineProperty(TextLine.prototype, \"textBlock\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get textBlock', this._textBlock);\n return this._textBlock;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"hasGraphicElement\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get hasGraphicElement');\n return false; //this._hasGraphicElement;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"hasTabs\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get hasTabs', this._hasTabs);\n return false; //this._hasTabs;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"nextLine\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get nextLine', this._nextLine);\n return this._nextLine;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"previousLine\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get previousLine', this._previousLine);\n return this._previousLine;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"ascent\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get ascent', this._ascent);\n return 0; //this._ascent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"descent\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get descent', this._descent);\n return 0; //this._descent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"textHeight\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get textHeight', this._ascent + this._descent);\n return this._ascent + this._descent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"textWidth\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get textWidth', this._textWidth);\n return this._textWidth;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"totalAscent\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get totalAscent', this._ascent);\n return this._ascent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"totalDescent\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get totalDescent', this._descent);\n return this._descent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"totalHeight\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get totalHeight', this._ascent + this._descent);\n return this._ascent + this._descent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"textBlockBeginIndex\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get textBlockBeginIndex', this._textBlockBeginIndex);\n return this._textBlockBeginIndex;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"rawTextLength\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get rawTextLength', this._textLength);\n return this._textLength;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"specifiedWidth\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get specifiedWidth', this._specifiedWidth);\n return this._specifiedWidth;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"unjustifiedTextWidth\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get unjustifiedTextWidth', this._unjustifiedTextWidth);\n return this._unjustifiedTextWidth;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"validity\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get validity', this._validity);\n return this._validity;\n },\n set: function (value) {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - set validity', value);\n this._validity = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"atomCount\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get atomCount', this._textLength);\n return this._textLength;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLine.prototype, \"mirrorRegions\", {\n get: function () {\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - get mirrorRegions', this._mirrorRegions);\n return this._mirrorRegions;\n },\n enumerable: false,\n configurable: true\n });\n TextLine.prototype.getAtomIndexAtPoint = function (stageX, stageY) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomIndexAtPoint', '');\n return null;\n };\n TextLine.prototype.getAtomIndexAtCharIndex = function (charIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomIndexAtCharIndex', '');\n return charIndex;\n };\n TextLine.prototype.getAtomBounds = function (atomIndex /*int*/) {\n var bounds = this._textfield.getCharBoundaries(atomIndex);\n noLogs || console.log('[TextLine] ' + this.adaptee.id + ' - getAtomBounds', 'atomIndex', atomIndex, 'bounds', bounds);\n return this.sec.flash.geom.Rectangle(bounds.x, bounds.y, bounds.width, this._ascent + this.descent);\n };\n TextLine.prototype.getAtomBidiLevel = function (atomIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomBidiLevel', '');\n return null;\n };\n TextLine.prototype.getAtomTextRotation = function (atomIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomTextRotation', '');\n return null;\n };\n TextLine.prototype.getAtomTextBlockBeginIndex = function (atomIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomTextBlockBeginIndex', '');\n return null;\n };\n TextLine.prototype.getAtomTextBlockEndIndex = function (atomIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomTextBlockEndIndex', '');\n return null;\n };\n TextLine.prototype.getAtomCenter = function (atomIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomCenter', '');\n return null;\n };\n TextLine.prototype.getAtomWordBoundaryOnLeft = function (atomIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomWordBoundaryOnLeft', '');\n return null;\n };\n TextLine.prototype.getAtomGraphic = function (atomIndex /*int*/) {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'getAtomGraphic', '');\n return null;\n };\n TextLine.prototype.dump = function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLine', 'dump', '');\n return null;\n };\n TextLine.forceNativeConstructor = true;\n TextLine.forceNativeMethods = true;\n TextLine.MAX_LINE_WIDTH = 1000000;\n return TextLine;\n}(DisplayObjectContainer));\nexport { TextLine };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar TextLineMirrorRegion = /** @class */ (function (_super) {\n __extends(TextLineMirrorRegion, _super);\n function TextLineMirrorRegion() {\n return _super.call(this) || this;\n }\n Object.defineProperty(TextLineMirrorRegion.prototype, \"textLine\", {\n // JS -> AS Bindings\n // AS -> JS Bindings\n // _textLine: flash.text.engine.TextLine;\n // _nextRegion: flash.text.engine.TextLineMirrorRegion;\n // _previousRegion: flash.text.engine.TextLineMirrorRegion;\n // _mirror: flash.events.EventDispatcher;\n // _element: flash.text.engine.ContentElement;\n // _bounds: flash.geom.Rectangle;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLineMirrorRegion', 'get textLine', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLineMirrorRegion.prototype, \"nextRegion\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLineMirrorRegion', 'get nextRegion', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLineMirrorRegion.prototype, \"previousRegion\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLineMirrorRegion', 'get previousRegion', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLineMirrorRegion.prototype, \"mirror\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLineMirrorRegion', 'get mirror', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLineMirrorRegion.prototype, \"element\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLineMirrorRegion', 'get element', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TextLineMirrorRegion.prototype, \"bounds\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/text/engine/TextLineMirrorRegion', 'get textLine', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n TextLineMirrorRegion.forceNativeConstructor = true;\n TextLineMirrorRegion.forceNativeMethods = true;\n return TextLineMirrorRegion;\n}(ASObject));\nexport { TextLineMirrorRegion };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TextRotation = /** @class */ (function (_super) {\n __extends(TextRotation, _super);\n function TextRotation() {\n return _super.call(this) || this;\n }\n TextRotation.forceNativeConstructor = true;\n TextRotation.forceNativeMethods = true;\n // JS -> AS Bindings\n TextRotation.ROTATE_0 = 'rotate0';\n TextRotation.ROTATE_90 = 'rotate90';\n TextRotation.ROTATE_180 = 'rotate180';\n TextRotation.ROTATE_270 = 'rotate270';\n TextRotation.AUTO = 'auto';\n return TextRotation;\n}(ASObject));\nexport { TextRotation };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar TypographicCase = /** @class */ (function (_super) {\n __extends(TypographicCase, _super);\n function TypographicCase() {\n return _super.call(this) || this;\n }\n TypographicCase.forceNativeConstructor = true;\n TypographicCase.forceNativeMethods = true;\n // JS -> AS Bindings\n TypographicCase.DEFAULT = 'default';\n TypographicCase.TITLE = 'title';\n TypographicCase.CAPS = 'caps';\n TypographicCase.SMALL_CAPS = 'smallCaps';\n TypographicCase.UPPERCASE = 'uppercase';\n TypographicCase.LOWERCASE = 'lowercase';\n TypographicCase.CAPS_AND_SMALL_CAPS = 'capsAndSmallCaps';\n return TypographicCase;\n}(ASObject));\nexport { TypographicCase };\n","import { __extends } from \"tslib\";\nimport { Debug } from '@awayjs/core';\nimport { ASObject } from '@awayfl/avm2';\nimport { KeyboardEvent } from '../events/KeyboardEvent';\n/**\n * Dispatches AS3 keyboard events to the focus event dispatcher.\n */\nvar KeyboardEventDispatcher = /** @class */ (function () {\n function KeyboardEventDispatcher() {\n this._lastKeyCode = 0;\n this._captureKeyPress = false;\n this._charCodeMap = [];\n }\n /**\n * Converts DOM keyboard event data into AS3 keyboard events.\n */\n KeyboardEventDispatcher.prototype.dispatchKeyboardEvent = function (event) {\n var keyCode = event.keyCode;\n if (event.type === 'keydown') {\n this._lastKeyCode = keyCode;\n // Trying to capture charCode for ASCII keys.\n this._captureKeyPress = keyCode === 8 || keyCode === 9 ||\n keyCode === 13 || keyCode === 32 || (keyCode >= 48 && keyCode <= 90) ||\n keyCode > 145;\n if (this._captureKeyPress) {\n return; // skipping keydown, waiting for keypress\n }\n this._charCodeMap[keyCode] = 0;\n }\n else if (event.type === 'keypress') {\n if (this._captureKeyPress) {\n keyCode = this._lastKeyCode;\n this._charCodeMap[keyCode] = event.charCode;\n }\n else {\n return;\n }\n }\n if (this.target) {\n var isKeyUp = event.type === 'keyup';\n this.target.dispatchEvent(new KeyboardEvent(isKeyUp ? 'keyUp' : 'keyDown', true, false, isKeyUp ? this._charCodeMap[keyCode] : event.charCode, isKeyUp ? event.keyCode : this._lastKeyCode, event.location, event.ctrlKey, event.altKey, event.shiftKey));\n }\n };\n return KeyboardEventDispatcher;\n}());\nexport { KeyboardEventDispatcher };\nvar Keyboard = /** @class */ (function (_super) {\n __extends(Keyboard, _super);\n function Keyboard() {\n return _super.call(this) || this;\n }\n Object.defineProperty(Keyboard, \"capsLock\", {\n // JS -> AS Bindings\n //static KEYNAME_UPARROW: string = \"Up\";\n //static KEYNAME_DOWNARROW: string = \"Down\";\n //static KEYNAME_LEFTARROW: string = \"Left\";\n //static KEYNAME_RIGHTARROW: string = \"Right\";\n //static KEYNAME_F1: string = \"F1\";\n //static KEYNAME_F2: string = \"F2\";\n //static KEYNAME_F3: string = \"F3\";\n //static KEYNAME_F4: string = \"F4\";\n //static KEYNAME_F5: string = \"F5\";\n //static KEYNAME_F6: string = \"F6\";\n //static KEYNAME_F7: string = \"F7\";\n //static KEYNAME_F8: string = \"F8\";\n //static KEYNAME_F9: string = \"F9\";\n //static KEYNAME_F10: string = \"F10\";\n //static KEYNAME_F11: string = \"F11\";\n //static KEYNAME_F12: string = \"F12\";\n //static KEYNAME_F13: string = \"F13\";\n //static KEYNAME_F14: string = \"F14\";\n //static KEYNAME_F15: string = \"F15\";\n //static KEYNAME_F16: string = \"F16\";\n //static KEYNAME_F17: string = \"F17\";\n //static KEYNAME_F18: string = \"F18\";\n //static KEYNAME_F19: string = \"F19\";\n //static KEYNAME_F20: string = \"F20\";\n //static KEYNAME_F21: string = \"F21\";\n //static KEYNAME_F22: string = \"F22\";\n //static KEYNAME_F23: string = \"F23\";\n //static KEYNAME_F24: string = \"F24\";\n //static KEYNAME_F25: string = \"F25\";\n //static KEYNAME_F26: string = \"F26\";\n //static KEYNAME_F27: string = \"F27\";\n //static KEYNAME_F28: string = \"F28\";\n //static KEYNAME_F29: string = \"F29\";\n //static KEYNAME_F30: string = \"F30\";\n //static KEYNAME_F31: string = \"F31\";\n //static KEYNAME_F32: string = \"F32\";\n //static KEYNAME_F33: string = \"F33\";\n //static KEYNAME_F34: string = \"F34\";\n //static KEYNAME_F35: string = \"F35\";\n //static KEYNAME_INSERT: string = \"Insert\";\n //static KEYNAME_DELETE: string = \"Delete\";\n //static KEYNAME_HOME: string = \"Home\";\n //static KEYNAME_BEGIN: string = \"Begin\";\n //static KEYNAME_END: string = \"End\";\n //static KEYNAME_PAGEUP: string = \"PgUp\";\n //static KEYNAME_PAGEDOWN: string = \"PgDn\";\n //static KEYNAME_PRINTSCREEN: string = \"PrntScrn\";\n //static KEYNAME_SCROLLLOCK: string = \"ScrlLck\";\n //static KEYNAME_PAUSE: string = \"Pause\";\n //static KEYNAME_SYSREQ: string = \"SysReq\";\n //static KEYNAME_BREAK: string = \"Break\";\n //static KEYNAME_RESET: string = \"Reset\";\n //static KEYNAME_STOP: string = \"Stop\";\n //static KEYNAME_MENU: string = \"Menu\";\n //static KEYNAME_USER: string = \"User\";\n //static KEYNAME_SYSTEM: string = \"Sys\";\n //static KEYNAME_PRINT: string = \"Print\";\n //static KEYNAME_CLEARLINE: string = \"ClrLn\";\n //static KEYNAME_CLEARDISPLAY: string = \"ClrDsp\";\n //static KEYNAME_INSERTLINE: string = \"InsLn\";\n //static KEYNAME_DELETELINE: string = \"DelLn\";\n //static KEYNAME_INSERTCHAR: string = \"InsChr\";\n //static KEYNAME_DELETECHAR: string = \"DelChr\";\n //static KEYNAME_PREV: string = \"Prev\";\n //static KEYNAME_NEXT: string = \"Next\";\n //static KEYNAME_SELECT: string = \"Select\";\n //static KEYNAME_EXECUTE: string = \"Exec\";\n //static KEYNAME_UNDO: string = \"Undo\";\n //static KEYNAME_REDO: string = \"Redo\";\n //static KEYNAME_FIND: string = \"Find\";\n //static KEYNAME_HELP: string = \"Help\";\n //static KEYNAME_MODESWITCH: string = \"ModeSw\";\n //static STRING_UPARROW: string = \"\";\n //static STRING_DOWNARROW: string = \"\";\n //static STRING_LEFTARROW: string = \"\";\n //static STRING_RIGHTARROW: string = \"\";\n //static STRING_F1: string = \"\";\n //static STRING_F2: string = \"\";\n //static STRING_F3: string = \"\";\n //static STRING_F4: string = \"\";\n //static STRING_F5: string = \"\";\n //static STRING_F6: string = \"\";\n //static STRING_F7: string = \"\";\n //static STRING_F8: string = \"\";\n //static STRING_F9: string = \"\";\n //static STRING_F10: string = \"\";\n //static STRING_F11: string = \"\";\n //static STRING_F12: string = \"\";\n //static STRING_F13: string = \"\";\n //static STRING_F14: string = \"\";\n //static STRING_F15: string = \"\";\n //static STRING_F16: string = \"\";\n //static STRING_F17: string = \"\";\n //static STRING_F18: string = \"\";\n //static STRING_F19: string = \"\";\n //static STRING_F20: string = \"\";\n //static STRING_F21: string = \"\";\n //static STRING_F22: string = \"\";\n //static STRING_F23: string = \"\";\n //static STRING_F24: string = \"\";\n //static STRING_F25: string = \"\";\n //static STRING_F26: string = \"\";\n //static STRING_F27: string = \"\";\n //static STRING_F28: string = \"\";\n //static STRING_F29: string = \"\";\n //static STRING_F30: string = \"\";\n //static STRING_F31: string = \"\";\n //static STRING_F32: string = \"\";\n //static STRING_F33: string = \"\";\n //static STRING_F34: string = \"\";\n //static STRING_F35: string = \"\";\n //static STRING_INSERT: string = \"\";\n //static STRING_DELETE: string = \"\";\n //static STRING_HOME: string = \"\";\n //static STRING_BEGIN: string = \"\";\n //static STRING_END: string = \"\";\n //static STRING_PAGEUP: string = \"\";\n //static STRING_PAGEDOWN: string = \"\";\n //static STRING_PRINTSCREEN: string = \"\";\n //static STRING_SCROLLLOCK: string = \"\";\n //static STRING_PAUSE: string = \"\";\n //static STRING_SYSREQ: string = \"\";\n //static STRING_BREAK: string = \"\";\n //static STRING_RESET: string = \"\";\n //static STRING_STOP: string = \"\";\n //static STRING_MENU: string = \"\";\n //static STRING_USER: string = \"\";\n //static STRING_SYSTEM: string = \"\";\n //static STRING_PRINT: string = \"\";\n //static STRING_CLEARLINE: string = \"\";\n //static STRING_CLEARDISPLAY: string = \"\";\n //static STRING_INSERTLINE: string = \"\";\n //static STRING_DELETELINE: string = \"\";\n //static STRING_INSERTCHAR: string = \"\";\n //static STRING_DELETECHAR: string = \"\";\n //static STRING_PREV: string = \"\";\n //static STRING_NEXT: string = \"\";\n //static STRING_SELECT: string = \"\";\n //static STRING_EXECUTE: string = \"\";\n //static STRING_UNDO: string = \"\";\n //static STRING_REDO: string = \"\";\n //static STRING_FIND: string = \"\";\n //static STRING_HELP: string = \"\";\n //static STRING_MODESWITCH: string = \"\";\n //static CharCodeStrings: any [] = undefined;\n //static NUMBER_0: number /*uint*/ = 48;\n //static NUMBER_1: number /*uint*/ = 49;\n //static NUMBER_2: number /*uint*/ = 50;\n //static NUMBER_3: number /*uint*/ = 51;\n //static NUMBER_4: number /*uint*/ = 52;\n //static NUMBER_5: number /*uint*/ = 53;\n //static NUMBER_6: number /*uint*/ = 54;\n //static NUMBER_7: number /*uint*/ = 55;\n //static NUMBER_8: number /*uint*/ = 56;\n //static NUMBER_9: number /*uint*/ = 57;\n //static A: number /*uint*/ = 65;\n //static B: number /*uint*/ = 66;\n //static C: number /*uint*/ = 67;\n //static D: number /*uint*/ = 68;\n //static E: number /*uint*/ = 69;\n //static F: number /*uint*/ = 70;\n //static G: number /*uint*/ = 71;\n //static H: number /*uint*/ = 72;\n //static I: number /*uint*/ = 73;\n //static J: number /*uint*/ = 74;\n //static K: number /*uint*/ = 75;\n //static L: number /*uint*/ = 76;\n //static M: number /*uint*/ = 77;\n //static N: number /*uint*/ = 78;\n //static O: number /*uint*/ = 79;\n //static P: number /*uint*/ = 80;\n //static Q: number /*uint*/ = 81;\n //static R: number /*uint*/ = 82;\n //static S: number /*uint*/ = 83;\n //static T: number /*uint*/ = 84;\n //static U: number /*uint*/ = 85;\n //static V: number /*uint*/ = 86;\n //static W: number /*uint*/ = 87;\n //static X: number /*uint*/ = 88;\n //static Y: number /*uint*/ = 89;\n //static Z: number /*uint*/ = 90;\n //static SEMICOLON: number /*uint*/ = 186;\n //static EQUAL: number /*uint*/ = 187;\n //static COMMA: number /*uint*/ = 188;\n //static MINUS: number /*uint*/ = 189;\n //static PERIOD: number /*uint*/ = 190;\n //static SLASH: number /*uint*/ = 191;\n //static BACKQUOTE: number /*uint*/ = 192;\n //static LEFTBRACKET: number /*uint*/ = 219;\n //static BACKSLASH: number /*uint*/ = 220;\n //static RIGHTBRACKET: number /*uint*/ = 221;\n //static QUOTE: number /*uint*/ = 222;\n //static ALTERNATE: number /*uint*/ = 18;\n //static BACKSPACE: number /*uint*/ = 8;\n //static CAPS_LOCK: number /*uint*/ = 20;\n //static COMMAND: number /*uint*/ = 15;\n //static CONTROL: number /*uint*/ = 17;\n //static DELETE: number /*uint*/ = 46;\n //static DOWN: number /*uint*/ = 40;\n //static END: number /*uint*/ = 35;\n //static ENTER: number /*uint*/ = 13;\n //static ESCAPE: number /*uint*/ = 27;\n //static F1: number /*uint*/ = 112;\n //static F2: number /*uint*/ = 113;\n //static F3: number /*uint*/ = 114;\n //static F4: number /*uint*/ = 115;\n //static F5: number /*uint*/ = 116;\n //static F6: number /*uint*/ = 117;\n //static F7: number /*uint*/ = 118;\n //static F8: number /*uint*/ = 119;\n //static F9: number /*uint*/ = 120;\n //static F10: number /*uint*/ = 121;\n //static F11: number /*uint*/ = 122;\n //static F12: number /*uint*/ = 123;\n //static F13: number /*uint*/ = 124;\n //static F14: number /*uint*/ = 125;\n //static F15: number /*uint*/ = 126;\n //static HOME: number /*uint*/ = 36;\n //static INSERT: number /*uint*/ = 45;\n //static LEFT: number /*uint*/ = 37;\n //static NUMPAD: number /*uint*/ = 21;\n //static NUMPAD_0: number /*uint*/ = 96;\n //static NUMPAD_1: number /*uint*/ = 97;\n //static NUMPAD_2: number /*uint*/ = 98;\n //static NUMPAD_3: number /*uint*/ = 99;\n //static NUMPAD_4: number /*uint*/ = 100;\n //static NUMPAD_5: number /*uint*/ = 101;\n //static NUMPAD_6: number /*uint*/ = 102;\n //static NUMPAD_7: number /*uint*/ = 103;\n //static NUMPAD_8: number /*uint*/ = 104;\n //static NUMPAD_9: number /*uint*/ = 105;\n //static NUMPAD_ADD: number /*uint*/ = 107;\n //static NUMPAD_DECIMAL: number /*uint*/ = 110;\n //static NUMPAD_DIVIDE: number /*uint*/ = 111;\n //static NUMPAD_ENTER: number /*uint*/ = 108;\n //static NUMPAD_MULTIPLY: number /*uint*/ = 106;\n //static NUMPAD_SUBTRACT: number /*uint*/ = 109;\n //static PAGE_DOWN: number /*uint*/ = 34;\n //static PAGE_UP: number /*uint*/ = 33;\n //static RIGHT: number /*uint*/ = 39;\n //static SHIFT: number /*uint*/ = 16;\n //static SPACE: number /*uint*/ = 32;\n //static TAB: number /*uint*/ = 9;\n //static UP: number /*uint*/ = 38;\n //static RED: number /*uint*/ = 16777216;\n //static GREEN: number /*uint*/ = 16777217;\n //static YELLOW: number /*uint*/ = 16777218;\n //static BLUE: number /*uint*/ = 16777219;\n //static CHANNEL_UP: number /*uint*/ = 16777220;\n //static CHANNEL_DOWN: number /*uint*/ = 16777221;\n //static RECORD: number /*uint*/ = 16777222;\n //static PLAY: number /*uint*/ = 16777223;\n //static PAUSE: number /*uint*/ = 16777224;\n //static STOP: number /*uint*/ = 16777225;\n //static FAST_FORWARD: number /*uint*/ = 16777226;\n //static REWIND: number /*uint*/ = 16777227;\n //static SKIP_FORWARD: number /*uint*/ = 16777228;\n //static SKIP_BACKWARD: number /*uint*/ = 16777229;\n //static NEXT: number /*uint*/ = 16777230;\n //static PREVIOUS: number /*uint*/ = 16777231;\n //static LIVE: number /*uint*/ = 16777232;\n //static LAST: number /*uint*/ = 16777233;\n //static MENU: number /*uint*/ = 16777234;\n //static INFO: number /*uint*/ = 16777235;\n //static GUIDE: number /*uint*/ = 16777236;\n //static EXIT: number /*uint*/ = 16777237;\n //static BACK: number /*uint*/ = 16777238;\n //static AUDIO: number /*uint*/ = 16777239;\n //static SUBTITLE: number /*uint*/ = 16777240;\n //static DVR: number /*uint*/ = 16777241;\n //static VOD: number /*uint*/ = 16777242;\n //static INPUT: number /*uint*/ = 16777243;\n //static SETUP: number /*uint*/ = 16777244;\n //static HELP: number /*uint*/ = 16777245;\n //static MASTER_SHELL: number /*uint*/ = 16777246;\n //static SEARCH: number /*uint*/ = 16777247;\n // AS -> JS Bindings\n // static _capsLock: boolean;\n // static _numLock: boolean;\n // static _hasVirtualKeyboard: boolean;\n // static _physicalKeyboardType: string;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Keyboard', 'static get capsLock', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Keyboard, \"numLock\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Keyboard', 'static get numLock', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Keyboard, \"hasVirtualKeyboard\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Keyboard', 'static get hasVirtualKeyboard', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Keyboard, \"physicalKeyboardType\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Keyboard', 'static get physicalKeyboardType', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Keyboard.isAccessible = function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Keyboard', 'static isAccessiblek', '');\n return true;\n };\n // Called whenever the class is initialized.\n Keyboard.classInitializer = null;\n // List of static symbols to link.\n Keyboard.classSymbols = null; // [];\n // List of instance symbols to link.\n Keyboard.instanceSymbols = null; // [];\n return Keyboard;\n}(ASObject));\nexport { Keyboard };\n","import { __extends } from \"tslib\";\nimport { NativeMenu } from '../display/NativeMenu';\nimport { Debug } from '@awayjs/core';\nvar ContextMenu = /** @class */ (function (_super) {\n __extends(ContextMenu, _super);\n function ContextMenu() {\n var _this = _super.call(this) || this;\n _this._builtInItems = new _this.sec.flash.ui.ContextMenuBuiltInItems();\n _this._customItems = [];\n _this._clipboardItems = _this.sec.flash.ui.ContextMenuClipboardItems();\n return _this;\n }\n Object.defineProperty(ContextMenu, \"isSupported\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'isSupported', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenu.prototype, \"builtInItems\", {\n get: function () {\n // TODO: Should clone here probably.\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'get builtInItems', '');\n return this._builtInItems;\n },\n set: function (value) {\n // TODO: Should clone here probably.\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'set builtInItems', '');\n this._builtInItems = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenu.prototype, \"customItems\", {\n get: function () {\n // TODO: Should clone here probably.\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'get customItems', '');\n return this.sec.createArrayUnsafe(this._customItems);\n },\n set: function (value) {\n // TODO: Should clone here probably.\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'set customItems', '');\n this._customItems = value.value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenu.prototype, \"link\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'get link', '');\n return this._link;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'set link', '');\n this._link = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenu.prototype, \"clipboardMenu\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'set clipboardMenu', '');\n return this._clipboardMenu;\n },\n set: function (value) {\n value = !!value;\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'set clipboardMenu', '');\n this._clipboardMenu = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenu.prototype, \"clipboardItems\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'get clipboardItems', '');\n return this._clipboardItems;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'set clipboardItems', '');\n this._clipboardItems = value;\n },\n enumerable: false,\n configurable: true\n });\n ContextMenu.prototype.hideBuiltInItems = function () {\n var items = this.builtInItems;\n if (!items) {\n return;\n }\n items.save = false;\n items.zoom = false;\n items.quality = false;\n items.play = false;\n items.loop = false;\n items.rewind = false;\n items.forwardAndBack = false;\n items.print = false;\n };\n ContextMenu.prototype.clone = function () {\n var result = new this.sec.flash.ui.ContextMenu();\n result._builtInItems = this._builtInItems.clone();\n this.cloneLinkAndClipboardProperties(result);\n var customItems = this._customItems;\n for (var i = 0; i < customItems.length; i++) {\n result._customItems.push(customItems[i].clone());\n }\n return result;\n };\n ContextMenu.prototype.cloneLinkAndClipboardProperties = function (c) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenu', 'cloneLinkAndClipboardProperties', '');\n };\n ContextMenu.classInitializer = null;\n return ContextMenu;\n}(NativeMenu));\nexport { ContextMenu };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nvar NativeMenu = /** @class */ (function (_super) {\n __extends(NativeMenu, _super);\n function NativeMenu() {\n return _super.call(this) || this;\n }\n NativeMenu.classInitializer = null;\n NativeMenu.classSymbols = null; // [];\n NativeMenu.instanceSymbols = null; // [];\n return NativeMenu;\n}(EventDispatcher));\nexport { NativeMenu };\n","import { __extends } from \"tslib\";\nimport { NativeMenuItem } from '../display/NativeMenuItem';\nimport { axCoerceString } from '@awayfl/avm2';\nvar ContextMenuItem = /** @class */ (function (_super) {\n __extends(ContextMenuItem, _super);\n function ContextMenuItem(caption, separatorBefore, enabled, visible) {\n if (separatorBefore === void 0) { separatorBefore = false; }\n if (enabled === void 0) { enabled = true; }\n if (visible === void 0) { visible = true; }\n var _this = _super.call(this) || this;\n caption = axCoerceString(caption);\n separatorBefore = !!separatorBefore;\n enabled = !!enabled;\n visible = !!visible;\n _this._caption = caption ? caption : '';\n _this._separatorBefore = separatorBefore;\n _this._enabled = enabled;\n _this._visible = visible;\n return _this;\n }\n Object.defineProperty(ContextMenuItem.prototype, \"caption\", {\n get: function () {\n return this._caption;\n },\n set: function (value) {\n value = axCoerceString(value);\n this._caption = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuItem.prototype, \"separatorBefore\", {\n get: function () {\n return this._separatorBefore;\n },\n set: function (value) {\n value = !!value;\n this._separatorBefore = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuItem.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n value = !!value;\n this._visible = value;\n },\n enumerable: false,\n configurable: true\n });\n // Called whenever the class is initialized.\n ContextMenuItem.classInitializer = null;\n // List of static symbols to link.\n ContextMenuItem.classSymbols = null; // [];\n // List of instance symbols to link.\n ContextMenuItem.instanceSymbols = null; // [\"clone\"];\n return ContextMenuItem;\n}(NativeMenuItem));\nexport { ContextMenuItem };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar ContextMenuBuiltInItems = /** @class */ (function (_super) {\n __extends(ContextMenuBuiltInItems, _super);\n function ContextMenuBuiltInItems() {\n var _this = _super.call(this) || this;\n _this._save = true;\n _this._zoom = true;\n _this._quality = true;\n _this._play = true;\n _this._loop = true;\n _this._rewind = true;\n _this._forwardAndBack = true;\n _this._print = true;\n return _this;\n }\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"save\", {\n get: function () {\n return this._save;\n },\n set: function (val) {\n this._save = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"zoom\", {\n get: function () {\n return this._zoom;\n },\n set: function (val) {\n this._zoom = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"quality\", {\n get: function () {\n return this._quality;\n },\n set: function (val) {\n this._quality = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"play\", {\n get: function () {\n return this._play;\n },\n set: function (val) {\n this._play = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"loop\", {\n get: function () {\n return this._loop;\n },\n set: function (val) {\n this._loop = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"rewind\", {\n get: function () {\n return this._rewind;\n },\n set: function (val) {\n this._rewind = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"forwardAndBack\", {\n get: function () {\n return this._forwardAndBack;\n },\n set: function (val) {\n this._forwardAndBack = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuBuiltInItems.prototype, \"print\", {\n get: function () {\n return this._print;\n },\n set: function (val) {\n this._print = !!val;\n },\n enumerable: false,\n configurable: true\n });\n ContextMenuBuiltInItems.prototype.clone = function () {\n var items = new ContextMenuBuiltInItems();\n items._save = this._save;\n items._zoom = this._zoom;\n items._quality = this._quality;\n items._play = this._play;\n items._loop = this._loop;\n items._rewind = this._rewind;\n items._forwardAndBack = this._forwardAndBack;\n items._print = this._print;\n return items;\n };\n ContextMenuBuiltInItems.classInitializer = null;\n return ContextMenuBuiltInItems;\n}(ASObject));\nexport { ContextMenuBuiltInItems };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar ContextMenuClipboardItems = /** @class */ (function (_super) {\n __extends(ContextMenuClipboardItems, _super);\n function ContextMenuClipboardItems() {\n var _this = _super.call(this) || this;\n _this._cut = true;\n _this._copy = true;\n _this._paste = true;\n _this._clear = true;\n _this._selectAll = true;\n return _this;\n }\n Object.defineProperty(ContextMenuClipboardItems.prototype, \"cut\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'get cut', '');\n return this._cut;\n },\n set: function (val) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'set cut', '');\n this._cut = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuClipboardItems.prototype, \"copy\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'get copy', '');\n return this._copy;\n },\n set: function (val) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'set copy', '');\n this._copy = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuClipboardItems.prototype, \"paste\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'get paste', '');\n return this._paste;\n },\n set: function (val) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'set paste', '');\n this._paste = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuClipboardItems.prototype, \"clear\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'get clear', '');\n return this._clear;\n },\n set: function (val) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'set clear', '');\n this._clear = !!val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ContextMenuClipboardItems.prototype, \"selectAll\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'get selectAll', '');\n return this._selectAll;\n },\n set: function (val) {\n // @todo\n Debug.throwPIR('playerglobals/ui/ContextMenuClipboardItems', 'set selectAll', '');\n this._selectAll = !!val;\n },\n enumerable: false,\n configurable: true\n });\n ContextMenuClipboardItems.prototype.clone = function () {\n var items = new ContextMenuClipboardItems();\n items._cut = this._cut;\n items._copy = this._copy;\n items._paste = this._paste;\n items._clear = this._clear;\n items._selectAll = this._selectAll;\n return items;\n };\n ContextMenuClipboardItems.classInitializer = null;\n ContextMenuClipboardItems.classSymbols = null; // [];\n ContextMenuClipboardItems.instanceSymbols = null;\n return ContextMenuClipboardItems;\n}(ASObject));\nexport { ContextMenuClipboardItems };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { Errors } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\n// Class: GameInput\nvar GameInput = /** @class */ (function (_super) {\n __extends(GameInput, _super);\n function GameInput() {\n return _super.call(this, undefined) || this;\n }\n Object.defineProperty(GameInput, \"numDevices\", {\n // JS -> AS Bindings\n // AS -> JS Bindings\n // static _numDevices: number /*int*/;\n // static _isSupported: boolean;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInput', 'static get numDevices', '');\n return 0;\n // return this._numDevices;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInput, \"isSupported\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInput', 'static get isSupported', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n GameInput.getDeviceAt = function (index /*int*/) {\n index = index | 0;\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInput', 'static getDeviceAt', '');\n this.sec.throwError('RangeError', Errors.ParamRangeError, 'index');\n return null;\n };\n // Called whenever the class is initialized.\n GameInput.classInitializer = null;\n // List of static symbols to link.\n GameInput.classSymbols = null; // [];\n // List of instance symbols to link.\n GameInput.instanceSymbols = null; // [];\n return GameInput;\n}(EventDispatcher));\nexport { GameInput };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { Debug } from '@awayjs/core';\n// Class: GameInputControl\nvar GameInputControl = /** @class */ (function (_super) {\n __extends(GameInputControl, _super);\n function GameInputControl() {\n return _super.call(this) || this;\n }\n Object.defineProperty(GameInputControl.prototype, \"numValues\", {\n // _numValues: number /*int*/;\n // _index: number /*int*/;\n // _relative: boolean;\n // _type: string;\n // _hand: string;\n // _finger: string;\n // _device: flash.ui.GameInputDevice;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'get numValues', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputControl.prototype, \"index\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'get index', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputControl.prototype, \"relative\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'get relative', '');\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputControl.prototype, \"type\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'get type', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputControl.prototype, \"hand\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'get hand', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputControl.prototype, \"finger\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'get finger', '');\n return '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputControl.prototype, \"device\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'get device', '');\n return null;\n },\n enumerable: false,\n configurable: true\n });\n GameInputControl.prototype.getValueAt = function (index) {\n if (index === void 0) { index = 0; }\n index = index | 0;\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputControl', 'getValueAt', '');\n return 0;\n };\n // Called whenever the class is initialized.\n GameInputControl.classInitializer = null;\n // List of static symbols to link.\n GameInputControl.classSymbols = null; // [];\n // List of instance symbols to link.\n GameInputControl.instanceSymbols = null; // [];\n return GameInputControl;\n}(EventDispatcher));\nexport { GameInputControl };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n// Class: GameInputControlType\nvar GameInputControlType = /** @class */ (function (_super) {\n __extends(GameInputControlType, _super);\n function GameInputControlType() {\n return _super.call(this) || this;\n }\n // Called whenever the class is initialized.\n GameInputControlType.classInitializer = null;\n // List of static symbols to link.\n GameInputControlType.classSymbols = null; // [];\n // List of instance symbols to link.\n GameInputControlType.instanceSymbols = null; // [];\n GameInputControlType.MOVEMENT = 'movement';\n GameInputControlType.ROTATION = 'rotation';\n GameInputControlType.DIRECTION = 'direction';\n GameInputControlType.ACCELERATION = 'acceleration';\n GameInputControlType.BUTTON = 'button';\n GameInputControlType.TRIGGER = 'trigger';\n return GameInputControlType;\n}(ASObject));\nexport { GameInputControlType };\n","import { __extends } from \"tslib\";\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { Debug } from '@awayjs/core';\n// Class: GameInputDevice\nvar GameInputDevice = /** @class */ (function (_super) {\n __extends(GameInputDevice, _super);\n function GameInputDevice() {\n return _super.call(this) || this;\n }\n Object.defineProperty(GameInputDevice.prototype, \"numControls\", {\n // _numControls: number /*int*/;\n // _sampleInterval: number /*int*/;\n // _enabled: boolean;\n // _id: string;\n // _name: string;\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'get numControls', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputDevice.prototype, \"sampleInterval\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'get sampleInterval', '');\n return;\n // return this._sampleInterval;\n },\n set: function (val /*int*/) {\n val = val | 0;\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'set sampleInterval', '');\n // this._sampleInterval = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputDevice.prototype, \"enabled\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'get enabled', '');\n // return this._enabled;\n return true;\n },\n set: function (val) {\n val = !!val;\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'set enabled', '');\n // this._enabled = val;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GameInputDevice.prototype, \"name\", {\n // public get id(): string {\n // \t// @todo\n // \tDebug.throwPIR('playerglobals/ui/GameInputDevice', 'get id', '');\n // \treturn '';\n // \t// return this._id;\n // }\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'get name', '');\n return '';\n // return this._name;\n },\n enumerable: false,\n configurable: true\n });\n GameInputDevice.prototype.getControlAt = function (i /*int*/) {\n i = i | 0;\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'getControlAt', '');\n return null;\n };\n GameInputDevice.prototype.startCachingSamples = function (numSamples /*int*/, controls) {\n numSamples = numSamples | 0;\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'startCachingSamples', '');\n return;\n };\n GameInputDevice.prototype.stopCachingSamples = function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'stopCachingSamples', '');\n return;\n };\n GameInputDevice.prototype.getCachedSamples = function (data, append) {\n if (append === void 0) { append = false; }\n append = !!append;\n // @todo\n Debug.throwPIR('playerglobals/ui/GameInputDevice', 'getCachedSamples', '');\n return 0;\n };\n // Called whenever the class is initialized.\n GameInputDevice.classInitializer = null;\n // List of static symbols to link.\n GameInputDevice.classSymbols = null; // [];\n // List of instance symbols to link.\n GameInputDevice.instanceSymbols = null; // [];\n GameInputDevice.MAX_BUFFER_SIZE = 4800;\n return GameInputDevice;\n}(EventDispatcher));\nexport { GameInputDevice };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n// Class: GameInputFinger\nvar GameInputFinger = /** @class */ (function (_super) {\n __extends(GameInputFinger, _super);\n function GameInputFinger() {\n return _super.call(this) || this;\n }\n // Called whenever the class is initialized.\n GameInputFinger.classInitializer = null;\n // List of static symbols to link.\n GameInputFinger.classSymbols = null; // [];\n // List of instance symbols to link.\n GameInputFinger.instanceSymbols = null; // [];\n GameInputFinger.THUMB = 'thumb';\n GameInputFinger.INDEX = 'index';\n GameInputFinger.MIDDLE = 'middle';\n GameInputFinger.UNKNOWN = 'unknown';\n return GameInputFinger;\n}(ASObject));\nexport { GameInputFinger };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n// Class: GameInputHand\nvar GameInputHand = /** @class */ (function (_super) {\n __extends(GameInputHand, _super);\n function GameInputHand() {\n return _super.call(this) || this;\n }\n // Called whenever the class is initialized.\n GameInputHand.classInitializer = null;\n // List of static symbols to link.\n GameInputHand.classSymbols = null; // [];\n // List of instance symbols to link.\n GameInputHand.instanceSymbols = null; // [];\n GameInputHand.RIGHT = 'right';\n GameInputHand.LEFT = 'left';\n GameInputHand.UNKNOWN = 'unknown';\n return GameInputHand;\n}(ASObject));\nexport { GameInputHand };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nimport { Debug } from '@awayjs/core';\nvar Mouse = /** @class */ (function (_super) {\n __extends(Mouse, _super);\n function Mouse() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(Mouse, \"cursor\", {\n /*\n The name of the native cursor.\n */\n get: function () {\n return Mouse._cursor;\n },\n set: function (value) {\n Mouse._cursor = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Mouse, \"supportsCursor\", {\n /*\n [read-only] Indicates whether the computer or device displays a persistent cursor.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Mouse', 'static get supportsCursor', '');\n return true;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Mouse, \"supportsNativeCursor\", {\n /*\n [read-only] Indicates whether the current configuration supports native cursors.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Mouse', 'static get supportsNativeCursor', '');\n return true;\n },\n enumerable: false,\n configurable: true\n });\n /*\n Hides the pointer.\n */\n Mouse.hide = function () {\n this.sec.player.mouseManager.showCursor = false;\n // @todo\n // Debug.throwPIR('playerglobals/ui/Mouse', 'static hide', '');\n };\n /*\n Displays the pointer.\n */\n Mouse.show = function () {\n this.sec.player.mouseManager.showCursor = true;\n // @todo\n // Debug.throwPIR('playerglobals/ui/Mouse', 'static show', '');\n };\n /*\n Registers a native cursor under the given name, with the given data.\n */\n Mouse.registerCursor = function (name, cursor) {\n // @todo\n Debug.throwPIR('playerglobals/ui/Mouse', 'static registerCursor', '');\n };\n /*\n Unregisters a native cursor under the given name, with the given data.\n */\n Mouse.unregisterCursor = function (name) {\n // @todo\n Debug.throwPIR('playerglobals/ui/Mouse', 'static unregisterCursor', '');\n };\n return Mouse;\n}(ASObject));\nexport { Mouse };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * flash.ui.MouseCursorData — data holder for Mouse.registerCursor().\n *\n * Custom native mouse cursors are not rendered by AwayFL (Mouse.registerCursor is a\n * no-op), but content that constructs this class must not hit\n * \"Class native is not defined: flash.ui.MouseCursorData\", so a working data holder\n * is linked. (A fresh implementation: the _shumway_flash version has stale imports.)\n */\nvar MouseCursorData = /** @class */ (function (_super) {\n __extends(MouseCursorData, _super);\n function MouseCursorData() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._data = null;\n _this._hotSpot = null;\n _this._frameRate = 0;\n return _this;\n }\n Object.defineProperty(MouseCursorData.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (value) {\n this._data = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseCursorData.prototype, \"hotSpot\", {\n get: function () {\n return this._hotSpot;\n },\n set: function (value) {\n this._hotSpot = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MouseCursorData.prototype, \"frameRate\", {\n get: function () {\n return this._frameRate;\n },\n set: function (value) {\n this._frameRate = +value;\n },\n enumerable: false,\n configurable: true\n });\n MouseCursorData.classInitializer = null;\n MouseCursorData.classSymbols = null;\n MouseCursorData.instanceSymbols = null;\n return MouseCursorData;\n}(ASObject));\nexport { MouseCursorData };\n","/**\n * The MultitouchInputMode class provides values for the\n * <codeph class=\"+ topic/ph pr-d/codeph \">inputMode</codeph> property in the flash.ui.Multitouch class.\n * These values set the type of touch events the Flash runtime dispatches\n * when the user interacts with a touch-enabled device.\n */\nvar MultitouchInputMode = /** @class */ (function () {\n function MultitouchInputMode() {\n }\n /**\n * Specifies that TransformGestureEvent, PressAndTapGestureEvent,\n * and GestureEvent events are dispatched for the related user interaction supported by the current environment,\n * and other touch events (such as a simple tap) are interpreted as mouse events.\n */\n MultitouchInputMode.GESTURE = 'gesture';\n /**\n * Specifies that all user contact with a touch-enabled device is interpreted as a type of mouse event.\n */\n MultitouchInputMode.NONE = 'none';\n /**\n * Specifies that events are dispatched only for basic touch events,\n * such as a single finger tap. When you use this setting,\n * events listed in the TouchEvent class are dispatched; events listed in the TransformGestureEvent,\n * PressAndTapGestureEvent, and GestureEvent classes are not dispatched.\n */\n MultitouchInputMode.TOUCH_POINT = 'touchPoint';\n return MultitouchInputMode;\n}());\nexport { MultitouchInputMode };\n","import { Debug } from '@awayjs/core';\n/**\n * The Multitouch class manages and provides information about the current environment's support for handling\n * contact from user input devices, including contact that has two or more touch points\n * (such as a user's fingers on a touch screen).\n * When a user interacts with a device such as a mobile phone or tablet with a touch screen, the user typically\n * touches the screen with his or her fingers or a pointing device. While there is a broad range of pointing devices,\n * such as a mouse or a stylus, many of these devices only have a single point of contact with an application.\n * For pointing\n * devices with a single point of contact,\n * user interaction events can be handled as a mouse event, or using a basic set of touch events\n * (called \"touch point\" events).\n * However, for pointing devices that have several\n * points of contact and perform complex movement, such as the human hand,\n * Flash runtimes support an additional set of event handling API called gesture events. The API\n * for handling user interaction with these gesture events includes the following classes:\n * <p class=\"- topic/p \"><ul class=\"- topic/ul \"><li class=\"- topic/li \">flash.events.TouchEvent</li>\n * <li class=\"- topic/li \">flash.events.GestureEvent</li><li class=\"- topic/li \">flash.events.GesturePhase</li>\n * <li class=\"- topic/li \">flash.events.TransformGestureEvent</li>\n * <li class=\"- topic/li \">flash.events.PressAndTapGestureEvent</li>\n * </ul></p>\n * <p class=\"- topic/p \">Use the listed classes to write code that handles touch events.\n * Use the Multitouch class to determine the\n * current environment's support for touch interaction, and to manage the support of touch interaction if\n * the current environment supports touch input.</p><p class=\"- topic/p \">\n * You cannot create a Multitouch object directly from ActionScript code.\n * If you call <codeph class=\"+ topic/ph pr-d/codeph \">new Multitouch()</codeph>,\n * an exception is thrown.</p><p class=\"- topic/p \"><b class=\"+ topic/ph hi-d/b \">Note:</b>\n * The Multitouch feature is not supported for SWF files embedded in HTML running on Mac OS.</p>\n *\n */\nvar Multitouch = /** @class */ (function () {\n function Multitouch() {\n }\n Object.defineProperty(Multitouch, \"inputMode\", {\n /**\n * Identifies the multi-touch mode for touch and gesture event handling. Use this property to manage\n * whether or not events are dispatched as touch events with multiple points of contact and specific events\n * for different gestures (such as rotation and pan), or only a single point of contact (such as tap), or\n * none at all (contact is handled as a mouse event).\n * To set this property, use values from the flash.ui.MultitouchInputMode class.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static get inputMode', '');\n return '';\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static set inputMode', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multitouch, \"mapTouchToMouse\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static get mapTouchToMouse', '');\n return false;\n },\n set: function (value) {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static set mapTouchToMouse', '');\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multitouch, \"maxTouchPoints\", {\n /**\n * The maximum number of concurrent touch points supported by the current environment.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static get maxTouchPoints', '');\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multitouch, \"supportedGestures\", {\n /**\n * A Vector array (a typed array of string values) of multi-touch contact\n * types supported in the current environment.\n * The array of strings\n * can be used as event types to register event listeners.\n * Possible values are constants from the GestureEvent, PressAndTapGestureEvent, and\n * TransformGestureEvent classes (such as GESTURE_PAN).\n * If the Flash runtime is in an environment that does not support any multi-touch gestures,\n * the value is null.Note: For Mac OS 10.5.3 and later, Multitouch.supportedGestures returns\n * non-null values (possibly indicating incorrectly that gesture events are supported)\n * even if the current hardware does not support gesture input.Use this property\n * to test for multi-touch gesture support. Then, use event handlers for the available multi-touch\n * gestures. For those gestures that are not supported in the current evironment, you'll need to create alternative\n * event handling.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static get supportedGestures', '');\n return [];\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multitouch, \"supportsGestureEvents\", {\n /**\n * Indicates whether the current environment supports gesture input, such as rotating two fingers\n * around a touch screen. Gesture events are listed in the TransformGestureEvent,\n * PressAndTapGestureEvent, and GestureEvent classes.\n * Note: For Mac OS 10.5.3 and later, this value is always true. Multitouch.supportsGestureEvent returns\n * true even if the hardware does not support gesture events.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static get supportsGestureEvents', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Multitouch, \"supportsTouchEvents\", {\n /**\n * Indicates whether the current environment supports basic touch input, such as a single finger tap.\n * Touch events are listed in the TouchEvent class.\n */\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/ui/Multitouch', 'static get supportsTouchEvents', '');\n return false;\n },\n enumerable: false,\n configurable: true\n });\n return Multitouch;\n}());\nexport { Multitouch };\n","import { __extends } from \"tslib\";\nimport { warning } from '@awayfl/swf-loader';\nimport { EventDispatcher } from '../events/EventDispatcher';\nimport { Errors } from '@awayfl/avm2';\nimport { TimerEvent } from '../events/TimerEvent';\n// Class: Timer\nvar Timer = /** @class */ (function (_super) {\n __extends(Timer, _super);\n function Timer(delay, repeatCount /*int = 0 */) {\n var _this = _super.call(this) || this;\n _this._delay = +delay;\n _this._repeatCount = repeatCount | 0;\n _this._iteration = 0;\n return _this;\n }\n Object.defineProperty(Timer.prototype, \"running\", {\n get: function () {\n return this._running;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Timer.prototype, \"delay\", {\n get: function () {\n return this._delay;\n },\n set: function (value) {\n value = +value;\n if (value < 0 || !isFinite(value)) {\n this.sec.throwError('RangeError', Errors.DelayRangeError);\n }\n this._delay = value;\n if (this._running) {\n this.stop();\n this.start();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Timer.prototype, \"repeatCount\", {\n get: function () {\n return this._repeatCount;\n },\n set: function (value) {\n this._repeatCount = value | 0;\n if (this._repeatCount && this._running && this._iteration >= this._repeatCount) {\n this.stop();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Timer.prototype, \"currentCount\", {\n get: function () {\n return this._iteration;\n },\n enumerable: false,\n configurable: true\n });\n Timer.prototype.reset = function () {\n if (this._running) {\n this.stop();\n }\n this._iteration = 0;\n };\n Timer.prototype.stop = function () {\n this._running = false;\n window.clearInterval(this._interval);\n };\n Timer.prototype.start = function () {\n if (this._running) {\n return;\n }\n this._running = true;\n this._interval = window.setInterval(this._tick.bind(this), this._delay);\n };\n Timer.prototype._tick = function () {\n this._iteration++;\n if (!this._running) {\n return;\n }\n if (Timer.dispatchingEnabled) {\n //enterTimeline(\"Timer.Timer\");\n try {\n this.dispatchEvent(new this.sec.flash.events.TimerEvent('timer', true, false));\n }\n catch (e) {\n warning('caught error under Timer TIMER event: ', e);\n }\n //leaveTimeline();\n }\n if (this._repeatCount !== 0 && this._iteration >= this._repeatCount) {\n this.stop();\n //enterTimeline(\"Timer.TimerComplete\");\n try {\n this.dispatchEvent(new this.sec.flash.events.TimerEvent(TimerEvent.TIMER_COMPLETE, false, false));\n }\n catch (e) {\n warning('caught error under Timer COMPLETE event: ', e);\n }\n //leaveTimeline();\n }\n };\n Timer.classInitializer = null;\n Timer.classSymbols = null; // [];\n Timer.instanceSymbols = null;\n /**\n * This lets you toggle timer event dispatching which is useful when trying to profile other\n * parts of the system.\n */\n Timer.dispatchingEnabled = true;\n return Timer;\n}(EventDispatcher));\nexport { Timer };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\nvar CompressionAlgorithm = /** @class */ (function (_super) {\n __extends(CompressionAlgorithm, _super);\n function CompressionAlgorithm() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CompressionAlgorithm.$BgDEFLATE = 'deflate';\n CompressionAlgorithm.$BgLZMA = 'lzma';\n CompressionAlgorithm.$BgZLIB = 'zlib';\n return CompressionAlgorithm;\n}(ASObject));\nexport { CompressionAlgorithm };\n","import { __extends } from \"tslib\";\nimport { Debug } from '@awayjs/core';\nimport { ContentElement } from './ContentElement';\nvar noLogs = true;\nvar GroupElement = /** @class */ (function (_super) {\n __extends(GroupElement, _super);\n function GroupElement(elements, elementFormat, eventMirror, textRotation) {\n if (elements === void 0) { elements = null; }\n if (elementFormat === void 0) { elementFormat = null; }\n if (eventMirror === void 0) { eventMirror = null; }\n if (textRotation === void 0) { textRotation = 'rotate0'; }\n var _this = _super.call(this, elementFormat, eventMirror, textRotation) || this;\n _this._elements = elements ? elements._buffer : [];\n noLogs || console.log('[GroupElement] ' + _this._id + ' constructor', 'elements', elements);\n return _this;\n }\n GroupElement.prototype.setTextBlock = function (value) {\n noLogs || console.log('[GroupElement] ' + this._id + ' - set textBlock', value);\n _super.prototype.setTextBlock.call(this, value);\n for (var i = 0; i < this._elements.length; i++) {\n this._elements[i].setTextBlock(value);\n this._elements[i].setGroupElement(this);\n }\n };\n Object.defineProperty(GroupElement.prototype, \"elementCount\", {\n // AS -> JS Bindings\n // _elementCount: number /*int*/;\n get: function () {\n noLogs || console.log('[GroupElement] ' + this._id + ' - elementCount', this._elements.length);\n return this._elements.length;\n },\n enumerable: false,\n configurable: true\n });\n GroupElement.prototype.getElementAt = function (index /*int*/) {\n noLogs || console.log('[GroupElement] ' + this._id + ' - getElementAt', index, this._elements[index]);\n return this._elements[index];\n };\n GroupElement.prototype.setElements = function (value /*ASVector<any>*/) {\n //value = value;\n noLogs || console.log('[GroupElement] ' + this._id + ' - setElements', value);\n this._elements = value._buffer;\n for (var i = 0; i < this._elements.length; i++) {\n this._elements[i].setTextBlock(this._textBlock);\n this._elements[i].setGroupElement(this);\n }\n if (this._textBlock)\n this._textBlock.setTextDataDirty();\n };\n GroupElement.prototype.groupElements = function (beginIndex /*int*/, endIndex /*int*/) {\n //beginIndex = beginIndex | 0;\n //endIndex = endIndex | 0;\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GroupElement', 'groupElements', '');\n return null;\n };\n GroupElement.prototype.ungroupElements = function (groupIndex /*int*/) {\n //groupIndex = groupIndex | 0;\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GroupElement', 'ungroupElements', '');\n };\n GroupElement.prototype.mergeTextElements = function (beginIndex /*int*/, endIndex /*int*/) {\n //beginIndex = beginIndex | 0;\n //endIndex = endIndex | 0;\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GroupElement', 'mergeTextElements', '');\n return null;\n };\n GroupElement.prototype.splitTextElement = function (elementIndex /*int*/, splitIndex /*int*/) {\n //elementIndex = elementIndex | 0;\n //splitIndex = splitIndex | 0;\n // @todo\n Debug.throwPIR('playerglobals/text/engine/GroupElement', 'groupElements', '');\n return null;\n };\n GroupElement.prototype.replaceElements = function (beginIndex /*int*/, endIndex /*int*/, newElements /*ASVector<any>*/) {\n noLogs || console.log('[GroupElement] ' + this._id + ' - replaceElements', 'beginIndex', beginIndex, 'endIndex', endIndex, 'newElements', newElements);\n var cnt = 0;\n if (endIndex - beginIndex > newElements._buffer.length) {\n console.warn('[GroupElement] - replaceElements error with range and vector size');\n }\n for (var i = beginIndex; i <= endIndex; i++) {\n this._elements[i] = newElements._buffer[cnt++];\n }\n for (var i = 0; i < this._elements.length; i++) {\n this._elements[i].setTextBlock(this._textBlock);\n this._elements[i].setGroupElement(this);\n }\n if (this._textBlock)\n this._textBlock.setTextDataDirty();\n return newElements;\n };\n GroupElement.prototype.getElementAtCharIndex = function (charIndex /*int*/) {\n //charIndex = charIndex | 0;\n noLogs || console.log('[GroupElement] ' + this._id + ' - getElementAtCharIndex', charIndex);\n return null;\n };\n GroupElement.forceNativeConstructor = true;\n GroupElement.forceNativeMethods = true;\n return GroupElement;\n}(ContentElement));\nexport { GroupElement };\n","import { __extends } from \"tslib\";\nimport { ASObject } from '@awayfl/avm2';\n/**\n * these classes are used to overrite some methods in the TLF classes,\n * because the abc-classes make problems i could not fix otherwise\n */\n// flashx/textlayout/property/Property\nvar Property = /** @class */ (function (_super) {\n __extends(Property, _super);\n function Property() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Property.createObjectWithPrototype = function (obj) {\n var newObj = obj.sec.AXObject.axConstruct([]);\n for (var attr in obj) {\n if (obj.hasOwnProperty(attr)) {\n newObj[attr] = obj[attr];\n }\n }\n return newObj;\n };\n Property.forceNativeConstructor = false;\n Property.forceNativeMethods = true;\n return Property;\n}(ASObject));\nexport { Property };\n//flashx.textLayout.conversion.BaseTextLayoutImporter\nvar BaseTextLayoutImporter = /** @class */ (function (_super) {\n __extends(BaseTextLayoutImporter, _super);\n function BaseTextLayoutImporter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BaseTextLayoutImporter.prototype.checkNamespace = function (param1) {\n var _loc2 = param1.$Bgnamespace();\n //console.log('namespace of xml', _loc2.prefix, _loc2.uri, param1);\n //console.log('namespace of this', (<any> this).$Bgns.prefix, (<any> this).$Bgns.uri);\n if (!this._textFlowNamespace) {\n if (_loc2.uri != this.$Bgns.uri) {\n return false;\n }\n this._textFlowNamespace = _loc2;\n }\n else if (_loc2.uri != this._textFlowNamespace.uri) {\n return false;\n }\n //console.log('_textFlowNamespace', (<any> this)._textFlowNamespace.uri);\n return true;\n };\n BaseTextLayoutImporter.forceNativeConstructor = false;\n BaseTextLayoutImporter.forceNativeMethods = true;\n return BaseTextLayoutImporter;\n}(ASObject));\nexport { BaseTextLayoutImporter };\nvar TLFTextField = /** @class */ (function (_super) {\n __extends(TLFTextField, _super);\n function TLFTextField() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(TLFTextField.prototype, \"text\", {\n set: function (param1) {\n console.log('set text native', param1);\n },\n enumerable: false,\n configurable: true\n });\n TLFTextField.forceNativeConstructor = false;\n TLFTextField.forceNativeMethods = true;\n return TLFTextField;\n}(ASObject));\nexport { TLFTextField };\n","//import { AccessibilityProperties } from './accessibility/AccessibilityProperties';\n//import { Accessibility } from './accessibility/Accessibility';\n//import { AccessibilityImplementation } from './accessibility/AccessibilityImplementation';\nimport { Clipboard } from './desktop/Clipboard';\nimport { ClipboardFormats } from './desktop/ClipboardFormats';\n//import { ClipboardTransferMode } from './_shumway_flash/desktop/ClipboardTransferMode';\nimport { Bitmap } from './display/Bitmap';\nimport { BitmapData } from './display/BitmapData';\nimport { BitmapDataChannel } from './display/BitmapDataChannel';\n//import { ColorCorrection } from './display/ColorCorrection';\nimport { DisplayObject } from './display/DisplayObject';\nimport { DisplayObjectContainer } from './display/DisplayObjectContainer';\nimport { FrameLabel } from './display/FrameLabel';\nimport { Graphics } from './display/Graphics';\nimport { GraphicsPath } from './display/GraphicsPath';\nimport { GraphicsSolidFill } from './display/GraphicsSolidFill';\nimport { GraphicsEndFill } from './display/GraphicsEndFill';\nimport { GraphicsGradientFill } from './display/GraphicsGradientFill';\nimport { GraphicsBitmapFill } from './display/GraphicsBitmapFill';\nimport { GraphicsStroke } from './display/GraphicsStroke';\nimport { GraphicsTrianglePath } from './display/GraphicsTrianglePath';\nimport { InteractiveObject } from './display/InteractiveObject';\nimport { Loader } from './display/Loader';\nimport { LoaderInfo } from './display/LoaderInfo';\nimport { MovieClip } from './display/MovieClip';\nimport { NativeMenuItem } from './display/NativeMenuItem';\nimport { Scene } from './display/Scene';\nimport { Shape } from './display/Shape';\nimport { SimpleButton } from './display/SimpleButton';\nimport { Sprite } from './display/Sprite';\nimport { Stage } from './display/Stage';\nimport { EOFError } from './errors/EOFError';\nimport { IllegalOperationError } from './errors/IllegalOperationError';\nimport { InvalidSWFError } from './errors/InvalidSWFError';\nimport { IOError } from './errors/IOError';\nimport { MemoryError } from './errors/MemoryError';\nimport { ScriptTimeoutError } from './errors/ScriptTimeoutError';\nimport { StackOverflowError } from './errors/StackOverflowError';\nimport { ColorTransform } from './geom/ColorTransform';\nimport { Matrix } from './geom/Matrix';\nimport { Matrix3D } from './geom/Matrix3D';\nimport { Point } from './geom/Point';\nimport { Rectangle } from './geom/Rectangle';\nimport { Transform } from './geom/Transform';\nimport { Vector3D } from './geom/Vector3D';\nimport { LocaleID } from './globalization/LocaleID';\nimport { AccelerometerEvent } from './events/AccelerometerEvent';\nimport { ActivityEvent } from './events/ActivityEvent';\nimport { AsyncErrorEvent } from './events/AsyncErrorEvent';\nimport { ContextMenuEvent } from './events/ContextMenuEvent';\nimport { DataEvent } from './events/DataEvent';\nimport { ErrorEvent } from './events/ErrorEvent';\nimport { EventDispatcher } from './events/EventDispatcher';\nimport { Event } from './events/Event';\nimport { EventPhase } from './events/EventPhase';\nimport { FocusEvent } from './events/FocusEvent';\nimport { FullScreenEvent } from './events/FullScreenEvent';\nimport { GameInputEvent } from './events/GameInputEvent';\nimport { GeolocationEvent } from './events/GeolocationEvent';\nimport { GestureEvent } from './events/GestureEvent';\nimport { GesturePhase } from './events/GesturePhase';\nimport { HTTPStatusEvent } from './events/HTTPStatusEvent';\nimport { IMEEvent } from './events/IMEEvent';\nimport { IOErrorEvent } from './events/IOErrorEvent';\nimport { KeyboardEvent } from './events/KeyboardEvent';\nimport { MouseEvent } from './events/MouseEvent';\nimport { NetDataEvent } from './events/NetDataEvent';\nimport { NetStatusEvent } from './events/NetStatusEvent';\nimport { OutputProgressEvent } from './events/OutputProgressEvent';\nimport { PressAndTapGestureEvent } from './events/PressAndTapGestureEvent';\nimport { ProgressEvent } from './events/ProgressEvent';\nimport { SampleDataEvent } from './events/SampleDataEvent';\nimport { ShaderEvent } from './events/ShaderEvent';\nimport { SoftKeyboardEvent } from './events/SoftKeyboardEvent';\nimport { SoftKeyboardTrigger } from './events/SoftKeyboardTrigger';\nimport { StageVideoAvailabilityEvent } from './events/StageVideoAvailabilityEvent';\nimport { StageVideoEvent } from './events/StageVideoEvent';\nimport { StatusEvent } from './events/StatusEvent';\nimport { SyncEvent } from './events/SyncEvent';\nimport { TextEvent } from './events/TextEvent';\nimport { ThrottleEvent } from './events/ThrottleEvent';\nimport { ThrottleType } from './events/ThrottleType';\nimport { TimerEvent } from './events/TimerEvent';\nimport { TouchEvent } from './events/TouchEvent';\nimport { TransformGestureEvent } from './events/TransformGestureEvent';\nimport { UncaughtErrorEvent } from './events/UncaughtErrorEvent';\nimport { UncaughtErrorEvents } from './events/UncaughtErrorEvents';\nimport { VideoEvent } from './events/VideoEvent';\nimport { ExternalInterface } from './external/ExternalInterface';\nimport { BevelFilter } from './filters/BevelFilter';\nimport { BitmapFilter } from './filters/BitmapFilter';\nimport { BlurFilter } from './filters/BlurFilter';\nimport { ColorMatrixFilter } from './filters/ColorMatrixFilter';\nimport { ConvolutionFilter } from './filters/ConvolutionFilter';\nimport { DisplacementMapFilter } from './filters/DisplacementMapFilter';\nimport { DropShadowFilter } from './filters/DropShadowFilter';\nimport { GlowFilter } from './filters/GlowFilter';\nimport { GradientBevelFilter } from './filters/GradientBevelFilter';\nimport { GradientGlowFilter } from './filters/GradientGlowFilter';\nimport { NumberFormatter } from './globalization/NumberFormatter';\nimport { Sound } from './media/Sound';\nimport { SoundChannel } from './media/SoundChannel';\nimport { SoundTransform } from './media/SoundTransform';\nimport { SoundMixer } from './media/SoundMixer';\nimport { FileFilter } from './net/FileFilter';\nimport { FileReference } from './net/FileReference';\nimport { SharedObject } from './net/SharedObject';\nimport { URLRequest } from './net/URLRequest';\nimport { URLLoader } from './net/URLLoader';\nimport { URLVariables } from './net/URLVariables';\nimport { LocalConnection } from './net/LocalConnection';\nimport { NetConnection } from './net/NetConnection';\nimport { Responder } from './net/Responder';\nimport { Socket } from './net/Socket';\nimport { SecurityDomain } from './system/SecurityDomain';\nimport { Capabilities } from './system/Capabilities';\nimport { fscommand } from './system/FSCommand';\nimport { Security } from './system/Security';\nimport { LoaderContext } from './system/LoaderContext';\nimport { ApplicationDomain } from './system/ApplicationDomain';\nimport { System } from './system/System';\nimport { Font } from './text/Font';\nimport { StyleSheet } from './text/StyleSheet';\nimport { TextField } from './text/TextField';\nimport { TextFormat } from './text/TextFormat';\nimport { TextRun } from './text/TextRun';\nimport { StaticText } from './text/StaticText';\nimport { TextRenderer } from './text/TextRenderer';\nimport { TextFormatDisplay } from './text/TextFormatDisplay';\nimport { TextExtent } from './text/TextExtent';\nimport { TextDisplayMode } from './text/TextDisplayMode';\nimport { TextColorType } from './text/TextColorType';\nimport { FontType } from './text/FontType';\nimport { CSMSettings } from './text/CSMSettings';\nimport { TextLineMetrics } from './text/TextLineMetrics';\nimport { TextSnapshot } from './text/TextSnapshot';\nimport { CompositionAttributeRange } from './text/ime/CompositionAttributeRange';\n//import { IIMEClient } from './text/ime/IIMEClient';\nimport { BreakOpportunity } from './text/engine/BreakOpportunity';\nimport { CFFHinting } from './text/engine/CFFHinting';\nimport { ContentElement } from './text/engine/ContentElement';\nimport { DigitCase } from './text/engine/DigitCase';\nimport { DigitWidth } from './text/engine/DigitWidth';\nimport { EastAsianJustifier } from './text/engine/EastAsianJustifier';\nimport { ElementFormat } from './text/engine/ElementFormat';\nimport { FontDescription } from './text/engine/FontDescription';\nimport { FontLookup } from './text/engine/FontLookup';\nimport { FontMetrics } from './text/engine/FontMetrics';\nimport { FontPosture } from './text/engine/FontPosture';\nimport { FontWeight } from './text/engine/FontWeight';\nimport { GraphicElement } from './text/engine/GraphicElement';\nimport { JustificationStyle } from './text/engine/JustificationStyle';\nimport { Kerning } from './text/engine/Kerning';\nimport { LigatureLevel } from './text/engine/LigatureLevel';\nimport { LineJustification } from './text/engine/LineJustification';\nimport { RenderingMode } from './text/engine/RenderingMode';\nimport { SpaceJustifier } from './text/engine/SpaceJustifier';\nimport { TabAlignment } from './text/engine/TabAlignment';\nimport { TabStop } from './text/engine/TabStop';\nimport { TextBaseline } from './text/engine/TextBaseline';\nimport { TextBlock } from './text/engine/TextBlock';\nimport { TextElement } from './text/engine/TextElement';\nimport { TextJustifier } from './text/engine/TextJustifier';\nimport { TextLine } from './text/engine/TextLine';\nimport { TextLineCreationResult } from './text/engine/TextLineCreationResult';\nimport { TextLineMirrorRegion } from './text/engine/TextLineMirrorRegion';\nimport { TextLineValidity } from './text/engine/TextLineValidity';\nimport { TextRotation } from './text/engine/TextRotation';\nimport { TypographicCase } from './text/engine/TypographicCase';\nimport { Keyboard } from './ui/Keyboard';\nimport { ContextMenu } from './ui/ContextMenu';\nimport { ContextMenuItem } from './ui/ContextMenuItem';\nimport { ContextMenuBuiltInItems } from './ui/ContextMenuBuiltInItems';\nimport { ContextMenuClipboardItems } from './ui/ContextMenuClipboardItems';\nimport { GameInput } from './ui/GameInput';\nimport { GameInputControl } from './ui/GameInputControl';\nimport { GameInputControlType } from './ui/GameInputControlType';\nimport { GameInputDevice } from './ui/GameInputDevice';\nimport { GameInputFinger } from './ui/GameInputFinger';\nimport { GameInputHand } from './ui/GameInputHand';\nimport { Mouse } from './ui/Mouse';\nimport { MouseCursorData } from './ui/MouseCursorData';\nimport { MultitouchInputMode } from './ui/MultitouchInputMode';\nimport { Multitouch } from './ui/Multitouch';\nimport { Timer } from './utils/Timer';\nimport { CompressionAlgorithm } from './utils/CompressionAlgorithm';\nimport { XMLDocument, XMLNode, registerNativeClass, registerNativeFunction } from '@awayfl/avm2';\nimport { release } from '@awayfl/swf-loader';\nimport { BlendMode } from '@awayjs/stage';\nimport { GroupElement } from './text/engine/GroupElement';\nimport { ByteArray } from '@awayfl/avm2';\nimport { BaseTextLayoutImporter, Property } from './text/engine/NativehacksForTLF';\nfunction M(name, asClass) {\n registerNativeClass(name, asClass);\n}\nexport function initLink() {\n release || console.log('init link');\n //M('fl.text.TLFTextField', TLFTextField);\n M('flashx.textLayout.conversion.BaseTextLayoutImporter', BaseTextLayoutImporter);\n M('flashx.textLayout.property.Property', Property);\n //M('flash.accessibility.Accessibility', Accessibility);\n //M('flash.accessibility.AccessibilityProperties', AccessibilityProperties);\n //M('flash.accessibility.AccessibilityImplementation', AccessibilityImplementation);\n // flash.concurrent\n // flash.crypto\n // flash.data\n M('flash.desktop.Clipboard', Clipboard);\n M('flash.desktop.ClipboardFormats', ClipboardFormats);\n //M('flash.desktop.ClipboardTransferMode', ClipboardTransferMode);\n //M('flash.display.ActionScriptVersion', ActionScriptVersion);\n //M('flash.display.AVM1Movie', AVM1Movie);\n M('flash.display.Bitmap', Bitmap);\n M('flash.display.BitmapData', BitmapData);\n M('flash.display.BitmapDataChannel', BitmapDataChannel);\n //M('flash.display.BitmapEncodingColorSpace', BitmapEncodingColorSpace);\n M('flash.display.BlendMode', BlendMode);\n //M('flash.display.CapsStyle', CapsStyle);\n //M('flash.display.ColorCorrection', ColorCorrection);\n //M('flash.display.ColorCorrectionSupport', ColorCorrectionSupport);\n M('flash.display.DisplayObject', DisplayObject);\n M('flash.display.DisplayObjectContainer', DisplayObjectContainer);\n //M('flash.display.FocusDirection', FocusDirection);//AIR\n M('flash.display.FrameLabel', FrameLabel);\n //M('flash.display.GradientType', GradientType);\n M('flash.display.Graphics', Graphics);\n M('flash.display.GraphicsBitmapFill', GraphicsBitmapFill);\n M('flash.display.GraphicsEndFill', GraphicsEndFill);\n M('flash.display.GraphicsGradientFill', GraphicsGradientFill);\n M('flash.display.GraphicsPath', GraphicsPath);\n //M('flash.display.GraphicsPathCommand', GraphicsPathCommand);\n //M('flash.display.GraphicsPathWinding', GraphicsPathWinding);\n //M('flash.display.GraphicsShaderFill', GraphicsShaderFill);\n M('flash.display.GraphicsSolidFill', GraphicsSolidFill);\n M('flash.display.GraphicsStroke', GraphicsStroke);\n M('flash.display.GraphicsTrianglePath', GraphicsTrianglePath);\n M('flash.display.InteractiveObject', InteractiveObject);\n //M('flash.display.InterpolationMethod', InterpolationMethod);\n //M('flash.display.JointStyle', JointStyle);\n //M('flash.display.JPEGEncoderOptions', JPEGEncoderOptions);\n //M('flash.display.JPEGXREncoderOptions', JPEGXREncoderOptions);\n //M('flash.display.LineScaleMode', LineScaleMode);\n M('flash.display.Loader', Loader);\n M('flash.display.LoaderInfo', LoaderInfo);\n //M('flash.display.MorphShape', MorphShape);\n M('flash.display.MovieClip', MovieClip);\n //M('flash.display.NativeMenu', NativeMenu);//AIR\n M('flash.display.NativeMenuItem', NativeMenuItem); //AIR\n //M('flash.display.NativeWindow', NativeWindow);//AIR\n //M('flash.display.NativeWindowDisplayState', NativeWindowDisplayState);//AIR\n //M('flash.display.NativeWindowInitOptions', NativeWindowInitOptions);//AIR\n //M('flash.display.NativeWindowRenderMode', NativeWindowRenderMode);//AIR\n //M('flash.display.NativeWindowResize', NativeWindowResize);//AIR\n //M('flash.display.NativeWindowSystemChrome', NativeWindowSystemChrome);//AIR\n //M('flash.display.NativeWindowType', NativeWindowType);//AIR\n //M('flash.display.PixelSnapping', PixelSnapping);\n //M('flash.display.PNGEncoderOptions', PNGEncoderOptions);\n M('flash.display.Scene', Scene);\n //M('flash.display.Screen', Screen);//AIR\n //M('flash.display.ScreenMode', ScreenMode);//AIR\n //M('flash.display.Shader', Shader);\n //M('flash.display.ShaderData', ShaderData);\n //M('flash.display.ShaderInput', ShaderInput);\n //M('flash.display.ShaderJob', ShaderJob);\n //M('flash.display.ShaderParameter', ShaderParameter);\n //M('flash.display.ShaderParameterType', ShaderParameterType);\n //M('flash.display.ShaderPrecision', ShaderPrecision);\n M('flash.display.Shape', Shape);\n M('flash.display.SimpleButton', SimpleButton);\n //M('flash.display.SpreadMethod', SpreadMethod);\n M('flash.display.Sprite', Sprite);\n M('flash.display.Stage', Stage);\n //M('flash.display.Stage3D', Stage3D);\n //M('flash.display.StageAlign', StageAlign);\n //M('flash.display.StageAspectRatio', StageAspectRatio);//AIR\n //M('flash.display.StageDisplayState', StageDisplayState);\n //M('flash.display.StageOrientation', StageOrientation);\n //M('flash.display.StageScaleMode', StageScaleMode);\n //M('flash.display.TriangleCulling', TriangleCulling);\n // flash.display3D\n // flash.display3D.textures\n //M('flash.errors.DRMManagerError', DRMManagerError);//AIR\n M('flash.errors.EOFError', EOFError);\n M('flash.errors.IllegalOperationError', IllegalOperationError);\n M('flash.errors.InvalidSWFError', InvalidSWFError);\n M('flash.errors.IOError', IOError);\n M('flash.errors.MemoryError', MemoryError);\n //M('flash.errors.PermissionError', PermissionError);//AIR\n M('flash.errors.ScriptTimeoutError', ScriptTimeoutError);\n //M('flash.errors.SQLError', SQLError);//AIR\n //M('flash.errors.SQLErrorOpperation', SQLErrorOpperation);//AIR\n M('flash.errors.StackOverflowError', StackOverflowError);\n M('flash.events.AccelerometerEvent', AccelerometerEvent);\n M('flash.events.ActivityEvent', ActivityEvent);\n M('flash.events.AsyncErrorEvent', AsyncErrorEvent);\n //M('flash.events.AudioOutputChangeEvent', AudioOutputChangeEvent);\n //M('flash.events.AVDictionaryDataEvent', AVDictionaryDataEvent);\n //M('flash.events.AVHTTPStatusEvent', AVHTTPStatusEvent);\n //M('flash.events.AVPauseAtPeriodEvent', AVPauseAtPeriodEvent);\n //M('flash.events.BrowserInvokeEvent', BrowserInvokeEvent); //AIR\n M('flash.events.ContextMenuEvent', ContextMenuEvent);\n M('flash.events.DataEvent', DataEvent);\n //M('flash.events.DatagramSocketDataEvent', DatagramSocketDataEvent);//AIR\n //M('flash.events.DeviceRotationEvent', DeviceRotationEvent);//AIR\n //M('flash.events.DNSResolveEvent', DNSResolveEvent);//AIR\n //M('flash.events.DRMAuthentificateEvent', DRMAuthentificateEvent);//AIR\n //M('flash.events.DRMAuthentificationCompleteEvent', DRMAuthentificationCompleteEvent);\n //M('flash.events.DRMAuthentificationErrorEvent', DRMAuthentificationErrorEvent);\n //M('flash.events.DRMDeviceGroupErrorEvent', DRMDeviceGroupErrorEvent);\n //M('flash.events.DRMDeviceGroupEvent', DRMDeviceGroupEvent);\n //M('flash.events.DRMErrorEvent', DRMErrorEvent);\n //M('flash.events.DRMLicenseRequestEvent', DRMLicenseRequestEvent);\n //M('flash.events.DRMMetadataEvent', DRMMetadataEvent);\n //M('flash.events.DRMReturnVoucherCompleteEvent', DRMReturnVoucherCompleteEvent);\n //M('flash.events.DRMReturnVoucherErrorEvent', DRMReturnVoucherErrorEvent);\n //M('flash.events.DRMStatusEvent', DRMStatusEvent);\n M('flash.events.ErrorEvent', ErrorEvent);\n M('flash.events.Event', Event);\n M('flash.events.EventDispatcher', EventDispatcher);\n M('flash.events.EventPhase', EventPhase);\n //M('flash.events.FileListEvent', FileListEvent);//AIR\n M('flash.events.FocusEvent', FocusEvent);\n M('flash.events.FullScreenEvent', FullScreenEvent);\n M('flash.events.GameInputEvent', GameInputEvent); //AIR\n M('flash.events.GeolocationEvent', GeolocationEvent); //AIR\n M('flash.events.GestureEvent', GestureEvent);\n M('flash.events.GesturePhase', GesturePhase);\n //M('flash.events.HTMLUncaughtScriptExceptionEvent', HTMLUncaughtScriptExceptionEvent);\n M('flash.events.HTTPStatusEvent', HTTPStatusEvent);\n M('flash.events.IMEEvent', IMEEvent);\n //M('flash.events.InvokeEvent', InvokeEvent);//AIR\n M('flash.events.IOErrorEvent', IOErrorEvent);\n M('flash.events.KeyboardEvent', KeyboardEvent);\n //M('flash.events.LocationChangedEvent', LocationChangedEvent);//AIR\n //M('flash.events.MediaEvent', MediaEvent);//AIR\n M('flash.events.MouseEvent', MouseEvent);\n //M('flash.events.NativeDragEvent', NativeDragEvent);//AIR\n //M('flash.events.NativeProcessExitEvent', NativeProcessExitEvent);//AIR\n //M('flash.events.NativeWindowBoundsEvent', NativeWindowBoundsEvent);//AIR\n //M('flash.events.NativeWindowDisplayStateEvent', Nativ\n M('flash.events.NetDataEvent', NetDataEvent); //AIR\n //M('flash.events.NetMonitorEvent', NetMonitorEvent);\n M('flash.events.NetStatusEvent', NetStatusEvent);\n M('flash.events.OutputProgressEvent', OutputProgressEvent); //AIR\n //M('flash.events.PermissionEvent', PermissionEvent);\n M('flash.events.PressAndTabGestureEvent', PressAndTapGestureEvent);\n M('flash.events.ProgressEvent', ProgressEvent);\n //M('flash.events.RemoteNotificationEvent', RemoteNotificationEvent);//AIR\n M('flash.events.SampleDataEvent', SampleDataEvent);\n //M('flash.events.ScreenMouseEvent', ScreenMouseEvent);//AIR\n //M('flash.events.SecurityErrorEvent', SecurityErrorEvent);\n //M('flash.events.ServerSocketConnectEvent', ServerSocketConnectEvent);//AIR\n M('flash.events.ShaderEvent', ShaderEvent);\n M('flash.events.SoftKeyboardEvent', SoftKeyboardEvent);\n M('flash.events.SoftKeyboardTrigger', SoftKeyboardTrigger);\n //M('flash.events.SQLEvent', SQLEvent);//AIR\n //M('flash.events.SQLUpdateEvent', SQLUpdateEvent);//AIR\n //M('flash.events.StageOrientationEvent', StageOrientationEvent);//AIR\n M('flash.events.StageVideoAvailabilityEvent', StageVideoAvailabilityEvent);\n M('flash.events.StageVideoEvent', StageVideoEvent);\n M('flash.events.StatusEvent', StatusEvent);\n //M('flash.events.StorageVolumeChangeEvent', StorageVolumeChangeEvent);//AIR\n M('flash.events.SyncEvent', SyncEvent);\n M('flash.events.TextEvent', TextEvent);\n M('flash.events.ThrottleEvent', ThrottleEvent);\n M('flash.events.ThrottleType', ThrottleType);\n M('flash.events.TimerEvent', TimerEvent);\n M('flash.events.TouchEvent', TouchEvent);\n //M('flash.events.TouchEventIntent', TouchEventIntent);//AIR\n M('flash.events.TransformGestureEvent', TransformGestureEvent);\n M('flash.events.UncaughtErrorEvent', UncaughtErrorEvent);\n M('flash.events.UncaughtErrorEvents', UncaughtErrorEvents);\n M('flash.events.VideoEvent', VideoEvent);\n //M('flash.events.VideoTextureEvent', VideoTextureEvent);\n //M('flash.events.VsyncStateChangeAvailabilityEvent', VsyncStateChangeAvailabilityEvent);//AIR\n //M('flash.external.ExtensionContext', ExtensionContext);//AIR\n M('flash.external.ExternalInterface', ExternalInterface);\n // flash.filesystem\n M('flash.filters.BevelFilter', BevelFilter);\n M('flash.filters.BitmapFilter', BitmapFilter);\n //M('flash.filters.BitmapFilterQuality', BitmapFilterQuality);\n //M('flash.filters.BitmapFilterType', BitmapFilterType);\n M('flash.filters.BlurFilter', BlurFilter);\n M('flash.filters.ColorMatrixFilter', ColorMatrixFilter);\n M('flash.filters.ConvolutionFilter', ConvolutionFilter);\n M('flash.filters.DisplacementMapFilter', DisplacementMapFilter);\n //M('flash.filters.DisplacementMapFilterMode', DisplacementMapFilterMode);\n M('flash.filters.DropShadowFilter', DropShadowFilter);\n M('flash.filters.GlowFilter', GlowFilter);\n M('flash.filters.GradientBevelFilter', GradientBevelFilter);\n M('flash.filters.GradientGlowFilter', GradientGlowFilter);\n //M('flash.filters.ShaderFilter', ShaderFilter);\n M('flash.geom.ColorTransform', ColorTransform);\n M('flash.geom.Matrix', Matrix);\n M('flash.geom.Matrix3D', Matrix3D);\n //M('flash.geom.Orientation3D', Orientation3D);\n //M('flash.geom.PerspectiveProjection', PerspectiveProjection);\n M('flash.geom.Point', Point);\n M('flash.geom.Rectangle', Rectangle);\n M('flash.geom.Transform', Transform);\n //M('flash.geom.Utils3D', Utils3D);\n M('flash.geom.Vector3D', Vector3D);\n //M('flash.globalization.Collator', Collator);\n //M('flash.globalization.CollatorMode', CollatorMode);\n //M('flash.globalization.CurrencyFormatter', CurrencyFormatter);\n //M('flash.globalization.CurrencyParseResult', CurrencyParseResult);\n //M('flash.globalization.DateTimeFormatter', DateTimeFormatter);\n //M('flash.globalization.DateTimeNameContext', DateTimeNameContext);\n //M('flash.globalization.DateTimeNameStyle', DateTimeNameStyle);\n //M('flash.globalization.DateTimeStyle', DateTimeStyle);\n //M('flash.globalization.LastOperationStatus', LastOperationStatus);\n M('flash.globalization.LocaleID', LocaleID);\n //M('flash.globalization.NationalDigitsType', NationalDigitsType);\n M('flash.globalization.NumberFormatter', NumberFormatter);\n //M('flash.globalization.NumberParseResult', NumberParseResult);\n //M('flash.globalization.StringTools', StringTools);\n // flash.html\n //M('flash.media.AudioDecoder', AudioDecoder);\n //M('flash.media.AudioDeviceManager', AudioDeviceManager);\n //M('flash.media.AudioOutputChangeReason', AudioOutputChangeReason);\n //M('flash.media.AudioPlaybackMode', AudioPlaybackMode);//AIR\n //M('flash.media.AVNetworkingParams', AVNetworkingParams);\n //M('flash.media.AVTagData', AVTagData);\n //M('flash.media.AVURLLoader', AVURLLoader);\n //M('flash.media.AVURLStream', AVURLStream);\n //M('flash.media.Camera', Camera);\n //M('flash.media.CameraPosition', CameraPosition);//AIR\n //M('flash.media.CameraRoll', CameraRoll);//AIR\n //M('flash.media.CameraRollBrowseOptions', CameraRollBrowseOptions);//AIR\n //M('flash.media.CameraUI', CameraUI);//AIR\n //M('flash.media.H264Level', H264Level);\n //M('flash.media.H264Profile', H264Profile);\n //M('flash.media.H264VideoStreamSettings', H264VideoStreamSettings);\n //M('flash.media.ID3Info', ID3Info);\n //M('flash.media.MediaPromise', MediaPromise);//AIR\n //M('flash.media.MediaType', MediaType);//AIR\n //M('flash.media.Microphone', Microphone);\n //M('flash.media.MicrophoneEnhancedMode', MicrophoneEnhancedMode);\n //M('flash.media.MicrophoneEnhancedOptions', MicrophoneEnhancedOptions);\n M('flash.media.Sound', Sound);\n M('flash.media.SoundChannel', SoundChannel);\n //M('flash.media.SoundCodec', SoundCodec);\n //M('flash.media.SoundloaderContext', SoundloaderContext);\n M('flash.media.SoundMixer', SoundMixer);\n M('flash.media.SoundTransform', SoundTransform);\n //M('flash.media.StageVideo', StageVideo);\n //M('flash.media.StageVideoAvailability', StageVideoAvailability);\n //M('flash.media.StageVideoAvailabilityReason', StageVideoAvailabilityReason);\n //M('flash.media.StageWebView', StageWebView);//AIR\n //M('flash.media.Video', Video);\n //M('flash.media.VideoCodec', VideoCodec);\n //M('flash.media.VideoStatus', VideoStatus);\n //M('flash.media.VideoStreamSettings', VideoStreamSettings);\n //M('flash.net.DatagramSocket', FileFilter);//AIR\n M('flash.net.FileFilter', FileFilter);\n M('flash.net.FileReference', FileReference);\n //M('flash.net.FileReferenceList', FileReferenceList);\n //M('flash.net.GroupSpecifier', GroupSpecifier);\n //M('flash.net.InterfaceAddress', InterfaceAddress);\n //M('flash.net.IPVersion', IPVersion);//AIR\n M('flash.net.LocalConnection', LocalConnection);\n M('flash.net.NetConnection', NetConnection);\n //M('flash.net.NetGroup', NetGroup);\n //M('flash.net.NetGroupInfo', NetGroupInfo);\n //M('flash.net.NetGroupRecieveMode', NetGroupRecieveMode);\n //M('flash.net.NetGroupReplicationStrategy', NetGroupReplicationStrategy);\n //M('flash.net.NetMonitor', NetMonitor);\n //M('flash.net.NetStream', NetStream);\n //M('flash.net.NetStreamAppendBytesAction', NetStreamAppendBytesAction);\n //M('flash.net.NetStreamInfo', NetStreamInfo);\n //M('flash.net.NetStreamMulticastInfo', NetStreamMulticastInfo);\n //M('flash.net.NetStreamPlayOptions', NetStreamPlayOptions);\n //M('flash.net.NetStreamPlayTransitions', NetStreamPlayTransitions);\n //M('flash.net.NetworkInfo', NetworkInfo);//AIR\n //M('flash.net.NetworkInterface', NetworkInterface);//AIR\n //M('flash.net.ObjectEncoding', ObjectEncoding);\n M('flash.net.Responder', Responder);\n //M('flash.net.SecureSocket', SecureSocket);\n //M('flash.net.ServerSocket', ServerSocket);//AIR\n M('flash.net.SharedObject', SharedObject);\n //M('flash.net.SharedObjectFlushStatus', SharedObjectFlushStatus);\n M('flash.net.Socket', Socket);\n M('flash.net.URLLoader', URLLoader);\n //M('flash.net.URLLoader', URLLoaderDataFormat);\n M('flash.net.URLRequest', URLRequest);\n //M('flash.net.URLRequestDefaults', URLRequestDefaults);//AIR\n //M('flash.net.URLRequestHeader', URLRequestHeader);\n //M('flash.net.URLRequestMethod', URLRequestMethod);\n //M('flash.net.URLStream', URLStream);\n M('flash.net.URLVariables', URLVariables);\n //M('flash.net.XMLSocket', XMLSocket);\n // flash.net.dns\n // flash.net.drm\n // flash.notifications\n // flash.permissions\n // flash.printing\n // flash.profiler\n // flash.sampler\n //M('flash.security.CertificateStatus', CertificateStatus);\n //M('flash.security.ReferencesValidationSetting', ReferencesValidationSetting);//AIR\n //M('flash.security.RevocationCheckSettings', RevocationCheckSettings);//AIR\n //M('flash.security.SignatureStatus', SignatureStatus);//AIR\n //M('flash.security.SignerTrustSettings', SignerTrustSettings);//AIR\n //M('flash.security.X500DistinguishedName', X500DistinguishedName);\n //M('flash.security.X509Certificate', X509Certificate);//AIR\n //M('flash.security.XMLSignatureValidator', XMLSignatureValidator);\n //M('flash.sensors.Accelerometer', Accelerometer);\n //M('flash.sensors.DeviceRotation', DeviceRotation);//AIR\n //M('flash.sensors.Geolocation', Geolocation);//AIR\n M('flash.system.ApplicationDomain', ApplicationDomain);\n M('flash.system.Capabilities', Capabilities);\n //M('flash.system.ImageDecodingPolicy', ImageDecodingPolicy);//AIR\n //M('flash.system.IME', IME);\n //M('flash.system.IMEConversionMode', IMEConversionMode);\n //M('flash.system.JPEGLoaderContext', JPEGLoaderContext);\n M('flash.system.LoaderContext', LoaderContext);\n //M('flash.system.MessageChannel', MessageChannel);\n //M('flash.system.MessageChannelState', MessageChannelState);\n M('flash.system.Security', Security);\n M('flash.system.SecurityDomain', SecurityDomain);\n //M('flash.system.SecurityPanel', SecurityPanel);\n M('flash.system.System', System);\n //M('flash.system.SystemUpdater', SystemUpdater);\n //M('flash.system.SystemUpdaterType', SystemUpdaterType);\n //M('flash.system.TouchscreenType', TouchscreenType);\n //M('flash.system.Worker', Worker);\n //M('flash.system.WorkerDomain', WorkerDomain);\n //M('flash.system.WorkerState', WorkerState);\n //M('flash.text.AntiAliasType', AntiAliasType);\n //M('flash.text.AutoCapitalize', AutoCapitalize);//AIR\n M('flash.text.CSMSettings', CSMSettings);\n M('flash.text.Font', Font);\n //M('flash.text.FontStyle', FontStyle);\n M('flash.text.FontType', FontType);\n //M('flash.text.GridFitType', GridFitType);\n //M('flash.text.ReturnKeyLabel', ReturnKeyLabel);//AIR\n //M('flash.text.SoftKeyboardType', SoftKeyboardType);//AIR\n //M('flash.text.StageText', StageText);//AIR\n //M('flash.text.StageTextClearButtonMode', StageTextClearButtonMode);//AIR\n //M('flash.text.StageTextInitOptions', StageTextInitOptions);//AIR\n M('flash.text.StaticText', StaticText);\n M('flash.text.StyleSheet', StyleSheet);\n M('flash.text.TextColorType', TextColorType);\n M('flash.text.TextDisplayMode', TextDisplayMode);\n M('flash.text.TextField', TextField);\n //M('flash.text.TextFieldAutoSize', TextFieldAutoSize);\n //M('flash.text.TextFieldType', TextFieldType);\n M('flash.text.TextFormat', TextFormat);\n //M('flash.text.TextFormatAlign', TextFormatAlign);\n //M('flash.text.TextInteractionMode', TextInteractionMode);\n M('flash.text.TextLineMetrics', TextLineMetrics);\n M('flash.text.TextRenderer', TextRenderer);\n M('flash.text.TextSnapshot', TextSnapshot);\n // these are not in the as3 documentation for flash.text:\n M('flash.text.TextFormatDisplay', TextFormatDisplay);\n M('flash.text.TextExtent', TextExtent);\n M('flash.text.TextRun', TextRun);\n M('flash.text.engine.BreakOpportunity', BreakOpportunity);\n M('flash.text.engine.CFFHinting', CFFHinting);\n M('flash.text.engine.ContentElement', ContentElement);\n M('flash.text.engine.DigitCase', DigitCase);\n M('flash.text.engine.DigitWidth', DigitWidth);\n M('flash.text.engine.EastAsianJustifier', EastAsianJustifier);\n M('flash.text.engine.ElementFormat', ElementFormat);\n M('flash.text.engine.FontDescription', FontDescription);\n M('flash.text.engine.FontLookup', FontLookup);\n M('flash.text.engine.FontMetrics', FontMetrics);\n M('flash.text.engine.FontMetrics', FontMetrics);\n M('flash.text.engine.FontPosture', FontPosture);\n M('flash.text.engine.FontWeight', FontWeight);\n M('flash.text.engine.GraphicElement', GraphicElement);\n M('flash.text.engine.GroupElement', GroupElement);\n M('flash.text.engine.JustificationStyle', JustificationStyle);\n M('flash.text.engine.Kerning', Kerning);\n M('flash.text.engine.LigatureLevel', LigatureLevel);\n M('flash.text.engine.LineJustification', LineJustification);\n M('flash.text.engine.RenderingMode', RenderingMode);\n M('flash.text.engine.SpaceJustifier', SpaceJustifier);\n M('flash.text.engine.TabAlignment', TabAlignment);\n M('flash.text.engine.TabStop', TabStop);\n M('flash.text.engine.TextBaseline', TextBaseline);\n M('flash.text.engine.TextBlock', TextBlock);\n M('flash.text.engine.TextElement', TextElement);\n M('flash.text.engine.TextJustifier', TextJustifier);\n M('flash.text.engine.TextLine', TextLine);\n M('flash.text.engine.TextLineCreationResult', TextLineCreationResult);\n M('flash.text.engine.TextLineMirrorRegion', TextLineMirrorRegion);\n M('flash.text.engine.TextLineValidity', TextLineValidity);\n M('flash.text.engine.TextRotation', TextRotation);\n M('flash.text.engine.TypographicCase', TypographicCase);\n M('flash.text.ime.CompositionAttributeRange', CompositionAttributeRange);\n M('flash.ui.ContextMenu', ContextMenu);\n M('flash.ui.ContextMenuBuiltInItems', ContextMenuBuiltInItems);\n M('flash.ui.ContextMenuClipboardItems', ContextMenuClipboardItems);\n M('flash.ui.ContextMenuItem', ContextMenuItem);\n M('flash.ui.GameInput', GameInput); //AIR\n M('flash.ui.GameInputControl', GameInputControl); //AIR\n M('flash.ui.GameInputControlType', GameInputControlType); //AIR\n M('flash.ui.GameInputDevice', GameInputDevice); //AIR\n M('flash.ui.GameInputFinger', GameInputFinger); //AIR\n M('flash.ui.GameInputHand', GameInputHand); //AIR\n M('flash.ui.Keyboard', Keyboard);\n //M('flash.ui.KeyboardType', KeyboardType);\n //M('flash.ui.KeyLocation', KeyLocation);\n M('flash.ui.Mouse', Mouse);\n //M('flash.ui.MouseCursor', MouseCursor);\n M('flash.ui.MouseCursorData', MouseCursorData);\n M('flash.ui.Multitouch', Multitouch);\n M('flash.ui.MultitouchInputMode', MultitouchInputMode);\n M('flash.utils.ByteArray', ByteArray);\n M('flash.utils.CompressionAlgorithm', CompressionAlgorithm);\n //M('flash.utils.Dictionary', Dictionary);\n //M('flash.utils.Endian', Endian);\n M('flash.utils.Timer', Timer);\n M('flash.xml.XMLDocument', XMLDocument);\n M('flash.xml.XMLNode', XMLNode);\n //M('flash.xml.XMLNodeType', XMLNodeType);\n registerNativeFunction('flash.system.fscommand', fscommand);\n ExternalInterface.ensureInitialized();\n}\n","import { __extends } from \"tslib\";\n/**\n * Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { EventDispatcher } from './events/EventDispatcher';\nimport { DisplayObject } from './display/DisplayObject';\nimport { DisplayObjectContainer } from './display/DisplayObjectContainer';\nimport { Stage } from './display/Stage';\nimport { Loader } from './display/Loader';\nimport { LoaderInfo } from './display/LoaderInfo';\nimport { MovieClip } from './display/MovieClip';\nimport { Graphics } from './display/Graphics';\nimport { GraphicsPath } from './display/GraphicsPath';\nimport { GraphicsSolidFill } from './display/GraphicsSolidFill';\nimport { GraphicsEndFill } from './display/GraphicsEndFill';\nimport { GraphicsGradientFill } from './display/GraphicsGradientFill';\nimport { GraphicsBitmapFill } from './display/GraphicsBitmapFill';\nimport { GraphicsStroke } from './display/GraphicsStroke';\nimport { GraphicsTrianglePath } from './display/GraphicsTrianglePath';\nimport { Bitmap } from './display/Bitmap';\nimport { BitmapData } from './display/BitmapData';\nimport { SimpleButton } from './display/SimpleButton';\nimport { TextField } from './text/TextField';\nimport { Point } from './geom/Point';\nimport { Event } from './events/Event';\nimport { KeyboardEvent } from './events/KeyboardEvent';\nimport { MouseEvent } from './events/MouseEvent';\nimport { TouchEvent } from './events/TouchEvent';\nimport { ProgressEvent } from './events/ProgressEvent';\nimport { Rectangle } from './geom/Rectangle';\nimport { Matrix } from './geom/Matrix';\nimport { ColorTransform } from './geom/ColorTransform';\nimport { Transform } from './geom/Transform';\nimport { URLRequest } from './net/URLRequest';\nimport { URLLoader } from './net/URLLoader';\nimport { URLVariables } from './net/URLVariables';\nimport { SharedObject } from './net/SharedObject';\nimport { LoaderContext } from './system/LoaderContext';\nimport { Sound } from './media/Sound';\nimport { TextFormat } from './text/TextFormat';\nimport { AXSecurityDomain, ByteArray, XMLNode } from '@awayfl/avm2';\nimport { Sprite } from './display/Sprite';\nimport { ApplicationDomain } from './system/ApplicationDomain';\nimport { TextSnapshot } from './text/TextSnapshot';\nimport { ExternalInterface } from './external/ExternalInterface';\nimport { Capabilities } from './system/Capabilities';\nimport { Security } from './system/Security';\nimport { fscommand } from './system/FSCommand';\nimport { SoundChannel } from './media/SoundChannel';\nimport { SoundTransform } from './media/SoundTransform';\nimport { SoundMixer } from './media/SoundMixer';\nimport { IOErrorEvent } from './events/IOErrorEvent';\nimport { Vector3D } from './geom/Vector3D';\nimport { Matrix3D } from './geom/Matrix3D';\nimport { Shape } from './display/Shape';\nimport { TimerEvent } from './events/TimerEvent';\nimport { GlowFilter } from './filters/GlowFilter';\nimport { BevelFilter } from './filters/BevelFilter';\nimport { BitmapFilter } from './filters/BitmapFilter';\nimport { BlurFilter } from './filters/BlurFilter';\nimport { ColorMatrixFilter } from './filters/ColorMatrixFilter';\nimport { ConvolutionFilter } from './filters/ConvolutionFilter';\nimport { DisplacementMapFilter } from './filters/DisplacementMapFilter';\nimport { DropShadowFilter } from './filters/DropShadowFilter';\nimport { GradientBevelFilter } from './filters/GradientBevelFilter';\nimport { GradientGlowFilter } from './filters/GradientGlowFilter';\nimport { ContextMenuBuiltInItems } from './ui/ContextMenuBuiltInItems';\nimport { ContextMenu } from './ui/ContextMenu';\nimport { ContextMenuItem } from './ui/ContextMenuItem';\nimport { FrameLabel } from './display/FrameLabel';\nimport { TextLineMetrics } from './text/TextLineMetrics';\nimport { FocusEvent } from './events/FocusEvent';\nimport { UncaughtErrorEvents } from './events/UncaughtErrorEvents';\nimport { NetConnection } from './net/NetConnection';\nimport { Responder } from './net/Responder';\nvar Mouse = /** @class */ (function () {\n function Mouse() {\n }\n return Mouse;\n}());\nexport { Mouse };\nvar SecurityDomain = /** @class */ (function (_super) {\n __extends(SecurityDomain, _super);\n function SecurityDomain() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.flash = {\n display: {\n EventDispatcher: EventDispatcher,\n DisplayObject: DisplayObject,\n DisplayObjectContainer: DisplayObjectContainer,\n Stage: Stage,\n Loader: Loader,\n LoaderInfo: LoaderInfo,\n MovieClip: MovieClip,\n Graphics: Graphics,\n GraphicsPath: GraphicsPath,\n GraphicsSolidFill: GraphicsSolidFill,\n GraphicsEndFill: GraphicsEndFill,\n GraphicsGradientFill: GraphicsGradientFill,\n GraphicsBitmapFill: GraphicsBitmapFill,\n GraphicsStroke: GraphicsStroke,\n GraphicsTrianglePath: GraphicsTrianglePath,\n Bitmap: Bitmap,\n BitmapData: BitmapData,\n SimpleButton: SimpleButton,\n Sprite: Sprite,\n Shape: Shape,\n FrameLabel: FrameLabel\n },\n events: {\n EventDispatcher: EventDispatcher,\n Event: Event,\n FocusEvent: FocusEvent,\n KeyboardEvent: KeyboardEvent,\n MouseEvent: MouseEvent,\n TouchEvent: TouchEvent,\n ProgressEvent: ProgressEvent,\n IOErrorEvent: IOErrorEvent,\n TimerEvent: TimerEvent,\n UncaughtErrorEvents: UncaughtErrorEvents,\n },\n external: {\n ExternalInterface: ExternalInterface\n },\n filters: {\n BevelFilter: BevelFilter,\n BitmapFilter: BitmapFilter,\n BlurFilter: BlurFilter,\n ColorMatrixFilter: ColorMatrixFilter,\n ConvolutionFilter: ConvolutionFilter,\n DisplacementMapFilter: DisplacementMapFilter,\n DropShadowFilter: DropShadowFilter,\n GlowFilter: GlowFilter,\n GradientBevelFilter: GradientBevelFilter,\n GradientGlowFilter: GradientGlowFilter,\n },\n text: {\n TextField: TextField,\n TextFormat: TextFormat,\n TextSnapshot: TextSnapshot,\n TextLineMetrics: TextLineMetrics,\n },\n geom: {\n Point: Point,\n Rectangle: Rectangle,\n Matrix: Matrix,\n ColorTransform: ColorTransform,\n Transform: Transform,\n Vector3D: Vector3D,\n Matrix3D: Matrix3D\n },\n net: {\n URLRequest: URLRequest,\n URLLoader: URLLoader,\n URLVariables: URLVariables,\n SharedObject: SharedObject,\n NetConnection: NetConnection,\n Responder: Responder\n },\n system: {\n ApplicationDomain: ApplicationDomain,\n Capabilities: Capabilities,\n LoaderContext: LoaderContext,\n Security: Security,\n fscommand: fscommand\n },\n ui: {\n ContextMenu: ContextMenu,\n ContextMenuItem: ContextMenuItem,\n ContextMenuBuiltInItems: ContextMenuBuiltInItems,\n Mouse: Mouse\n },\n utils: {\n ByteArray: ByteArray\n },\n media: {\n Sound: Sound,\n SoundChannel: SoundChannel,\n SoundTransform: SoundTransform,\n SoundMixer: SoundMixer\n },\n xml: {\n XMLDocument: XMLDocument,\n XMLNode: XMLNode\n }\n };\n return _this;\n //public player: any;//80pro Shumway.Player.Player;\n //public application: AXApplicationDomain;\n }\n return SecurityDomain;\n}(AXSecurityDomain));\nexport { SecurityDomain };\n","import { ABCFile, ABCCatalog, ActiveLoaderContext, AVM2LoadLibrariesFlags, Natives, } from '@awayfl/avm2';\nimport { release, assert } from '@awayfl/swf-loader';\nimport { SecurityDomain } from './SecurityDomain';\nimport { initLink } from './link';\nimport { TextField, SceneImage2D, Font, Sprite, MovieClip, MorphSprite, FrameScriptManager, } from '@awayjs/scene';\nimport { FlashSceneGraphFactory } from './factories/FlashSceneGraphFactory';\nimport { Debug, WaveAudio } from '@awayjs/core';\nimport { ApplicationDomain } from './system/ApplicationDomain';\nimport { BitmapImage2D } from '@awayjs/stage';\nimport { Graphics } from '@awayjs/graphics';\nimport { SharedObject } from './net/SharedObject';\n// alternate of using a `node path`\nfunction normalisePath(p) {\n // maybe http:// or https:// etc, like file://\n var methodIdx = p.indexOf('://');\n var prepend = p[0] === '/' ? '/' : '';\n var parts = p.split(/[\\\\|/]/).filter(Boolean);\n // when remove '//' from method / will be removed. Restore it\n if (methodIdx > -1)\n parts[0] += '/';\n return prepend + parts.join('/');\n}\nfunction browserLoader(url, type) {\n return fetch(normalisePath(url))\n .then(function (r) {\n if (!r.ok) {\n throw \"Ups: \".concat(r.statusText, \"(\").concat(r.status, \")\");\n }\n return type === 'json' ? r.json() : r.arrayBuffer();\n })\n .catch(function (e) {\n throw new Error('Unable to load: ' + url + ': ' + e);\n });\n}\nvar PlayerGlobal = /** @class */ (function () {\n function PlayerGlobal() {\n }\n Object.defineProperty(PlayerGlobal.prototype, \"activeStage\", {\n get: function () {\n return this._stage;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PlayerGlobal.prototype, \"stage\", {\n get: function () {\n return this._stage;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PlayerGlobal.prototype, \"content\", {\n get: function () {\n return this._content;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(PlayerGlobal.prototype, \"uncaughtErrorEvents\", {\n get: function () {\n // @todo\n Debug.throwPIR('playerglobals/display/Loader', 'get uncaughtErrorEvents', '');\n return this._uncaughtErrorEvents;\n },\n enumerable: false,\n configurable: true\n });\n PlayerGlobal.prototype.dispose = function () {\n console.log('dispose PlayerGlobal');\n ApplicationDomain.currentDomain = null;\n SharedObject._sharedObjects = {};\n };\n PlayerGlobal.prototype.createSecurityDomain = function (avmStage, swfFile, libraries) {\n var _this = this;\n this._avmStage = avmStage;\n if (this._avmStage.avmTestHandler) {\n Natives.print = function (_sec, _expression) {\n var _a, _b;\n var message = '';\n if (arguments.length == 2) {\n // eslint-disable-next-line prefer-rest-params\n message = (_a = arguments[1]) === null || _a === void 0 ? void 0 : _a.toString();\n }\n else {\n for (var i = 1; i < arguments.length; i++) {\n // eslint-disable-next-line prefer-rest-params\n message += (_b = arguments[i]) === null || _b === void 0 ? void 0 : _b.toString();\n if (i !== arguments.length - 1) {\n message += ' ';\n }\n }\n }\n var messageSplit = message.split('\\n');\n for (var i = 0; i < messageSplit.length; i++) {\n console.log('%c Test-Trace from SWF:', 'color: DodgerBlue', messageSplit[i]);\n avmStage.avmTestHandler.addMessage(messageSplit[i]);\n }\n };\n }\n initLink();\n release || console.log('createSecurityDomain');\n release || assert(!!(libraries & AVM2LoadLibrariesFlags.Builtin));\n release || console.log('Load builtin.abc file');\n var base = PlayerGlobal.builtinsBaseUrl;\n var tasks = [\n browserLoader(\"\".concat(base, \"/builtin.abc\"), 'arraybuffer')\n ];\n if (libraries & AVM2LoadLibrariesFlags.Playerglobal) {\n tasks.push(browserLoader(\"\".concat(base, \"/playerglobal.abcs\"), 'arraybuffer'), browserLoader(\"\".concat(base, \"/playerglobal.json\"), 'json'), browserLoader(\"\".concat(base, \"/avmplus.abc\"), 'arraybuffer'));\n }\n return Promise.all(tasks).then(function (_a) {\n var builtins = _a[0], pgByte = _a[1], pgJson = _a[2], avmplus = _a[3];\n var sec = new SecurityDomain();\n var builtinABC = new ABCFile({\n url: 'builtin.abc',\n app: sec.system\n }, new Uint8Array(builtins));\n sec.swfVersion = swfFile.swfVersion;\n sec.system.loadABC(builtinABC);\n sec.initialize();\n sec.system.executeABC(builtinABC);\n sec.player = avmStage;\n if (!(libraries & AVM2LoadLibrariesFlags.Playerglobal)) {\n return null;\n }\n release || console.log('Load playerglobal.abcs & playerglobal.json');\n var catalog = new ABCCatalog(sec.system, new Uint8Array(pgByte), pgJson);\n release || console.log('add playerglobals as ABCCatalog');\n sec.addCatalog(catalog);\n var avmPlusABC = new ABCFile({\n url: 'avmplus.File',\n app: sec.system\n }, new Uint8Array(avmplus));\n sec.system.loadAndExecuteABC(avmPlusABC);\n _this._constructStage(sec, swfFile);\n return new FlashSceneGraphFactory(sec);\n });\n };\n PlayerGlobal.prototype._constructStage = function (sec, file) {\n var _a;\n this._contentLoaderInfo = new sec.flash.display.LoaderInfo(this, this._avmStage.root);\n this._contentLoaderInfo.url = new URL(file.url, document.baseURI).href;\n this._contentLoaderInfo._setFlashVars((_a = this._avmStage.config) === null || _a === void 0 ? void 0 : _a.flashvars);\n this._applicationDomain = new sec.flash.system.ApplicationDomain();\n this._contentLoaderInfo._setApplicationDomain(this._applicationDomain);\n this._uncaughtErrorEvents = new sec.flash.events.UncaughtErrorEvents();\n // not needs, because shuld be resolved from domain\n ActiveLoaderContext.loaderContext = new sec.flash.system.LoaderContext(false, this._applicationDomain);\n this._stage = new sec.flash.display.Stage();\n sec.flash.display.DisplayObject.axClass._activeStage = this._stage;\n this._avmStage.root.adapter = this._stage;\n this._stage.adaptee = this._avmStage.root;\n };\n PlayerGlobal.prototype.enterFrame = function () {\n this._stage && this._stage.enterFrame();\n };\n PlayerGlobal.prototype.resizeStage = function () {\n // it can happen that resizeStage is called before createSecurityDomain has finished and stage exists\n this._stage && this._stage.resizeCallback();\n };\n PlayerGlobal.prototype.addAsset = function (asset, addScene) {\n asset.adapter.loaderInfo = this._contentLoaderInfo;\n switch (asset.assetType) {\n case TextField.assetType: {\n this._applicationDomain.addDefinition(asset.name, asset);\n break;\n }\n case SceneImage2D.assetType:\n case BitmapImage2D.assetType: {\n this._applicationDomain.addDefinition(asset.name, asset);\n break;\n // we should only do this for bitmaps loaded from jpg or png\n // todo:\n //if (this._isImage)\n //\t(<AwayDisplayObjectContainer> this._adaptee).addChild(\n //\tnew Bitmap(<BitmapData> (<SceneImage2D> asset).adapter).adaptee);\n }\n case WaveAudio.assetType: {\n this._applicationDomain.addAudioDefinition(asset.name, asset);\n break;\n }\n case Font.assetType: {\n this._applicationDomain.addFontDefinition(asset.name, asset);\n break;\n }\n case Sprite.assetType: {\n this._applicationDomain.addDefinition(asset.name, asset);\n break;\n }\n case MovieClip.assetType: {\n this._applicationDomain.addDefinition(asset.name, asset);\n // if this is the \"Scene 1\", we make it a child of the loader\n if (addScene && asset.isAVMScene) {\n // \"Scene 1\" when AWDParser, isAVMScene when using SWFParser\n this._content = asset.adapter.clone();\n this._content.loaderInfo = this._contentLoaderInfo;\n this._content.adaptee.reset();\n this._content.adaptee.firstFrameOnSWFStart = true;\n FrameScriptManager.invalidAS3Constructors = true;\n this._stage.adaptee.addChild(this._content.adaptee);\n FrameScriptManager.execute_as3_constructors_recursiv(this._content.adaptee);\n this._content.dispatchStaticEvent('added', this._content);\n this._content.dispatch_ADDED_TO_STAGE(true);\n }\n break;\n }\n case '[asset Generic]': {\n this._applicationDomain.addDefinition(asset.name, asset);\n break;\n }\n case Graphics.assetType:\n case MorphSprite.assetType: {\n break;\n }\n default: {\n console.warn('Loaded unhandled asset-type', asset.assetType);\n }\n }\n };\n PlayerGlobal.builtinsBaseUrl = './assets/builtins/';\n return PlayerGlobal;\n}());\nexport { PlayerGlobal };\n","console.debug(\"AwayFL - PlayerGlobal - 0.2.460\");\nexport { Sprite } from './lib/display/Sprite';\nexport { MovieClip } from './lib/display/MovieClip';\nexport { FlashSceneGraphFactory } from './lib/factories/FlashSceneGraphFactory';\nexport { Loader } from './lib/display/Loader';\nexport { LoaderInfo } from './lib/display/LoaderInfo';\nexport { Stage } from './lib/display/Stage';\nexport { LoaderContext } from './lib/system/LoaderContext';\nexport { Event } from './lib/events/Event';\nexport { URLRequest } from './lib/net/URLRequest';\nexport { initLink } from './lib/link';\nexport { SecurityDomain } from './lib/SecurityDomain';\nexport { PlayerGlobal } from './lib/PlayerGlobal';\nexport { SharedObjectDebug } from './lib/net/SharedObject';\nexport { DEFAULT_CAPABILITIES } from './lib/system/Capabilities';\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","SuppressedError","Event","_super","type","bubbles","cancelable","_this","_iAllowedToPropagate","_iAllowedToImmediatlyPropagate","_type","axCoerceString","_bubbles","_cancelable","_target","_currentTarget","_eventPhase","_stopPropagation","_stopImmediatePropagation","_isDefaultPrevented","getInstance","instance","_instances","getBroadcastInstance","release","assert","isBroadcastEventType","_isBroadcastEvent","ENTER_FRAME","EXIT_FRAME","FRAME_CONSTRUCTED","RENDER","ACTIVATE","DEACTIVATE","defineProperty","get","enumerable","configurable","set","value","stopPropagation","adaptee","stopImmediatePropagation","preventDefault","isDefaultPrevented","isBroadcastEvent","clone","toString","formatToString","className","args","_i","arguments","length","str","i","field","axGetPublicProperty","classInitializer","ADDED","ADDED_TO_STAGE","CANCEL","CHANGE","CLEAR","CLOSE","COMPLETE","CONNECT","COPY","CUT","FRAME_LABEL","ID3","INIT","MOUSE_LEAVE","OPEN","PASTE","REMOVED","REMOVED_FROM_STAGE","RESIZE","SCROLL","TEXT_INTERACTION_MODE_CHANGE","SELECT","SELECT_ALL","SOUND_COMPLETE","TAB_CHILDREN_CHANGE","TAB_ENABLED_CHANGE","TAB_INDEX_CHANGE","UNLOAD","FULLSCREEN","CONTEXT3D_CREATE","TEXTURE_READY","VIDEO_FRAME","SUSPEND","AVM1_INIT","AVM1_CONSTRUCT","AVM1_LOAD","ASObject","EventDispatcherBase","target","_t","_listenerObjects","addEventListener","listener","useCapture","priority","useWeakReference","l","undefined","ListenerObject","removeEventListener","numListeners","dispatchEvent","event","currentTarget","hasEventListener","getEventListenerIndex","sortListenersByPriority","a","_index","_singlePriority","_listeners","_listenersByPriority","indexOf","push","listeners","concat","priorityItem","sort","index","splice","e","MouseEvent","localX","localY","relatedObject","ctrlKey","altKey","shiftKey","buttonDown","delta","_localX","_localY","_relatedObject","_ctrlKey","_altKey","_shiftKey","_buttonDown","_delta","typeFromDOMType","name","CLICK","DOUBLE_CLICK","MOUSE_DOWN","MOUSE_MOVE","MOUSE_UP","notImplemented","fillFromAway","awayEvent","adapter","sec","flash","display","DisplayObject","axClass","_activeStage","Boolean","buttons","isNaN","Number","NaN","stage","mouseX","mouseY","_movementX","_movementY","_isRelatedObjectInaccessible","updateAfterEvent","player","requestRender","classSymbols","instanceSymbols","MOUSE_OUT","MOUSE_OVER","RELEASE_OUTSIDE","MOUSE_WHEEL","ROLL_OUT","ROLL_OVER","MIDDLE_CLICK","MIDDLE_MOUSE_DOWN","MIDDLE_MOUSE_UP","RIGHT_CLICK","RIGHT_MOUSE_DOWN","RIGHT_MOUSE_UP","CONTEXT_MENU","EventDispatcher","id","UUID","Next","eventMapping","eventMappingDummys","eventMappingExtern","eventMappingInvert","_activateCallbackDelegate","activateCallback","adaptedType","addListener","initActivateListener","removeListener","removeActivateListener","callback","_deactivateCallbackDelegate","deactivateCallback","initDeactivateListener","removeDeactivateListener","willTrigger","comesFromAway","returnVal","eventsThatBubbleInAwayJS","parent","window","onfocus","events","onblur","BroadcastEventDispatchQueue","add","remove","USE_WEAK","self","Settings","USE_WEAK_REF","console","debug","_a","_queues","_instance","queue","WeakRef","key","deref","dispatchedEvent","getQueueLength","getOwnPropertyNames","StaticEvents","BitmapFilter","toAwayObject","GradientArrays","sanitize","colors","alphas","ratios","isNullOrUndefined","len","sanitizeColors","initArray","sanitizeAlphas","Math","min","sanitizeRatios","maxLen","arr","n","minLen","clamp","DropShadowFilter","distance","angle","color","alpha","blurX","blurY","strength","quality","inner","knockout","hideObject","filterName","FromUntyped","obj","PI","compositeSource","filters","_distance","_angle","_color","_alpha","_blurX","_blurY","_hideObject","_inner","_knockout","_quality","_strength","GlowFilter","BitmapFilterType","INNER","OUTER","FULL","BevelFilter","highlightColor","highlightAlpha","shadowColor","shadowAlpha","onTop","_highlightColor","_highlightAlpha","_shadowColor","_shadowAlpha","throwError","Errors","NullPointerError","GradientGlowFilter","_colors","_alphas","_ratios","createArrayUnsafe","value_","GradientBevelFilter","BlurFilter","ConvolutionFilter","matrixX","matrixY","matrix","divisor","bias","preserveAlpha","_matrix","_expandArray","_matrixX","_matrixY","newLen","slice","actualLen","toNumber","mx","my","_divisor","_bias","_preserveAlpha","_clamp","ColorMatrixFilter","_serialize","message","ensureAdditionalCapacity","writeIntUnsafe","writeFloatUnsafe","TYPE_FILTER_MAP","FilterType","DROPSHADOW","GLOW","BEVEL","GRADIENTGLOW","GRADIENTBEVEL","BLUR","CONVOLUTION","COLORMATRIX","FilterBuilder","filter","_v","AwayPoint","clampASValues","v","Infinity","_forceWidth","_forceHeight","$lazyConstructProperty","applyLazy","_filters","_blockedByScript","_ctBlockedByScript","_visibilityByScript","mouseEnabled","_stage","activeStage","_transform","geom","Transform","transform","defineLazy","_adaptee","prop","classInfo","instanceInfo","multiname","applySymbol","dispatchStaticEvent","eventName","dispatch_ADDED_TO_STAGE","dispatchForThisChild","hasDispatchedAddedToStage","dispatch_REMOVED_FROM_STAGE","dispatchStaticBroadCastEvent","updateFilters","newFilters","newFilters_1","asFilter","createAdaptee","AwayDisplayObject","mapAdaptee","dispatchEventRecursive","_node","AVMStage","view","getNode","initAdapter","isBlockedByScript","isVisibilityByScript","isColorTransformByScript","freeFromScript","_symbol","constructClassFromSymbol","symbolClass","axInitializer","loaderInfo","copyTo","dispose","AbstractMethodError","disposeValues","Debug","throwPIR","blendMode","_value","cacheAsBitmap","map","isAsset","TextField","height","box","getBoundsInternal","round","PickGroup","getBoundsPicker","node","_loaderInfo","root","mask","_data","setTo","globalToLocal","floor","x","y","_b","isAVMScene","rotationZ","rot","isFinite","rotationX","rotationY","Rectangle","scale9Grid","innerRectangle","scaleX","scaleY","scaleZ","scrollRect","_isStage","src","dst","m","ct","colorTransform","visible","width","textOffsetX","_matrix3D","_rawData","textOffsetY","z","getBounds","targetCoordinateSpace","strokeFlag","getBoxBounds","getRect","point","Point","globalToLocal3D","Vector3D","hitTestObject","hitTestPoint","shapeFlag","local3DToGlobal","point3d","localToGlobal","TouchEvent","touchPointID","isPrimaryTouchPoint","sizeX","sizeY","pressure","_stageX","stagePoint","unprojectPoint","screenX","screenY","_stageY","TOUCH_BEGIN","TOUCH_END","TOUCH_MOVE","TOUCH_OUT","TOUCH_OVER","TOUCH_ROLL_OUT","TOUCH_ROLL_OVER","TOUCH_TAP","KeyboardEvent","charCodeValue","keyCodeValue","keyLocationValue","ctrlKeyValue","altKeyValue","shiftKeyValue","_charCode","_keyCode","_keyLocation","charCode","keyCode","keyLocation","KEY_DOWN","KEY_UP","FocusEvent","apply","log","FOCUS_IN","FOCUS_OUT","KEY_FOCUS_CHANGE","MOUSE_FOCUS_CHANGE","InteractiveObject","_listnersCallbacksByType","_keyUpCallbackDelegate","keyUpCallback","initKeyUpListener","removeKeyUpListener","_keyDownCallbackDelegate","keyDownCallback","initKeyDownListener","removeKeyDownListener","_touchCallbackDelegate","touchCallback","TouchEventAway","initListener","_mouseCallbackDelegate","mouseCallback","MouseEventAway","MOUSE_UP_OUTSIDE","_focusCallbackDelegate","focusCallback","FocusEventAway","_keyUpListeners","document","idx","isPaused","returnValue","newkeyBoardEvent","location","_keyDownListeners","adaptedEvent","_contextMenu","enabled","focusRect","requestSoftKeyboard","DisplayObjectContainer","numChildren","mc","getChildAt","mcadapter","constructorFunc","executeConstructor","just_added_to_timeline","_sessionID","isOnDisplayList","addTimelineObjectAtDepth","child","depth","getTimelineObjectAtDepth","AwayDisplayObjectContainer","debugDisplayGraph","object","rectangle","children","oneChild","childname","AwaySprite","Sprite","Billboard","AwayMovieClip","AwayTextField","text","mouseChildren","enable","addChild","registerChild","registerScriptObject","dispatchAdded","OrphanManager","removeOrphan","addChildAt","areInaccessibleObjectsUnderPoint","contains","Shape","getChildByName","getChildIndex","getObjectsUnderPoint","awayChildren","getRaycastPicker","avm2Children","TextSprite","removeChild","warn","removeChildAt","removeChildren","beginIndex","endIndex","setChildIndex","setChildIndexInternal","stopAllMovieClips","swapChildren","child1","child2","swapChildrenAt","index1","index2","dragListenerDelegate","dragListener","stopDragDelegate","stopDrag","_syncGraphics","MovieClip","axIsType","transformToSprite","getNewSprite","_sprites","sprite","pop","isRegisteredChild","_registeredChildNames","newAdaptee","reset","addTimelineChildAtDepth","maxIndex","scriptChildsOffset","current","_avmDepthID","_sessionID_childs","updateGraphics","_graphics","_setAdaptee","graphics","Graphics","removeTimelineChildAt","removeAllTimelineChilds","queueFrameScripts","timeline","frame_idx","scriptPass1","FrameScriptManager","add_script_to_queue","add_script_to_queue_pass2","constructFrame","start_construct_idx","target_keyframe_idx","jump_forward","queue_pass2","queue_script","k","virtualSceneGraph","existingSessionIDs","i_1","sessionID","as3DepthID","addedOnTargetFrame","_update_indices","_update_frames","start_index","end_index","update_cnt","frame_command_idx","frame_command_indices","frame_recipe","command_index_stream","command_length_stream","removeSessionIDs","remove_child_stream","newVirtualSceneGraph","i_2","add_child_stream","i_3","symbolID","keyframe_firstframes","start_sounds","vsItem","newChildren","newChilds","newChildsOnTargetFrame","i_4","existingChild","_adapter","clearColorTransform","noTimelineUpdate","clearMatrix3D","timelineMasks","newChild","getChildInstance","isSlice9ScaledMC","assetType","isSlice9ScaledSprite","i_5","i_6","preventScript","finalizeChildren","axSetPublicProperty","unregisterScriptObject","axDeletePublicProperty","removeButtonListeners","constructorHasRun","targetTimeline","keyframe_constructframes","keyframe_durations","keyframe_indices","name_1","buttonMode","setDropTarget","dropTarget","_dropTarget","pickObject","_soundTransform","media","SoundTransform","volume","soundVolume","_useHandCursor","startDrag","lockCenter","bounds","currentDraggedMC","_dragBounds","isDragging","_setStartDragMCPosition","checkBounds","avmStage","dragNode","mousePicker","collision","pickGroup","abstractions","getAbstraction","pickingCollision","rootNode","mouseManager","startDragObject","left","top","bottom","startDragMCPosition","tmpPoint","startTouchDrag","touchPonumberID","stopDragObject","stopTouchDrag","startDragPoint","getNewMovieClip","_movieClips","movieClip","executeScript","scripts","_framescripts","allowScript","swfVersion","script","currentFrameIndex","prev_script_scope","current_script_scope","axCall","queuedNavigationAction","Timeline","factory","anyThis","newMC","currentFrameIndexRelative","getCurrentFrameLabel","getCurrentLabel","_currentLabels","labels","_labels","FrameLabel","keyFrameIndex","scene","currentScene","newLabels","frame","Scene","offset","numFrames","buttonEnabled","totalFrames","isPlaying","addFrameScript","numArgs","currentFrameScriptChanged","frameNum","fn","get_queue","queued_mcs","queued_mcs_pass2","gotoAndPlay","force","_gotoInternal","gotoAndStop","stop","currentSceneName","parseInt","jumpToIndex","play","_gotoFrame","navigated","jumpToLabel","execute_as3_constructors_recursiv","execute_as3_constructors_finish_scene","execute_queue","nextFrame","nextScene","prevFrame","prevScene","Bitmap","bitmapData","pixelSnapping","smoothing","_bitmapData","getNewBitmap","_bitmaps","bitmap","getNewBillboard","MaterialManager","getMaterialForBitmap","style","image","mappedAdapt","BitmapImage2D","SceneImage2D","BitmapData","_bitmapMappedFromAsset","newInstance","_removeOwner","_addOwner","sampler","smooth","ALER_TABLE","transparent","fillColor","_owners","getImage","StageManager","getStageAt","useWeakRef","compare","other","loadBitmap","setPixels","rect","inputByteArray","count","argb","Uint8ClampedArray","readUnsignedInt","o","getPixels","pixels","buffer","byteOffset","byteLength","utils","ByteArray","setArrayBuffer","copyPixelsToByteArray","data","getVector","u8","vector","Uint32Vector","u32","Uint32Array","_buffer","_length","setVector","inputVector","_view","histogram","hRect","encode","compressor","byteArray","drawWithQuality","source","clipRect","draw","copyPixels","getPixel","getPixel32","setPixel","setPixel32","applyFilter","sourceBitmap","sourceRect","destPoint","axClassName","copyChannel","sourceChannel","destChannel","alphaBitmapData","alphaPoint","mergeAlpha","canUnload","fillRect","floodFill","generateFilterRect","getColorBoundsRect","findColor","hitTest","firstPoint","firstAlphaThreshold","secondObject","secondBitmapPoint","secondAlphaThreshold","lock","merge","redMult","greenMult","blueMult","alphaMult","noise","randomSeed","low","high","channelOptions","grayScale","paletteMap","redArray","greenArray","blueArray","alphaArray","perlinNoise","baseX","baseY","numOctaves","stitch","fractalNoise","offsets","map_offsets","pixelDissolve","numberOfPixels","scroll","APoint","threshold","operation","copySource","unlock","owner","FlashSceneGraphFactory","imageStore","_sec","applicationDomain","axApplicationDomain","application","executeABCBytes","abcBlocks","abcBlock","abc","ABCFile","app","appDomain","url","flags","loadABC","loadAndExecuteABC","createSprite","_prefab","symbol","getClass","Multiname","FromFQNString","asObj","createDisplayObjectContainer","createBinarySymbol","addBinarySymbol","createMovieClip","isButton","SimpleButton","rootSymbolClass","createTextField","createBillboard","material","createImage2D","_powerOfTwo","unuseWeakRef","createFrameScripts","_scripts","_frameIdx","_objName","_objID","createChildInstanceForTimeline","invalidAS3Constructors","asset","awaySymbols","MorphSprite","getNewMorphSprite","DefaultSceneGraphFactory","TextEvent","_text","copyNativeData","LINK","TEXT_INPUT","ErrorEvent","setID","_id","errorID","ERROR","IOErrorEvent","IO_ERROR","NETWORK_ERROR","DISK_ERROR","VERIFY_ERROR","Sound","stream","context","_bytesLoaded","_onAssetCompleteDelegate","onAssetComplete","_onLoaderCompleteDelegate","onLoaderComplete","_onLoadErrorDelegate","onLoadError","loadWaveAudio","_url","_loading","AssetLibrary","AssetEvent","ASSET_COMPLETE","LoaderEvent","LOADER_COMPLETE","URLLoaderEvent","LOAD_ERROR","load","URLRequestAway","LoaderContext","WaveAudioParser","WaveAudio","_pendingPlayCommand","startTime","loops","sndTransform","_playAfterLoad","duration","close","extract","startPosition","loadCompressedDataFromByteArray","_bytes","_bytesLength","loadPCMFromByteArray","_samples","_format","_stereo","_sampleRate","SoundChannel","sndChannel","channel","newSoundChannel","init","stopAll","ApplicationDomain","parentDomain","isSystemDomain","_currentDomain","getSystemDomain","_parentDomain","_definitions","_font_definitions","_audio_definitions","system","AXApplicationDomain","awayApplicationDomain","_systemDomain","_memory","mem","_memoryView","DataView","addDefinition","addAudioDefinition","addFontDefinition","hasSymbolForClass","getSymbolAdaptee","getSymbolDefinition","sound","getDefinition","FromSimpleName","getFontDefinition","getAwayJSAudio","getAudioDefinition","getQualifiedDefinitionNames","allDefinitionsnames","hasDefinition","hasFontDefinition","hasAudioDefinition","checkPolicyFile","securityDomain","currentDomain","Loader","_contentLoaderInfo","LoaderInfo","_factory","executeQueue","loaderQueue","queue_1","task","_content","_uncaughtErrorEvents","UncaughtErrorEvents","_onAssetComplete","loaderContainer","LoaderContainer","_isImage","Font","InvalidLoaderMethodError","request","_delayedLoad","directUrl","cleanUrl","replace","redirect","matchRedirect","redirectRules","supressLoad","ext","substr","toLowerCase","_loaderContext","_setApplicationDomain","Image2DParser","SWFParser","supressErrors","urlLoader","loadBytes","bytes","loadData","unload","_unload","unloadAndStop","gc","stopExecution","ProgressEvent","bytesLoaded","bytesTotal","_bytesTotal","PROGRESS","SOCKET_DATA","LoaderInfoCompleteQueue","addQueue","_queue","delayCnt","DELAY","allDone","loderInfoItem","newEvent","loader","container","_urlParameters","_flashVars","_parameters","_onLoaderStartDelegate","_onLoaderStart","_onLoadProgressDelegate","_onLoadProgress","_onLoaderComplete","_onLoaderErrorDelegate","_onLoadeError","bind","_loader","_container","AwayLoaderEvent","LOADER_START","LOAD_PROGRESS","_source","getSymbolById","_setURL","URL","baseURI","href","result","URLSearchParams","substring","split","forEach","_setFlashVars","assets","_applicationDomain","door","content","frameRate","createObjectFromJS","assign","_swfVersion","uncaughtErrorEvents","includes","getLoaderInfoByDefinition","Stage","_stage3Ds","_resizeCallbackDelegate","resizeCallback","initResizeListener","removeResizeListener","_mouseLeaveCallbackDelegate","mouseLeaveCallback","initMouseLeaveListener","removeMouseLeaveListener","show","enterFrame","PlayerGlobalLoader","updateOrphans","advanceFrame","execute_as3_constructors_enterFrame","firstFrameOnSWFStart","_sendEventRender","getLocalMouseX","getLocalMouseY","align","displayState","getFocus","newFocus","setFocus","screen","toUpperCase","scaleMode","on","stageHeight","stageWidth","descriptor","getOwnPropertyDescriptor","returnChild","invalidate","isFocusInaccessible","URLVariables","_ignoreDecodingErrors","decode","axSetProperty","mn","getMangledName","variables","j","DecodeParamError","unescape","join","currentValue","isArray","pairs","keys","axGetEnumerableKeys","name_2","escape","URLRequest","adapteeData","returnData","URLVariablesAway","transformJSValueToAS","mapToJSData","jsValue","net","transformASValueToJS","method","Clipboard","clear","clearData","format","getData","transferMode","hasFormat","setData","serializable","setDataHandler","handler","ClipboardFormats","BITMAP_FORMAT","FILE_LIST_FORMAT","FILE_PROMISE_LIST_FORMAT","HTML_FORMAT","RICH_TEXT_FORMAT","TEXT_FORMAT","URL_FORMAT","BitmapDataChannel","ALPHA","BLUE","GREEN","RED","_name","_frame","CAPS_STYLES","none","AwayCapsStyle","CapsStyle","NONE","ROUND","square","SQUARE","JOINT_STYLES","AwayJointStyle","JointStyle","bevel","miter","MITER","styleName","styles","_ownsAdaptee","next","AwayGraphics","prev","FromData","_detachSharedGraphics","sourceGraphics","owners","forEachOwner","_findOwner","awayOwner","fresh","_takePrivateAdaptee","beginFill","beginGradientFill","spreadMethod","interpolationMethod","focalPointRatio","beginBitmapFill","repeat","endFill","lineStyle","thickness","pixelHinting","caps","joints","miterLimit","max","lineGradientStyle","lineBitmapStyle","drawRect","drawRoundRect","ellipseWidth","ellipseHeight","drawRoundRectComplex","topLeftRadius","topRightRadius","bottomLeftRadius","bottomRightRadius","drawCircle","radius","drawEllipse","moveTo","lineTo","curveTo","controlX","controlY","anchorX","anchorY","cubicCurveTo","controlX1","controlY1","controlX2","controlY2","copyFrom","drawPath","commands","winding","cmdArr","dataArr","drawTriangles","vertices","indices","uvtData","culling","drawGraphicsData","graphicsData","item","axGetNumericProperty","_drawGraphicsDataItem","readGraphicsData","recurse","ObjectVector","_collectGraphicsData","GraphicsSolidFill","GraphicsGradientFill","GraphicsBitmapFill","GraphicsEndFill","GraphicsStroke","_applyStroke","GraphicsPath","GraphicsTrianglePath","data_type","stroke","fill","awayGraphics","isRoot","maskMode","AwayMatrix","_concatenatedMatrix","items","as3","_toAS3GraphicsData","axSetNumericProperty","found","stack","local","concatenated","GraphicsFillStyle","fillStyle","SolidFillStyle","solid","GradientFillStyle","gradient","createArray","Matrix","BitmapFillStyle","AwayGraphicsEndFill","GraphicsStrokeStyle","_strokeFill","capstyle","jointstyle","AwayGraphicsPath","path","_toInt32Vector","_toFloat64Vector","_transformPairs","$Bgcommands","$Bgdata","$Bgwinding","raw","rawData","c","tx","ty","out","values","list","Int32Vector","Float64Vector","proto","dPrototype","$BgreadGraphicsData","_pushCommand","GraphicsPathCommand","MOVE_TO","LINE_TO","CURVE_TO","CUBIC_CURVE","wideMoveTo","WIDE_MOVE_TO","wideLineTo","WIDE_LINE_TO","command","coords","_pushNumeric","$BgbitmapData","$Bgmatrix","$Bgrepeat","$Bgsmooth","_nativeBitmapData","_nativeMatrix","_nativeRepeat","_nativeSmooth","tPrototype","NativeMenuItem","_enabled","isSeparator","_numFrames","labels_","label","getLabelByName","ignoreCase","getLabelByFrame","upState","overState","downState","hitTestState","addButtonListeners","IOError","ASError","EOFError","IllegalOperationError","InvalidSWFError","MemoryError","ScriptTimeoutError","StackOverflowError","ColorTransform","redMultiplierAdaptee","greenMultiplier","blueMultiplier","alphaMultiplier","redOffset","greenOffset","blueOffset","alphaOffset","AwayColorTransform","rm","gm","bm","am","FROZEN_IDENTITY_COLOR_TRANSFORM","freeze","axConstruct","TEMP_COLOR_TRANSFORM","second","preMultiply","sourceColorTransform","redMultiplier","convertToFixedPoint","clampS8U8","toS16","equals","aAdaptee","FROZEN_IDENTITY_MATRIX","TEMP_MATRIX","FromDataBuffer","input","readFloat","invert","identity","createBox","rotation","createGradientBox","rotate","translate","dx","dy","scale","sx","sy","deltaTransformPoint","transformPoint","sourceMatrix","copyRowTo","row","vector3D","copyColumnTo","column","copyRowFrom","copyColumnFrom","writeExternal","output","writeFloat","transposeTransform","Matrix3D","AwayMatrix3D","copyRawDataFrom","interpolate","thisMat","toMat","percent","copyRawDataTo","position","pos","determinant","copyToMatrix3D","dest","append","lhs","prepend","rhs","decompose","orientationStyle","array","recompose","components","appendTranslation","appendRotation","degrees","axis","pivotPoint","somewhatImplemented","appendScale","xScale","yScale","zScale","prependTranslation","prependRotation","prependScale","transformVector","deltaTransformVector","transformVectors","vin","vout","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","transpose","pointAt","at","up","interpolateTo","sourceMatrix3D","xAdaptee","_constructorCalled","pt1","pt2","f","polar","toCompare","subtract","normalize","sourcePoint","AwayRectangle","bottomRight","right","size","topLeft","FromBounds","xMin","yMin","xMax","yMax","isEmpty","setEmpty","inflate","inflatePoint","offsetPoint","containsPoint","containsRect","intersection","toIntersect","intersects","union","toUnion","hashCode","hash","readExternal","displayObjectAdaptee","AwayTransform","pixelBounds","matrix3D","getRelativeMatrix3D","relativeTo","checkNullParameter","PerspectiveProjection","projection","w","AwayVector3D","X_AXIS","Create","Y_AXIS","Z_AXIS","lengthSquared","angleBetween","dotProduct","crossProduct","scaleBy","s","incrementBy","decrementBy","negate","allFour","nearEquals","tolerance","project","sourceVector3D","xa","ya","za","LastOperationStatus","BUFFER_OVERFLOW_ERROR","ERROR_CODE_UNKNOWN","ILLEGAL_ARGUMENT_ERROR","INDEX_OUT_OF_BOUNDS_ERROR","INVALID_ATTR_VALUE","INVALID_CHAR_FOUND","MEMORY_ALLOCATION_ERROR","NO_ERROR","NUMBER_OVERFLOW_ERROR","PARSE_ERROR","PATTERN_SYNTAX_ERROR","PLATFORM_API_FAILED","TRUNCATED_CHAR_FOUND","UNEXPECTED_TOKEN","UNSUPPORTED_ERROR","USING_DEFAULT_WARNING","USING_FALLBACK_WARNING","LocaleID","DEFAULT","_lastOperationStatus","determinePreferredLocales","want","have","keyword","GenericVector","getLanguage","getRegion","getScript","getVariant","isRightToLeft","getKeysAndValues","AccelerometerEvent","timestamp","accelerationX","accelerationY","accelerationZ","UPDATE","ActivityEvent","activating","ACTIVITY","AsyncErrorEvent","error","$Bgerror","ASYNC_ERROR","ContextMenuEvent","mouseTarget","contextMenuOwner","MENU_ITEM_SELECT","MENU_SELECT","DataEvent","DATA","UPLOAD_COMPLETE_DATA","EventPhase","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","FullScreenEvent","fullScreen","interactive","FULL_SCREEN","FULL_SCREEN_INTERACTIVE_ACCEPTED","GameInputEvent","device","DEVICE_ADDED","DEVICE_REMOVED","GeolocationEvent","latitude","longitude","altitude","hAccuracy","vAccuracy","speed","heading","GestureEvent","phase","_phase","NativeCtor","GESTURE_TWO_FINGER_TAP","GesturePhase","BEGIN","END","ALL","HTTPStatusEvent","_status","_redirected","_responseURL","_responseHeaders","_setStatus","HTTP_RESPONSE_STATUS","HTTP_STATUS","IMEEvent","imeClient","IME_COMPOSITION","IME_START_COMPOSITION","NetDataEvent","info","MEDIA_TYPE_DATA","NetStatusEvent","_info","NET_STATUS","OutputProgressEvent","bytesPending","OUTPUT_PROGRESS","PressAndTapGestureEvent","tapLocalX","tapLocalY","GESTURE_PRESS_AND_TAP","SampleDataEvent","theposition","thedata","SAMPLE_DATA","ShaderEvent","SoftKeyboardEvent","relatedObjectVal","triggerTypeVal","SOFT_KEYBOARD_ACTIVATE","SOFT_KEYBOARD_DEACTIVATE","SOFT_KEYBOARD_ACTIVATING","SoftKeyboardTrigger","CONTENT_TRIGGERED","USER_TRIGGERED","StageVideoAvailabilityEvent","availability","STAGE_VIDEO_AVAILABILITY","StageVideoEvent","status","colorSpace","RENDER_STATE","RENDER_STATUS_UNAVAILABLE","RENDER_STATUS_SOFTWARE","RENDER_STATUS_ACCELERATED","StatusEvent","code","level","_code","_level","STATUS","SyncEvent","changeList","SYNC","ThrottleEvent","state","targetFrameRate","THROTTLE","ThrottleType","PAUSE","RESUME","TimerEvent","TIMER","TIMER_COMPLETE","TransformGestureEvent","offsetX","offsetY","GESTURE_ZOOM","GESTURE_PAN","GESTURE_ROTATE","GESTURE_SWIPE","UncaughtErrorEvent","error_in","UNCAUGHT_ERROR","VideoEvent","ExternalInterface","ensureInitialized","available","ExternalInterfaceNotAvailableError","initialized","ExternalInterfaceService","initJS","_callIn","functionName","argsExpr","convertToJSString","catchExpr","$BgmarshallExceptions","evalExpr","interfaceID","_evalJS","convertFromXML","convertToXML","addCallback","closure","_addCallback","returnAsJS","calledFromJS","wrappedArgs","arg","xml","returnTypeAttr","attribute","_children","axApply","convertToJS","convertToXMLString","_removeCallback","getId","registerCallback","registeredCallbacks","unregisterCallback","expression","eval","_callOut","xmlClass","savedIgnoreWhitespace","ignoreWhitespace","AXDate","axIsInstanceOf","time","AXError","$Bglength","entry","createObject","extractId","AXArray","Date","Error","JSON","stringify","parts","_attributes","DisplacementMapFilter","mapBitmap","mapPoint","componentX","componentY","mode","_mapBitmap","_mapPoint","_componentX","_componentY","_scaleX","_scaleY","_mode","NumberFormatter","requestedLocaleIDName","formatInt","formatNumber","formatUint","getAvailableLocaleIDNames","parse","parseString","parseNumber","ctor","forceNativeConstructor","forceNativeMethods","vol","panning","_vol","_pan","axCallPublicProperty","value1","value2","axHasPublicProperty","leftToLeft","leftToRight","rightToLeft","rightToRight","SoundMixer","_bufferTime","bufferTime","pan","_updateAllSoundSources","_registeredSoundSources","stopSound","stopSounds","computeSpectrum","outputArray","_FFTMode","_stretchFactor","Float32Array","random","writeRawBytes","areSoundsInaccessible","_getMasterVolume","_masterVolume","_setMasterVolume","_registerSoundSource","_unregisterSoundSource","AudioManager","setVolume","removeAllEventListeners","EventBase","BaseAudioChannel","_stopped","_loops","_isLooping","_isPlaying","_isDecoding","isLooping","isDecoding","loop","meta","dispatchRestart","RESTART_EVENT","tryRestartLoop","restart","completeInternally","dispatchComplete","tryRestart","COMPLETE_EVENT","dispatchStop","ERROR_EVENT","STOP_EVENT","RESTART","STOP","_channel","soundCompleteInternal","soundTransform","currentTime","_stopInternally","complete","updateSoundLevels","FileFilter","_description","_extension","_macType","ConfigManager","addStore","ENABLE_FILE_PICKER","USE_FILE_PICKER","_sharedObjectStorage","FileReference","_size","_permissionStatus","_creator","_modificationDate","_creationDate","browse","typelist","knownTypes","knownMimeTypes","openDialog","showOpenFilePicker","types","extension","lastIndexOf","mime","description","accept","then","fileHandler","_sendSelectEvent","getFile","file","modificationDate","lastModified","extIndex","arrayBuffer","buf","_sendCompleteEvent","catch","_sendCancelEvent","upload","save","_defaultFileName","_useFileSystemSave","isString","isByteArray","getBytes","showSaveFilePicker","suggestedName","createWritable","write","_e","requestPermission","download","defaultFileName","cancel","AWAY_SO_MAGIC","VirtualStorage","_values","_realStorage","getItem","setItem","removeItem","getSharedObjectStorage","Storage","localStorage","SharedObjectDebug","decodedData","USED_SEC","store","dec","SharedObject","tryDecodeData","_lastDecodedData","_lastRawData","encodeAndApplyData","newRaw","so","tryEncodeData","_AWAY_DEBUG_STORAGE","closeAll","flushAll","awaySOVersion","version","deleteAll","getDiskUsage","StringUtilities","decodeRestrictedBase64ToBytes","serializedData","AMF3","read","Uint8Array","arraybytes","base64EncodeBytes","getLocal","localPath","secure","_sharedObjects","encodedData","encoding","_defaultObjectEncoding","res","warning","_path","_objectEncoding","getRemote","remotePath","persistence","flush","minDiskSpace","encoded","toFixed","setDirty","propertyName","connect","myConnection","params","send","updatesPerSecond","setProperty","ObjectEncoding","URLLoader","_dataIsNull","URLLoaderAway","_completeCallbackDelegate","completeCallback","_progressCallbackDelegate","progressCallback","_loadErrorDelegate","loadErrorDelegate","LOAD_COMPLETE","$BgdataFormat","URLLoaderDataFormat","VARIABLES","BINARY","forbiddenNames","LocalConnection","_client","_connectionName","_allowedInsecureDomains","_allowedSecureDomains","_domain","hostname","_secure","protocol","connectionName","CloseNotConnectedError","methodName","client","AXObject","InvalidParamError","allowDomain","domains","_allowDomains","allowInsecureDomain","handleMessage","argsBuffer","createError","ReadSealedError","axIsCallable","readObject","CheckTypeFailedError","errorEvent","newValue","NetConnection","_httpCallId","_connected","_proxyType","defaultObjectEncoding","_usingTLS","invoke","addHeader","mustUnderstand","param","_invoke","responder","callArgs","_httpCall","_debugAMF","__AWAYFL_AMF_DEBUG","to","from","pack","ar","__spreadArray","_makeStatusInfo","_dispatchStatus","_netStatusEventClass","event_1","_newAMFByteArray","_byteArrayClass","ba","_pendingResponders","writeByte","writeObject","body","packet","_buildRemotingPacket","_uri","_httpFail","fetch","credentials","headers","r","ok","t","_handleRemotingResponse","err","messages","_parseRemotingPacket","msg","_position","match","exec","kind","invokeResult","invokeStatus","responseId","enc","TextEncoder","head","u16","utf","dv","TextDecoder","getUint16","getUint32","h","test","Promise","resolve","_createRtmpStream","transactionId","_rtmpCreateStreamCallbacks","_rtmpConnection","createStream","ptype","_connectedProxyType","_protocol","_maxPeerConnections","maxPeers","_nearID","_farID","_nearNonce","_farNonce","_unconnectedPeerStreams","simulated","Responder","_result","Socket","host","port","readBytes","writeBytes","writeBoolean","writeShort","writeInt","writeUnsignedInt","writeDouble","writeMultiByte","charSet","writeUTF","writeUTFBytes","readBoolean","readByte","readUnsignedByte","readShort","readUnsignedShort","readInt","readDouble","readMultiByte","readUTF","readUTFBytes","internalGetSecurityErrorMessage","internalConnect","SocketConnectError","didFailureOccur","SecurityDomain","TouchscreenType","FINGER","STYLUS","DEFAULT_CAPABILITIES","LANGUAGE","PLAYER_TYPE","SCREEN_DPI","IS_DEBUGGER","Capabilities","_hasAccessibility","_language","_manufacturer","_os","os","userAgent","navigator","versionStr","_playerType","toKeyValueArray","OS","pair","encodeURIComponent","_version","_screenDPI","hasMultiChannelAudio","fscommand","executeFSCommand","Security","_exactSettings","_sandboxType","FileLoadingService","resolveUrl","loadPolicyFile","showSettings","panel","duplicateSandboxBridgeInputArguments","toplevel","duplicateSandboxBridgeOutputArgument","REMOTE","LOCAL_WITH_FILE","LOCAL_WITH_NETWORK","LOCAL_TRUSTED","APPLICATION","System","disposeXML","exit","pause","pauseForGCIfCollectionImminent","imminence","resume","setClipboard","string","clipboard","writeText","isAVMFont","DefaultFontManager","getFont","registerFontForClassName","enumerateFonts","enumerateDeviceFonts","registerFont","font","hasGlyphs","StyleSheet","getStyle","parseCSS","CSSText","setStyle","styleObject","formatObject","_textFieldChangeListener","autoSize","TextFieldAutoSize","selectable","_textChangeCallbackDelegate","textChangeCallback","TextFieldType","INPUT","TextfieldEvent","CHANGED","getNewTextField","_textFields","textField","dispatchKeyEvent","isShift","isCTRL","isAlt","selectTextField","newText","alwaysShowSelection","antiAliasType","background","backgroundColor","border","borderColor","tf","newTextFormat","TextFormat","mergedFormat","applyToFormat","displayAsPassword","embedFonts","embed","font_name","fontName","gridFitType","htmlText","maxChars","maxScrollH","maxScrollV","mouseWheelEnabled","multiline","numLines","restrict","scrollH","scrollV","selectionBeginIndex","selectionEndIndex","textColor","textHeight","textWidth","wordWrap","appendText","copyRichText","getCharBoundaries","charIndex","getCharIndexAtPoint","getFirstCharInParagraph","getImageReference","getLineIndexAtPoint","getLineIndexOfChar","getLineLength","lineIndex","getLineMetrics","ascent","descent","leading","TextLineMetrics","getLineOffset","getLineText","getParagraphLength","getRawText","getTextFormat","awt","getTextRuns","getXMLText","insertXMLText","richText","pasting","isFontCompatible","fontStyle","pasteRichText","replaceSelectedText","replaceText","setSelection","setTextFormat","bold","italic","underline","link_target","leftMargin","rightMargin","indent","AwaytextFormat","blockIndent","kerning","letterSpacing","clonedFormat","TextRun","textFormat","_beginIndex","_endIndex","_textFormat","containsIndex","StaticText","_canHaveTextContent","_getTextContent","_textContent","plainText","TextRenderer","setAdvancedAntiAliasingTable","colorType","advancedAntiAliasingTable","TextFormatDisplay","INLINE","BLOCK","TextExtent","textFieldWidth","textFieldHeight","TextDisplayMode","LCD","CRT","TextColorType","DARK_COLOR","LIGHT_COLOR","FontType","EMBEDDED","EMBEDDED_CFF","DEVICE","CSMSettings","fontSize","insideCutoff","outsideCutoff","TextSnapshot","findText","textToFind","caseSensitive","getSelected","getSelectedText","includeLineEndings","getText","getTextRunInfo","hitTestTextNearPos","maxDistance","setSelectColor","hexColor","setSelected","select","CompositionAttributeRange","relativeStart","relativeEnd","selected","converted","BreakOpportunity","AUTO","ANY","CFFHinting","HORIZONTAL_STEM","contentElementIDs","ContentElement","elementFormat","eventMirror","textRotation","_elementFormat","_eventMirror","_textRotation","setTextBlock","_textBlock","setGroupElement","_groupElement","_textBlockBeginIndex","setTextDataDirty","_rawText","GRAPHIC_ELEMENT","DigitCase","LINING","OLD_STYLE","DigitWidth","PROPORTIONAL","TABULAR","TextJustifier","locale","lineJustification","_locale","_lineJustification","getJustifierForLocale","setLocale","EastAsianJustifier","justificationStyle","TextBaseline","ROMAN","ASCENT","DESCENT","IDEOGRAPHIC_TOP","IDEOGRAPHIC_CENTER","IDEOGRAPHIC_BOTTOM","USE_DOMINANT_BASELINE","elementFormatIDs","ElementFormat","fontDescription","dominantBaseline","alignmentBaseline","baselineShift","trackingRight","trackingLeft","breakOpportunity","digitCase","digitWidth","ligatureLevel","typographicCase","_fontDescription","_fontSize","_dominantBaseline","_alignmentBaseline","_baselineShift","_kerning","_trackingRight","_trackingLeft","_breakOpportunity","_digitCase","_digitWidth","_ligatureLevel","_typographicCase","createAwayTextformat","_c","awayTextFormat","fontLookUpMode","fontLookup","FontLookUpMode","fontPosture","fontWeight","TextFormatAlign","LEFT","getBaseline","opportunityType","digitCaseType","digitWidthType","ligatureLevelType","typographicCaseType","_locked","getFontMetrics","FontDescription","renderingMode","cffHinting","_fontName","_fontWeight","_fontPosture","_fontLookup","_renderingMode","_cffHinting","isDeviceFontCompatible","FontLookup","FontMetrics","emBox","strikethroughOffset","strikethroughThickness","underlineOffset","underlineThickness","subscriptOffset","subscriptScale","superscriptOffset","superscriptScale","lineGap","FontPosture","NORMAL","ITALIC","FontWeight","BOLD","GraphicElement","graphic","elementWidth","elementHeight","JustificationStyle","PUSH_IN_KINSOKU","PUSH_OUT_ONLY","PRIORITIZE_LEAST_ADJUSTMENT","Kerning","ON","OFF","LigatureLevel","MINIMUM","COMMON","UNCOMMON","EXOTIC","LineJustification","UNJUSTIFIED","ALL_BUT_LAST","ALL_INCLUDING_LAST","ALL_BUT_MANDATORY_BREAK","RenderingMode","CFF","SpaceJustifier","_letterSpacing","_minimumSpacing","_optimumSpacing","_maximumSpacing","TabAlignment","START","CENTER","DECIMAL","TabStop","alignment","decimalAlignmentToken","TextLineCreationResult","SUCCESS","EMERGENCY","INSUFFICIENT_WIDTH","textBlockIDs","textLinePool","TextBlock","tabStops","textJustifier","lineRotation","baselineZero","bidiLevel","applyNonLinearFontScaling","baselineFontDescription","baselineFontSize","_tabStops","_textJustifier","_lineRotation","_baselineZero","_bidiLevel","_applyNonLinearFontScaling","_baselineFontDescription","_baselineFontSize","_textLines","_creationResult","_textData","_convertContentToTextData","formats","elementFormats","formatIndices","processedIdx","creationResult","spaces","lineBreaks","charWidths","resolveGroupElements","formatsIndicies","rawText","form_len","font_table","initFontSize","lastChar","char_code","charCodeAt","getCharWidth","group","elementCount","getElementAt","createTextLine","previousLine","lineOffset","fitSomething","defaultFormat","defaultElementFormat","textLine","newWord","newCharCnt","newFormats","newElementFormats","newFormatindices","loop1","c_1","free","setPreviousLine","setNextLine","reUseTextLine","engine","TextLine","recreateTextLine","findNextAtomBoundary","afterCharIndex","findPreviousAtomBoundary","beforeCharIndex","findNextWordBoundary","findPreviousWordBoundary","getTextLineAtCharIndex","releaseLineCreationData","releaseLines","firstLine","lastLine","nextLine","dump","DoCreateTextLine","reuseLine","getTabStops","setTabStops","getTextJustifier","setTextJustifier","_userData","TextElement","TextLineValidity","VALID","POSSIBLY_INVALID","INVALID","STATIC","formatsIndices","textBlockBeginIndex","textLength","elementsFormats","_previousLine","_width","_textWidth","_textHeight","_lineOffset","_fitSomething","_textFormatsIndices","_textFormats","_textLength","_specifiedWidth","_textfield","initTextline","_ascent","_descent","POSITIVE_INFINITY","lastAlignmentBaseline","startIdx","endIdx","em_size","get_font_em_size","_unjustifiedTextWidth","abs","_validity","getBaselinePosition","baseline","_nextLine","getMirrorRegion","mirror","flushAtomData","_mirrorRegions","getAtomIndexAtPoint","stageX","stageY","getAtomIndexAtCharIndex","getAtomBounds","atomIndex","getAtomBidiLevel","getAtomTextRotation","getAtomTextBlockBeginIndex","getAtomTextBlockEndIndex","getAtomCenter","getAtomWordBoundaryOnLeft","getAtomGraphic","MAX_LINE_WIDTH","TextLineMirrorRegion","TextRotation","ROTATE_0","ROTATE_90","ROTATE_180","ROTATE_270","TypographicCase","TITLE","CAPS","SMALL_CAPS","UPPERCASE","LOWERCASE","CAPS_AND_SMALL_CAPS","Keyboard","isAccessible","ContextMenu","_builtInItems","ui","ContextMenuBuiltInItems","_customItems","_clipboardItems","ContextMenuClipboardItems","_link","_clipboardMenu","hideBuiltInItems","builtInItems","zoom","rewind","forwardAndBack","print","cloneLinkAndClipboardProperties","customItems","NativeMenu","ContextMenuItem","caption","separatorBefore","_caption","_separatorBefore","_visible","_save","_zoom","_play","_loop","_rewind","_forwardAndBack","_print","val","_cut","_copy","_paste","_clear","_selectAll","GameInput","getDeviceAt","ParamRangeError","GameInputControl","getValueAt","GameInputControlType","MOVEMENT","ROTATION","DIRECTION","ACCELERATION","BUTTON","TRIGGER","GameInputDevice","getControlAt","startCachingSamples","numSamples","controls","stopCachingSamples","getCachedSamples","MAX_BUFFER_SIZE","GameInputFinger","THUMB","INDEX","MIDDLE","UNKNOWN","GameInputHand","RIGHT","Mouse","_cursor","hide","showCursor","registerCursor","cursor","unregisterCursor","MouseCursorData","_hotSpot","_frameRate","MultitouchInputMode","GESTURE","TOUCH_POINT","Multitouch","Timer","delay","repeatCount","_delay","_repeatCount","_iteration","_running","DelayRangeError","start","clearInterval","_interval","setInterval","_tick","dispatchingEnabled","CompressionAlgorithm","$BgDEFLATE","$BgLZMA","$BgZLIB","GroupElement","elements","_elements","setElements","groupElements","ungroupElements","groupIndex","mergeTextElements","splitTextElement","elementIndex","splitIndex","replaceElements","newElements","cnt","getElementAtCharIndex","Property","createObjectWithPrototype","newObj","attr","BaseTextLayoutImporter","checkNamespace","param1","_loc2","$Bgnamespace","_textFlowNamespace","uri","$Bgns","M","asClass","registerNativeClass","initLink","BlendMode","XMLDocument","XMLNode","registerNativeFunction","TLFTextField","external","AXSecurityDomain","browserLoader","methodIdx","statusText","json","PlayerGlobal","createSecurityDomain","swfFile","libraries","_avmStage","avmTestHandler","Natives","_expression","messageSplit","addMessage","AVM2LoadLibrariesFlags","Builtin","base","builtinsBaseUrl","tasks","Playerglobal","all","builtins","pgByte","pgJson","avmplus","builtinABC","initialize","executeABC","catalog","ABCCatalog","addCatalog","avmPlusABC","_constructStage","config","flashvars","ActiveLoaderContext","loaderContext","resizeStage","addAsset","addScene"],"mappings":"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"}
|