@next2d/player 1.14.7 → 1.14.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/@types/next2d.d.ts +4 -0
  2. package/@types/window.d.ts +74 -0
  3. package/README.ja.md +8 -7
  4. package/README.md +17 -12
  5. package/dist/interface/AjaxEventImpl.d.ts +5 -0
  6. package/dist/interface/AjaxEventImpl.js +1 -0
  7. package/dist/interface/AjaxOptionImpl.d.ts +13 -0
  8. package/dist/interface/AjaxOptionImpl.js +1 -0
  9. package/dist/interface/AttachmentImpl.d.ts +11 -0
  10. package/dist/interface/AttachmentImpl.js +1 -0
  11. package/dist/interface/BitmapDataChannelImpl.d.ts +1 -0
  12. package/dist/interface/BitmapDataChannelImpl.js +1 -0
  13. package/dist/interface/BitmapDrawObjectImpl.d.ts +6 -0
  14. package/dist/interface/BitmapDrawObjectImpl.js +1 -0
  15. package/dist/interface/BitmapFilterTypeImpl.d.ts +1 -0
  16. package/dist/interface/BitmapFilterTypeImpl.js +1 -0
  17. package/dist/interface/BlendModeImpl.d.ts +1 -0
  18. package/dist/interface/BlendModeImpl.js +1 -0
  19. package/dist/interface/BoundsImpl.d.ts +6 -0
  20. package/dist/interface/BoundsImpl.js +1 -0
  21. package/dist/interface/Character.d.ts +2 -0
  22. package/dist/interface/Character.js +1 -0
  23. package/dist/interface/CharacterImpl.d.ts +2 -0
  24. package/dist/interface/CharacterImpl.js +1 -0
  25. package/dist/interface/ClassNameMap.d.ts +4 -0
  26. package/dist/interface/ClassNameMap.js +1 -0
  27. package/dist/interface/ClipObjectImpl.d.ts +14 -0
  28. package/dist/interface/ClipObjectImpl.js +1 -0
  29. package/dist/interface/ColorStopImpl.d.ts +7 -0
  30. package/dist/interface/ColorStopImpl.js +1 -0
  31. package/dist/interface/DictionaryTagImpl.d.ts +7 -0
  32. package/dist/interface/DictionaryTagImpl.js +1 -0
  33. package/dist/interface/DisplacementMapFilterModeImpl.d.ts +1 -0
  34. package/dist/interface/DisplacementMapFilterModeImpl.js +1 -0
  35. package/dist/interface/DisplayImpl.d.ts +28 -0
  36. package/dist/interface/DisplayImpl.js +1 -0
  37. package/dist/interface/DisplayObjectImpl.d.ts +2 -0
  38. package/dist/interface/DisplayObjectImpl.js +1 -0
  39. package/dist/interface/DragRulesImpl.d.ts +7 -0
  40. package/dist/interface/DragRulesImpl.js +1 -0
  41. package/dist/interface/DropTargetImpl.d.ts +2 -0
  42. package/dist/interface/DropTargetImpl.js +1 -0
  43. package/dist/interface/EventDispatcherImpl.d.ts +2 -0
  44. package/dist/interface/EventDispatcherImpl.js +1 -0
  45. package/dist/interface/EventListenerImpl.d.ts +6 -0
  46. package/dist/interface/EventListenerImpl.js +1 -0
  47. package/dist/interface/EventsImpl.d.ts +20 -0
  48. package/dist/interface/EventsImpl.js +1 -0
  49. package/dist/interface/FillMeshImpl.d.ts +5 -0
  50. package/dist/interface/FillMeshImpl.js +1 -0
  51. package/dist/interface/FilterArrayImpl.d.ts +10 -0
  52. package/dist/interface/FilterArrayImpl.js +1 -0
  53. package/dist/interface/FilterQualityImpl.d.ts +1 -0
  54. package/dist/interface/FilterQualityImpl.js +1 -0
  55. package/dist/interface/FiltersImpl.d.ts +20 -0
  56. package/dist/interface/FiltersImpl.js +1 -0
  57. package/dist/interface/GeomImpl.d.ts +12 -0
  58. package/dist/interface/GeomImpl.js +1 -0
  59. package/dist/interface/GradientTypeImpl.d.ts +3 -0
  60. package/dist/interface/GradientTypeImpl.js +1 -0
  61. package/dist/interface/GraphicsParentImpl.d.ts +2 -0
  62. package/dist/interface/GraphicsParentImpl.js +1 -0
  63. package/dist/interface/GridImpl.d.ts +6 -0
  64. package/dist/interface/GridImpl.js +1 -0
  65. package/dist/interface/ImageTypeImpl.d.ts +1 -0
  66. package/dist/interface/ImageTypeImpl.js +1 -0
  67. package/dist/interface/IndexRangeImpl.d.ts +4 -0
  68. package/dist/interface/IndexRangeImpl.js +1 -0
  69. package/dist/interface/LoaderInfoDataImpl.d.ts +7 -0
  70. package/dist/interface/LoaderInfoDataImpl.js +1 -0
  71. package/dist/interface/LoopConfigImpl.d.ts +8 -0
  72. package/dist/interface/LoopConfigImpl.js +1 -0
  73. package/dist/interface/LoopTypeImpl.d.ts +1 -0
  74. package/dist/interface/LoopTypeImpl.js +1 -0
  75. package/dist/interface/MediaImpl.d.ts +10 -0
  76. package/dist/interface/MediaImpl.js +1 -0
  77. package/dist/interface/MovieClipActionObjectImpl.d.ts +5 -0
  78. package/dist/interface/MovieClipActionObjectImpl.js +1 -0
  79. package/dist/interface/MovieClipCharacterImpl.d.ts +18 -0
  80. package/dist/interface/MovieClipCharacterImpl.js +1 -0
  81. package/dist/interface/MovieClipLabelObjectImpl.d.ts +4 -0
  82. package/dist/interface/MovieClipLabelObjectImpl.js +1 -0
  83. package/dist/interface/MovieClipSoundObjectImpl.d.ts +5 -0
  84. package/dist/interface/MovieClipSoundObjectImpl.js +1 -0
  85. package/dist/interface/NetImpl.d.ts +6 -0
  86. package/dist/interface/NetImpl.js +1 -0
  87. package/dist/interface/NoCodeDataImpl.d.ts +7 -0
  88. package/dist/interface/NoCodeDataImpl.js +1 -0
  89. package/dist/interface/NoCodeDataZlibImpl.d.ts +4 -0
  90. package/dist/interface/NoCodeDataZlibImpl.js +1 -0
  91. package/dist/interface/ParentImpl.d.ts +2 -0
  92. package/dist/interface/ParentImpl.js +1 -0
  93. package/dist/interface/PlaceObjectImpl.d.ts +12 -0
  94. package/dist/interface/PlaceObjectImpl.js +1 -0
  95. package/dist/interface/PlayerHitObjectImpl.d.ts +7 -0
  96. package/dist/interface/PlayerHitObjectImpl.js +1 -0
  97. package/dist/interface/PlayerModeImpl.d.ts +1 -0
  98. package/dist/interface/PlayerModeImpl.js +1 -0
  99. package/dist/interface/PlayerOptionsImpl.d.ts +8 -0
  100. package/dist/interface/PlayerOptionsImpl.js +1 -0
  101. package/dist/interface/PointImpl.d.ts +4 -0
  102. package/dist/interface/PointImpl.js +1 -0
  103. package/dist/interface/PreObjectImpl.d.ts +23 -0
  104. package/dist/interface/PreObjectImpl.js +1 -0
  105. package/dist/interface/PropertyContainerMessageImpl.d.ts +6 -0
  106. package/dist/interface/PropertyContainerMessageImpl.js +1 -0
  107. package/dist/interface/PropertyMessageImpl.d.ts +41 -0
  108. package/dist/interface/PropertyMessageImpl.js +1 -0
  109. package/dist/interface/PropertyMessageMapImpl.d.ts +2 -0
  110. package/dist/interface/PropertyMessageMapImpl.js +1 -0
  111. package/dist/interface/PropertyShapeMessageImpl.d.ts +6 -0
  112. package/dist/interface/PropertyShapeMessageImpl.js +1 -0
  113. package/dist/interface/PropertyTextMessageImpl.d.ts +25 -0
  114. package/dist/interface/PropertyTextMessageImpl.js +1 -0
  115. package/dist/interface/PropertyVideoMessageImpl.d.ts +5 -0
  116. package/dist/interface/PropertyVideoMessageImpl.js +1 -0
  117. package/dist/interface/RGBAImpl.d.ts +6 -0
  118. package/dist/interface/RGBAImpl.js +1 -0
  119. package/dist/interface/RenderDisplayObjectImpl.d.ts +2 -0
  120. package/dist/interface/RenderDisplayObjectImpl.js +1 -0
  121. package/dist/interface/ShapeCharacterImpl.d.ts +14 -0
  122. package/dist/interface/ShapeCharacterImpl.js +1 -0
  123. package/dist/interface/SoundCharacterImpl.d.ts +5 -0
  124. package/dist/interface/SoundCharacterImpl.js +1 -0
  125. package/dist/interface/SoundTagImpl.d.ts +6 -0
  126. package/dist/interface/SoundTagImpl.js +1 -0
  127. package/dist/interface/SpriteImpl.d.ts +2 -0
  128. package/dist/interface/SpriteImpl.js +1 -0
  129. package/dist/interface/StageDataImpl.d.ts +6 -0
  130. package/dist/interface/StageDataImpl.js +1 -0
  131. package/dist/interface/StageQualityImpl.d.ts +1 -0
  132. package/dist/interface/StageQualityImpl.js +1 -0
  133. package/dist/interface/StrokeMethImpl.d.ts +4 -0
  134. package/dist/interface/StrokeMethImpl.js +1 -0
  135. package/dist/interface/StrokeTypeImpl.d.ts +2 -0
  136. package/dist/interface/StrokeTypeImpl.js +1 -0
  137. package/dist/interface/SurfaceFilterImpl.d.ts +6 -0
  138. package/dist/interface/SurfaceFilterImpl.js +1 -0
  139. package/dist/interface/TextBreakObjectImpl.d.ts +9 -0
  140. package/dist/interface/TextBreakObjectImpl.js +1 -0
  141. package/dist/interface/TextCharacterImpl.d.ts +27 -0
  142. package/dist/interface/TextCharacterImpl.js +1 -0
  143. package/dist/interface/TextDataImpl.d.ts +2 -0
  144. package/dist/interface/TextDataImpl.js +1 -0
  145. package/dist/interface/TextFieldAutoSizeImpl.d.ts +1 -0
  146. package/dist/interface/TextFieldAutoSizeImpl.js +1 -0
  147. package/dist/interface/TextFieldTypeImpl.d.ts +1 -0
  148. package/dist/interface/TextFieldTypeImpl.js +1 -0
  149. package/dist/interface/TextFormatAlignImpl.d.ts +1 -0
  150. package/dist/interface/TextFormatAlignImpl.js +1 -0
  151. package/dist/interface/TextFormatImpl.d.ts +16 -0
  152. package/dist/interface/TextFormatImpl.js +1 -0
  153. package/dist/interface/TextFormatVerticalAlignImpl.d.ts +1 -0
  154. package/dist/interface/TextFormatVerticalAlignImpl.js +1 -0
  155. package/dist/interface/TextImageObjectImpl.d.ts +11 -0
  156. package/dist/interface/TextImageObjectImpl.js +1 -0
  157. package/dist/interface/TextImpl.d.ts +6 -0
  158. package/dist/interface/TextImpl.js +1 -0
  159. package/dist/interface/TextModeImpl.d.ts +1 -0
  160. package/dist/interface/TextModeImpl.js +1 -0
  161. package/dist/interface/TextObjectImpl.d.ts +7 -0
  162. package/dist/interface/TextObjectImpl.js +1 -0
  163. package/dist/interface/TextObjectModeImpl.d.ts +1 -0
  164. package/dist/interface/TextObjectModeImpl.js +1 -0
  165. package/dist/interface/TextStringObjectImpl.d.ts +7 -0
  166. package/dist/interface/TextStringObjectImpl.js +1 -0
  167. package/dist/interface/UIImpl.d.ts +8 -0
  168. package/dist/interface/UIImpl.js +1 -0
  169. package/dist/interface/URLLoaderDataFormatImpl.d.ts +1 -0
  170. package/dist/interface/URLLoaderDataFormatImpl.js +1 -0
  171. package/dist/interface/URLRequestMethodImpl.d.ts +1 -0
  172. package/dist/interface/URLRequestMethodImpl.js +1 -0
  173. package/dist/interface/UniformDataImpl.d.ts +5 -0
  174. package/dist/interface/UniformDataImpl.js +1 -0
  175. package/dist/interface/UnzipQueueImpl.d.ts +6 -0
  176. package/dist/interface/UnzipQueueImpl.js +1 -0
  177. package/dist/interface/VerticesImpl.d.ts +1 -0
  178. package/dist/interface/VerticesImpl.js +1 -0
  179. package/dist/interface/VideoCharacterImpl.d.ts +12 -0
  180. package/dist/interface/VideoCharacterImpl.js +1 -0
  181. package/dist/player/index.d.ts +1 -0
  182. package/dist/player/index.js +40 -0
  183. package/dist/player/next2d/display/BitmapData.d.ts +143 -0
  184. package/dist/player/next2d/display/BitmapData.js +390 -0
  185. package/dist/player/next2d/display/BlendMode.d.ts +204 -0
  186. package/dist/player/next2d/display/BlendMode.js +240 -0
  187. package/dist/player/next2d/display/DisplayObject.d.ts +571 -0
  188. package/dist/player/next2d/display/DisplayObject.js +1733 -0
  189. package/dist/player/next2d/display/DisplayObjectContainer.d.ts +351 -0
  190. package/dist/player/next2d/display/DisplayObjectContainer.js +1765 -0
  191. package/dist/player/next2d/display/FrameLabel.d.ts +98 -0
  192. package/dist/player/next2d/display/FrameLabel.js +122 -0
  193. package/dist/player/next2d/display/Graphics.d.ts +577 -0
  194. package/dist/player/next2d/display/Graphics.js +2193 -0
  195. package/dist/player/next2d/display/GraphicsBitmapFill.d.ts +49 -0
  196. package/dist/player/next2d/display/GraphicsBitmapFill.js +90 -0
  197. package/dist/player/next2d/display/GraphicsGradientFill.d.ts +66 -0
  198. package/dist/player/next2d/display/GraphicsGradientFill.js +162 -0
  199. package/dist/player/next2d/display/InteractiveObject.d.ts +32 -0
  200. package/dist/player/next2d/display/InteractiveObject.js +44 -0
  201. package/dist/player/next2d/display/Loader.d.ts +131 -0
  202. package/dist/player/next2d/display/Loader.js +324 -0
  203. package/dist/player/next2d/display/LoaderInfo.d.ts +122 -0
  204. package/dist/player/next2d/display/LoaderInfo.js +191 -0
  205. package/dist/player/next2d/display/LoopConfig.d.ts +108 -0
  206. package/dist/player/next2d/display/LoopConfig.js +160 -0
  207. package/dist/player/next2d/display/LoopType.d.ts +104 -0
  208. package/dist/player/next2d/display/LoopType.js +122 -0
  209. package/dist/player/next2d/display/MovieClip.d.ts +312 -0
  210. package/dist/player/next2d/display/MovieClip.js +959 -0
  211. package/dist/player/next2d/display/Shape.d.ts +167 -0
  212. package/dist/player/next2d/display/Shape.js +514 -0
  213. package/dist/player/next2d/display/Sprite.d.ts +174 -0
  214. package/dist/player/next2d/display/Sprite.js +288 -0
  215. package/dist/player/next2d/display/Stage.d.ts +164 -0
  216. package/dist/player/next2d/display/Stage.js +255 -0
  217. package/dist/player/next2d/events/Event.d.ts +424 -0
  218. package/dist/player/next2d/events/Event.js +569 -0
  219. package/dist/player/next2d/events/EventDispatcher.d.ts +138 -0
  220. package/dist/player/next2d/events/EventDispatcher.js +624 -0
  221. package/dist/player/next2d/events/EventPhase.d.ts +80 -0
  222. package/dist/player/next2d/events/EventPhase.js +94 -0
  223. package/dist/player/next2d/events/FocusEvent.d.ts +89 -0
  224. package/dist/player/next2d/events/FocusEvent.js +103 -0
  225. package/dist/player/next2d/events/HTTPStatusEvent.d.ts +107 -0
  226. package/dist/player/next2d/events/HTTPStatusEvent.js +142 -0
  227. package/dist/player/next2d/events/IOErrorEvent.d.ts +82 -0
  228. package/dist/player/next2d/events/IOErrorEvent.js +102 -0
  229. package/dist/player/next2d/events/MouseEvent.d.ts +163 -0
  230. package/dist/player/next2d/events/MouseEvent.js +207 -0
  231. package/dist/player/next2d/events/ProgressEvent.d.ts +97 -0
  232. package/dist/player/next2d/events/ProgressEvent.js +125 -0
  233. package/dist/player/next2d/events/VideoEvent.d.ts +145 -0
  234. package/dist/player/next2d/events/VideoEvent.js +183 -0
  235. package/dist/player/next2d/filters/BevelFilter.d.ts +254 -0
  236. package/dist/player/next2d/filters/BevelFilter.js +501 -0
  237. package/dist/player/next2d/filters/BitmapFilter.d.ts +75 -0
  238. package/dist/player/next2d/filters/BitmapFilter.js +96 -0
  239. package/dist/player/next2d/filters/BlurFilter.d.ts +150 -0
  240. package/dist/player/next2d/filters/BlurFilter.js +373 -0
  241. package/dist/player/next2d/filters/ColorMatrixFilter.d.ts +116 -0
  242. package/dist/player/next2d/filters/ColorMatrixFilter.js +180 -0
  243. package/dist/player/next2d/filters/ConvolutionFilter.d.ts +210 -0
  244. package/dist/player/next2d/filters/ConvolutionFilter.js +375 -0
  245. package/dist/player/next2d/filters/DisplacementMapFilter.d.ts +212 -0
  246. package/dist/player/next2d/filters/DisplacementMapFilter.js +381 -0
  247. package/dist/player/next2d/filters/DropShadowFilter.d.ts +240 -0
  248. package/dist/player/next2d/filters/DropShadowFilter.js +470 -0
  249. package/dist/player/next2d/filters/GlowFilter.d.ts +204 -0
  250. package/dist/player/next2d/filters/GlowFilter.js +362 -0
  251. package/dist/player/next2d/filters/GradientBevelFilter.d.ts +243 -0
  252. package/dist/player/next2d/filters/GradientBevelFilter.js +483 -0
  253. package/dist/player/next2d/filters/GradientGlowFilter.d.ts +243 -0
  254. package/dist/player/next2d/filters/GradientGlowFilter.js +473 -0
  255. package/dist/player/next2d/geom/ColorTransform.d.ts +201 -0
  256. package/dist/player/next2d/geom/ColorTransform.js +279 -0
  257. package/dist/player/next2d/geom/Matrix.d.ts +299 -0
  258. package/dist/player/next2d/geom/Matrix.js +455 -0
  259. package/dist/player/next2d/geom/Point.d.ts +213 -0
  260. package/dist/player/next2d/geom/Point.js +276 -0
  261. package/dist/player/next2d/geom/Rectangle.d.ts +364 -0
  262. package/dist/player/next2d/geom/Rectangle.js +517 -0
  263. package/dist/player/next2d/geom/Transform.d.ts +213 -0
  264. package/dist/player/next2d/geom/Transform.js +497 -0
  265. package/dist/player/next2d/media/Sound.d.ts +208 -0
  266. package/dist/player/next2d/media/Sound.js +515 -0
  267. package/dist/player/next2d/media/SoundMixer.d.ts +68 -0
  268. package/dist/player/next2d/media/SoundMixer.js +115 -0
  269. package/dist/player/next2d/media/SoundTransform.d.ts +80 -0
  270. package/dist/player/next2d/media/SoundTransform.js +113 -0
  271. package/dist/player/next2d/media/Video.d.ts +329 -0
  272. package/dist/player/next2d/media/Video.js +871 -0
  273. package/dist/player/next2d/net/URLRequest.d.ts +143 -0
  274. package/dist/player/next2d/net/URLRequest.js +239 -0
  275. package/dist/player/next2d/net/URLRequestHeader.d.ts +82 -0
  276. package/dist/player/next2d/net/URLRequestHeader.js +107 -0
  277. package/dist/player/next2d/text/TextField.d.ts +642 -0
  278. package/dist/player/next2d/text/TextField.js +2707 -0
  279. package/dist/player/next2d/text/TextFormat.d.ts +250 -0
  280. package/dist/player/next2d/text/TextFormat.js +473 -0
  281. package/dist/player/next2d/ui/Easing.d.ts +359 -0
  282. package/dist/player/next2d/ui/Easing.js +481 -0
  283. package/dist/player/next2d/ui/Job.d.ts +155 -0
  284. package/dist/player/next2d/ui/Job.js +344 -0
  285. package/dist/player/next2d/ui/Tween.d.ts +62 -0
  286. package/dist/player/next2d/ui/Tween.js +72 -0
  287. package/dist/player/packages/Display.d.ts +3 -0
  288. package/dist/player/packages/Display.js +36 -0
  289. package/dist/player/packages/Events.d.ts +3 -0
  290. package/dist/player/packages/Events.js +28 -0
  291. package/dist/player/packages/Filters.d.ts +3 -0
  292. package/dist/player/packages/Filters.js +28 -0
  293. package/dist/player/packages/Geom.d.ts +3 -0
  294. package/dist/player/packages/Geom.js +20 -0
  295. package/dist/player/packages/Media.d.ts +3 -0
  296. package/dist/player/packages/Media.js +18 -0
  297. package/dist/player/packages/Net.d.ts +3 -0
  298. package/dist/player/packages/Net.js +14 -0
  299. package/dist/player/packages/Text.d.ts +3 -0
  300. package/dist/player/packages/Text.js +14 -0
  301. package/dist/player/packages/UI.d.ts +3 -0
  302. package/dist/player/packages/UI.js +16 -0
  303. package/dist/player/player/Next2D.d.ts +71 -0
  304. package/dist/player/player/Next2D.js +206 -0
  305. package/dist/player/player/Player.d.ts +334 -0
  306. package/dist/player/player/Player.js +1912 -0
  307. package/dist/player/util/CacheStore.d.ts +115 -0
  308. package/dist/player/util/CacheStore.js +280 -0
  309. package/dist/player/util/Global.d.ts +23 -0
  310. package/dist/player/util/Global.js +67 -0
  311. package/dist/player/util/RenderUtil.d.ts +472 -0
  312. package/dist/player/util/RenderUtil.js +686 -0
  313. package/dist/player/util/Shortcut.d.ts +28 -0
  314. package/dist/player/util/Shortcut.js +28 -0
  315. package/dist/player/util/Util.d.ts +337 -0
  316. package/dist/player/util/Util.js +841 -0
  317. package/dist/renderer/RenderDisplayObject.d.ts +129 -0
  318. package/dist/renderer/RenderDisplayObject.js +567 -0
  319. package/dist/renderer/RenderDisplayObjectContainer.d.ts +70 -0
  320. package/dist/renderer/RenderDisplayObjectContainer.js +670 -0
  321. package/dist/renderer/RenderGlobal.d.ts +76 -0
  322. package/dist/renderer/RenderGlobal.js +88 -0
  323. package/dist/renderer/RenderGraphics.d.ts +90 -0
  324. package/dist/renderer/RenderGraphics.js +597 -0
  325. package/dist/renderer/RenderPlayer.d.ts +164 -0
  326. package/dist/renderer/RenderPlayer.js +421 -0
  327. package/dist/renderer/RenderShape.d.ts +32 -0
  328. package/dist/renderer/RenderShape.js +104 -0
  329. package/dist/renderer/RenderTextField.d.ts +119 -0
  330. package/dist/renderer/RenderTextField.js +709 -0
  331. package/dist/renderer/RenderVideo.d.ts +59 -0
  332. package/dist/renderer/RenderVideo.js +272 -0
  333. package/dist/webgl/BezierConverter.d.ts +59 -0
  334. package/dist/webgl/BezierConverter.js +107 -0
  335. package/dist/webgl/CanvasGradientToWebGL.d.ts +94 -0
  336. package/dist/webgl/CanvasGradientToWebGL.js +187 -0
  337. package/dist/webgl/CanvasPatternToWebGL.d.ts +39 -0
  338. package/dist/webgl/CanvasPatternToWebGL.js +70 -0
  339. package/dist/webgl/CanvasToWebGLContext.d.ts +596 -0
  340. package/dist/webgl/CanvasToWebGLContext.js +1453 -0
  341. package/dist/webgl/CanvasToWebGLContextBlend.d.ts +97 -0
  342. package/dist/webgl/CanvasToWebGLContextBlend.js +303 -0
  343. package/dist/webgl/CanvasToWebGLContextGrid.d.ts +74 -0
  344. package/dist/webgl/CanvasToWebGLContextGrid.js +314 -0
  345. package/dist/webgl/CanvasToWebGLContextMask.d.ts +113 -0
  346. package/dist/webgl/CanvasToWebGLContextMask.js +443 -0
  347. package/dist/webgl/CanvasToWebGLContextPath.d.ts +111 -0
  348. package/dist/webgl/CanvasToWebGLContextPath.js +213 -0
  349. package/dist/webgl/CanvasToWebGLContextStyle.d.ts +77 -0
  350. package/dist/webgl/CanvasToWebGLContextStyle.js +145 -0
  351. package/dist/webgl/ColorBufferPool.d.ts +58 -0
  352. package/dist/webgl/ColorBufferPool.js +137 -0
  353. package/dist/webgl/FrameBufferManager.d.ts +135 -0
  354. package/dist/webgl/FrameBufferManager.js +367 -0
  355. package/dist/webgl/StencilBufferPool.d.ts +56 -0
  356. package/dist/webgl/StencilBufferPool.js +147 -0
  357. package/dist/webgl/TextureManager.d.ts +130 -0
  358. package/dist/webgl/TextureManager.js +303 -0
  359. package/dist/webgl/VertexArrayObjectManager.d.ts +95 -0
  360. package/dist/webgl/VertexArrayObjectManager.js +289 -0
  361. package/dist/webgl/WebGLFillMeshGenerator.d.ts +31 -0
  362. package/dist/webgl/WebGLFillMeshGenerator.js +104 -0
  363. package/dist/webgl/WebGLStrokeMeshGenerator.d.ts +182 -0
  364. package/dist/webgl/WebGLStrokeMeshGenerator.js +510 -0
  365. package/dist/webgl/shader/CanvasToWebGLShader.d.ts +85 -0
  366. package/dist/webgl/shader/CanvasToWebGLShader.js +196 -0
  367. package/dist/webgl/shader/CanvasToWebGLShaderList.d.ts +70 -0
  368. package/dist/webgl/shader/CanvasToWebGLShaderList.js +115 -0
  369. package/dist/webgl/shader/GradientLUTGenerator.d.ts +36 -0
  370. package/dist/webgl/shader/GradientLUTGenerator.js +129 -0
  371. package/dist/webgl/shader/WebGLShaderUniform.d.ts +52 -0
  372. package/dist/webgl/shader/WebGLShaderUniform.js +168 -0
  373. package/dist/webgl/shader/fragment/FragmentShaderLibrary.d.ts +18 -0
  374. package/dist/webgl/shader/fragment/FragmentShaderLibrary.js +35 -0
  375. package/dist/webgl/shader/fragment/FragmentShaderSource.d.ts +29 -0
  376. package/dist/webgl/shader/fragment/FragmentShaderSource.js +99 -0
  377. package/dist/webgl/shader/fragment/FragmentShaderSourceBlend.d.ts +67 -0
  378. package/dist/webgl/shader/fragment/FragmentShaderSourceBlend.js +319 -0
  379. package/dist/webgl/shader/fragment/FragmentShaderSourceGradient.d.ts +44 -0
  380. package/dist/webgl/shader/fragment/FragmentShaderSourceGradient.js +114 -0
  381. package/dist/webgl/shader/fragment/FragmentShaderSourceGradientLUT.d.ts +14 -0
  382. package/dist/webgl/shader/fragment/FragmentShaderSourceGradientLUT.js +58 -0
  383. package/dist/webgl/shader/fragment/FragmentShaderSourceTexture.d.ts +12 -0
  384. package/dist/webgl/shader/fragment/FragmentShaderSourceTexture.js +36 -0
  385. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceBlurFilter.d.ts +12 -0
  386. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceBlurFilter.js +42 -0
  387. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.d.ts +11 -0
  388. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.js +35 -0
  389. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.d.ts +16 -0
  390. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.js +80 -0
  391. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.d.ts +15 -0
  392. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.js +106 -0
  393. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceFilter.d.ts +112 -0
  394. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceFilter.js +275 -0
  395. package/dist/webgl/shader/variants/BlendShaderVariantCollection.d.ts +99 -0
  396. package/dist/webgl/shader/variants/BlendShaderVariantCollection.js +242 -0
  397. package/dist/webgl/shader/variants/FilterShaderVariantCollection.d.ts +150 -0
  398. package/dist/webgl/shader/variants/FilterShaderVariantCollection.js +398 -0
  399. package/dist/webgl/shader/variants/GradientLUTShaderVariantCollection.d.ts +49 -0
  400. package/dist/webgl/shader/variants/GradientLUTShaderVariantCollection.js +110 -0
  401. package/dist/webgl/shader/variants/GradientShapeShaderVariantCollection.d.ts +61 -0
  402. package/dist/webgl/shader/variants/GradientShapeShaderVariantCollection.js +199 -0
  403. package/dist/webgl/shader/variants/ShapeShaderVariantCollection.d.ts +117 -0
  404. package/dist/webgl/shader/variants/ShapeShaderVariantCollection.js +430 -0
  405. package/dist/webgl/shader/vertex/VertexShaderLibrary.d.ts +18 -0
  406. package/dist/webgl/shader/vertex/VertexShaderLibrary.js +75 -0
  407. package/dist/webgl/shader/vertex/VertexShaderSource.d.ts +23 -0
  408. package/dist/webgl/shader/vertex/VertexShaderSource.js +92 -0
  409. package/dist/webgl/shader/vertex/VertexShaderSourceFill.d.ts +45 -0
  410. package/dist/webgl/shader/vertex/VertexShaderSourceFill.js +112 -0
  411. package/dist/webgl/shader/vertex/VertexShaderSourceStroke.d.ts +27 -0
  412. package/dist/webgl/shader/vertex/VertexShaderSourceStroke.js +149 -0
  413. package/package.json +31 -25
  414. package/SECURITY.md +0 -3
  415. package/next2d.js +0 -7
@@ -0,0 +1,1912 @@
1
+ import { Stage } from "../next2d/display/Stage";
2
+ import { CacheStore } from "../util/CacheStore";
3
+ import { Event as Next2DEvent } from "../next2d/events/Event";
4
+ import { MouseEvent as Next2DMouseEvent } from "../next2d/events/MouseEvent";
5
+ import { EventPhase } from "../next2d/events/EventPhase";
6
+ import { CanvasToWebGLContext } from "../../webgl/CanvasToWebGLContext";
7
+ import { SoundMixer } from "../next2d/media/SoundMixer";
8
+ import { $devicePixelRatio, $document, $window } from "../util/Shortcut";
9
+ import { $rendererWorker, $PREFIX, $audioContext, $TOUCH_START, $TOUCH_MOVE, $TOUCH_END, $MOUSE_DOWN, $MOUSE_MOVE, $MOUSE_UP, $MOUSE_WHEEL, $DOUBLE_CLICK, $MOUSE_LEAVE, $loadAudioData, $MATRIX_HIT_ARRAY_IDENTITY, $hitContext, $isTouch, $dropTarget, $dragRules, $isSafari } from "../util/Util";
10
+ import { $Math, $performance, $getArray, $getFloat32Array6, $getMap, $uintToRGBA, $toColorInt, $requestAnimationFrame, $cancelAnimationFrame, $poolArray, $COLOR_ARRAY_IDENTITY, $clamp } from "../util/RenderUtil";
11
+ import { $getEvent, $setEvent, $setEventType, $doUpdated, $setCurrentLoaderInfo, $getEventType, $isUpdated } from "../util/Global";
12
+ /**
13
+ * 描画のイベントや設定やコントロールの管理クラス
14
+ * Management classes for drawing events, settings and controls
15
+ *
16
+ * @class
17
+ */
18
+ export class Player {
19
+ _$stage;
20
+ _$cacheStore;
21
+ _$mode;
22
+ _$actionOffset;
23
+ _$actions;
24
+ _$loaders;
25
+ _$sounds;
26
+ _$context;
27
+ _$hitObject;
28
+ _$rollOverObject;
29
+ _$mouseOverTarget;
30
+ _$ratio;
31
+ _$stopFlag;
32
+ _$startTime;
33
+ _$fps;
34
+ _$isLoad;
35
+ _$loadStatus;
36
+ _$width;
37
+ _$height;
38
+ _$baseWidth;
39
+ _$baseHeight;
40
+ _$scale;
41
+ _$matrix;
42
+ _$tx;
43
+ _$ty;
44
+ _$state;
45
+ _$hitTestStart;
46
+ _$stageX;
47
+ _$stageY;
48
+ _$broadcastEvents;
49
+ _$optionWidth;
50
+ _$optionHeight;
51
+ _$tagId;
52
+ _$bgColor;
53
+ _$base;
54
+ _$videos;
55
+ _$sources;
56
+ _$fullScreen;
57
+ _$quality;
58
+ _$textField;
59
+ _$touchY;
60
+ _$timerId;
61
+ _$loadId;
62
+ _$attachment;
63
+ _$canvas;
64
+ _$deltaX;
65
+ _$deltaY;
66
+ _$clickTarget;
67
+ _$actionProcess;
68
+ /**
69
+ * @constructor
70
+ * @public
71
+ */
72
+ constructor() {
73
+ /**
74
+ * @type {Stage}
75
+ * @private
76
+ */
77
+ this._$stage = new Stage();
78
+ this._$stage._$player = this;
79
+ /**
80
+ * @type {CacheStore}
81
+ * @private
82
+ */
83
+ this._$cacheStore = new CacheStore();
84
+ /**
85
+ * @type {string}
86
+ * @private
87
+ */
88
+ this._$mode = "loader";
89
+ /**
90
+ * @type {number}
91
+ * @private
92
+ */
93
+ this._$actionOffset = 0;
94
+ /**
95
+ * @type {array}
96
+ * @private
97
+ */
98
+ this._$actions = $getArray();
99
+ /**
100
+ * @type {array}
101
+ * @public
102
+ */
103
+ this._$loaders = $getArray();
104
+ /**
105
+ * @type {Map}
106
+ * @private
107
+ */
108
+ this._$sounds = $getMap();
109
+ /**
110
+ * @type {object}
111
+ * @private
112
+ */
113
+ this._$hitObject = {
114
+ "x": 0,
115
+ "y": 0,
116
+ "pointer": "",
117
+ "hit": null
118
+ };
119
+ /**
120
+ * @type {DisplayObject}
121
+ * @default null
122
+ * @private
123
+ */
124
+ this._$rollOverObject = null;
125
+ /**
126
+ * @type {DisplayObject}
127
+ * @default null
128
+ * @private
129
+ */
130
+ this._$mouseOverTarget = null;
131
+ /**
132
+ * @type {number}
133
+ * @private
134
+ */
135
+ this._$ratio = $devicePixelRatio;
136
+ /**
137
+ * @type {boolean}
138
+ * @default true
139
+ * @private
140
+ */
141
+ this._$stopFlag = true;
142
+ /**
143
+ * @type {number}
144
+ * @default 0
145
+ * @private
146
+ */
147
+ this._$startTime = 0;
148
+ /**
149
+ * @type {number}
150
+ * @default 16
151
+ * @private
152
+ */
153
+ this._$fps = 16;
154
+ /**
155
+ * @type {boolean}
156
+ * @default false
157
+ * @private
158
+ */
159
+ this._$isLoad = false;
160
+ /**
161
+ * @type {number}
162
+ * @default 0
163
+ * @private
164
+ */
165
+ this._$loadStatus = 0;
166
+ /**
167
+ * @type {number}
168
+ * @default 0
169
+ * @private
170
+ */
171
+ this._$width = 0;
172
+ /**
173
+ * @type {number}
174
+ * @default 0
175
+ * @private
176
+ */
177
+ this._$height = 0;
178
+ /**
179
+ * @type {number}
180
+ * @default 0
181
+ * @private
182
+ */
183
+ this._$baseWidth = 0;
184
+ /**
185
+ * @type {number}
186
+ * @default 0
187
+ * @private
188
+ */
189
+ this._$baseHeight = 0;
190
+ /**
191
+ * @type {number}
192
+ * @default 1
193
+ * @private
194
+ */
195
+ this._$scale = 1;
196
+ /**
197
+ * @type {Float32Array}
198
+ * @private
199
+ */
200
+ this._$matrix = $getFloat32Array6(1, 0, 0, 1, 0, 0); // fixed size 6
201
+ /**
202
+ * @type {number}
203
+ * @default 0
204
+ * @private
205
+ */
206
+ this._$tx = 0;
207
+ /**
208
+ * @type {number}
209
+ * @default 0
210
+ * @private
211
+ */
212
+ this._$ty = 0;
213
+ /**
214
+ * @type {string}
215
+ * @default up
216
+ * @private
217
+ */
218
+ this._$state = "up";
219
+ /**
220
+ * @type {boolean}
221
+ * @default false
222
+ * @private
223
+ */
224
+ this._$hitTestStart = false;
225
+ /**
226
+ * @type {number}
227
+ * @default -1
228
+ * @private
229
+ */
230
+ this._$stageX = -1;
231
+ /**
232
+ * @type {number}
233
+ * @default -1
234
+ * @private
235
+ */
236
+ this._$stageY = -1;
237
+ /**
238
+ * @type {number}
239
+ * @default 0
240
+ * @private
241
+ */
242
+ this._$deltaX = 0;
243
+ /**
244
+ * @type {number}
245
+ * @default 0
246
+ * @private
247
+ */
248
+ this._$deltaY = 0;
249
+ /**
250
+ * @type {Map}
251
+ * @private
252
+ */
253
+ this._$broadcastEvents = $getMap();
254
+ /**
255
+ * @type {number}
256
+ * @default 0
257
+ * @private
258
+ */
259
+ this._$optionWidth = 0;
260
+ /**
261
+ * @type {number}
262
+ * @default 0
263
+ * @private
264
+ */
265
+ this._$optionHeight = 0;
266
+ /**
267
+ * @type {string}
268
+ * @default ""
269
+ * @private
270
+ */
271
+ this._$tagId = "";
272
+ /**
273
+ * @type {string}
274
+ * @default "transparent"
275
+ * @private
276
+ */
277
+ this._$bgColor = "transparent";
278
+ /**
279
+ * @type {string}
280
+ * @default ""
281
+ * @private
282
+ */
283
+ this._$base = "";
284
+ /**
285
+ * @type {boolean}
286
+ * @default false
287
+ * @private
288
+ */
289
+ this._$fullScreen = false;
290
+ /**
291
+ * @type {string}
292
+ * @default high
293
+ * @private
294
+ */
295
+ this._$quality = "high";
296
+ /**
297
+ * @type {array}
298
+ * @private
299
+ */
300
+ this._$sources = $getArray();
301
+ /**
302
+ * @type {array}
303
+ * @private
304
+ */
305
+ this._$videos = $getArray();
306
+ /**
307
+ * @type {TextField}
308
+ * @default null
309
+ * @private
310
+ */
311
+ this._$textField = null;
312
+ /**
313
+ * @type {number}
314
+ * @default 0
315
+ * @private
316
+ */
317
+ this._$touchY = 0;
318
+ /**
319
+ * @type {number}
320
+ * @default -1
321
+ * @private
322
+ */
323
+ this._$timerId = -1;
324
+ /**
325
+ * @type {number}
326
+ * @default -1
327
+ * @private
328
+ */
329
+ this._$loadId = -1;
330
+ /**
331
+ * @type {CanvasToWebGLContext}
332
+ * @default null
333
+ * @private
334
+ */
335
+ this._$context = null;
336
+ /**
337
+ * @type {AttachmentImpl}
338
+ * @default null
339
+ * @private
340
+ */
341
+ this._$attachment = null;
342
+ /**
343
+ * @type {DisplayObject}
344
+ * @default null
345
+ * @private
346
+ */
347
+ this._$clickTarget = null;
348
+ /**
349
+ * @type {boolean}
350
+ * @default false
351
+ * @private
352
+ */
353
+ this._$actionProcess = false;
354
+ /**
355
+ * @type {HTMLCanvasElement}
356
+ * @private
357
+ */
358
+ this._$canvas = $document.createElement("canvas");
359
+ }
360
+ /**
361
+ * @return {number}
362
+ * @default 1
363
+ * @const
364
+ * @static
365
+ */
366
+ static get LOAD_START() {
367
+ return 1;
368
+ }
369
+ /**
370
+ * @return {number}
371
+ * @default 2
372
+ * @const
373
+ * @static
374
+ */
375
+ static get LOAD_END() {
376
+ return 2;
377
+ }
378
+ /**
379
+ * @type {HTMLCanvasElement}
380
+ * @readonly
381
+ * @public
382
+ */
383
+ get canvas() {
384
+ return this._$canvas;
385
+ }
386
+ /**
387
+ * @return {Map}
388
+ * @readonly
389
+ * @public
390
+ */
391
+ get broadcastEvents() {
392
+ return this._$broadcastEvents;
393
+ }
394
+ /**
395
+ * @member {CacheStore}
396
+ * @return {CacheStore}
397
+ * @readonly
398
+ * @public
399
+ */
400
+ get cacheStore() {
401
+ return this._$cacheStore;
402
+ }
403
+ /**
404
+ * @member {CanvasToWebGLContext|null}
405
+ * @default null
406
+ * @public
407
+ */
408
+ get context() {
409
+ return this._$context;
410
+ }
411
+ set context(context) {
412
+ this._$context = context;
413
+ }
414
+ /**
415
+ * @member {string}
416
+ * @default ""
417
+ * @public
418
+ */
419
+ get base() {
420
+ return this._$base;
421
+ }
422
+ set base(base) {
423
+ if (base.indexOf("//") === -1) {
424
+ const urls = base.split("/");
425
+ if (urls[0] === "" || urls[0] === ".") {
426
+ urls.shift();
427
+ }
428
+ urls.pop();
429
+ this._$base = `${location.origin}/`;
430
+ if (urls.length) {
431
+ this._$base += `${urls.join("/")}/`;
432
+ }
433
+ }
434
+ else {
435
+ if (base.indexOf("?") === -1) {
436
+ this._$base = base.slice(-1) === "/" ? base : `${base}/`;
437
+ }
438
+ else {
439
+ const path = base.split("?")[0];
440
+ this._$base = path.slice(-1) === "/" ? path : `${path}/`;
441
+ }
442
+ }
443
+ }
444
+ /**
445
+ * @return {Stage}
446
+ * @readonly
447
+ * @public
448
+ */
449
+ get stage() {
450
+ return this._$stage;
451
+ }
452
+ /**
453
+ * @member {number}
454
+ * @readonly
455
+ * @public
456
+ */
457
+ get x() {
458
+ return this._$tx;
459
+ }
460
+ /**
461
+ * @member {number}
462
+ * @readonly
463
+ * @public
464
+ */
465
+ get y() {
466
+ return this._$ty;
467
+ }
468
+ /**
469
+ * @member {number}
470
+ * @readonly
471
+ * @public
472
+ */
473
+ get scaleX() {
474
+ return this._$matrix[0];
475
+ }
476
+ /**
477
+ * @member {number}
478
+ * @readonly
479
+ * @public
480
+ */
481
+ get scaleY() {
482
+ return this._$matrix[3];
483
+ }
484
+ /**
485
+ * @member {string}
486
+ * @public
487
+ */
488
+ get mode() {
489
+ return this._$mode;
490
+ }
491
+ set mode(mode) {
492
+ this._$mode = mode;
493
+ }
494
+ /**
495
+ * @return {string}
496
+ * @readonly
497
+ * @public
498
+ */
499
+ get contentElementId() {
500
+ return $PREFIX;
501
+ }
502
+ /**
503
+ * @member {number}
504
+ * @public
505
+ */
506
+ get width() {
507
+ return this._$baseWidth;
508
+ }
509
+ set width(width) {
510
+ this._$baseWidth = width | 0;
511
+ }
512
+ /**
513
+ * @member {number}
514
+ * @public
515
+ */
516
+ get height() {
517
+ return this._$baseHeight;
518
+ }
519
+ set height(height) {
520
+ this._$baseHeight = height | 0;
521
+ }
522
+ /**
523
+ * @member {string}
524
+ * @public
525
+ */
526
+ get bgColor() {
527
+ return this._$bgColor;
528
+ }
529
+ set bgColor(bg_color) {
530
+ this._$bgColor = `${bg_color}`;
531
+ }
532
+ /**
533
+ * @return {void}
534
+ * @method
535
+ * @public
536
+ */
537
+ play() {
538
+ if (this._$stopFlag) {
539
+ this._$stopFlag = false;
540
+ if (this._$timerId > -1) {
541
+ $cancelAnimationFrame(this._$timerId);
542
+ }
543
+ this._$startTime = $performance.now();
544
+ const frameRate = this._$stage._$frameRate;
545
+ this._$fps = 1000 / frameRate | 0;
546
+ this._$timerId = $requestAnimationFrame((timestamp) => {
547
+ this._$run(timestamp);
548
+ });
549
+ }
550
+ }
551
+ /**
552
+ * @return {void}
553
+ * @method
554
+ * @public
555
+ */
556
+ stop() {
557
+ if (this._$timerId > -1) {
558
+ $cancelAnimationFrame(this._$timerId);
559
+ }
560
+ this._$stopFlag = true;
561
+ this._$timerId = -1;
562
+ SoundMixer.stopAll();
563
+ this._$cacheStore.reset();
564
+ if ($rendererWorker) {
565
+ $rendererWorker.postMessage({
566
+ "command": "stop"
567
+ });
568
+ }
569
+ }
570
+ /**
571
+ * @param {string} id
572
+ * @return {void}
573
+ * @method
574
+ * @public
575
+ */
576
+ removeCache(id) {
577
+ this._$cacheStore.removeCache(id);
578
+ if ($rendererWorker) {
579
+ $rendererWorker.postMessage({
580
+ "command": "removeCache",
581
+ "id": id
582
+ });
583
+ }
584
+ }
585
+ /**
586
+ * @param {object} [options=null]
587
+ * @return {void}
588
+ * @public
589
+ */
590
+ setOptions(options = null) {
591
+ if (options) {
592
+ this._$optionWidth = options.width || this._$optionWidth;
593
+ this._$optionHeight = options.height || this._$optionHeight;
594
+ this._$tagId = options.tagId || this._$tagId;
595
+ this.base = options.base || this._$base;
596
+ this._$bgColor = options.bgColor || this._$bgColor;
597
+ this._$fullScreen = !!options.fullScreen;
598
+ }
599
+ }
600
+ /**
601
+ * @description NoCode Toolからのアクセスのみ
602
+ * Access from NoCode Tool only
603
+ *
604
+ * @param {MouseEvent} [event = null]
605
+ * @return {void}
606
+ * @method
607
+ * @private
608
+ */
609
+ _$loadWebAudio(event = null) {
610
+ if (event) {
611
+ // @ts-ignore
612
+ this._$canvas.removeEventListener($MOUSE_UP, this._$loadWebAudio);
613
+ }
614
+ if (!$audioContext) {
615
+ $loadAudioData();
616
+ }
617
+ }
618
+ /**
619
+ * @return {void}
620
+ * @method
621
+ * @private
622
+ */
623
+ _$updateLoadStatus() {
624
+ if (this._$loadStatus === Player.LOAD_END) {
625
+ if (this._$loadId > -1) {
626
+ $cancelAnimationFrame(this._$loadId);
627
+ }
628
+ this._$loadId = -1;
629
+ this._$loaded();
630
+ return;
631
+ }
632
+ this._$loadId = $requestAnimationFrame(() => {
633
+ this._$updateLoadStatus();
634
+ });
635
+ }
636
+ /**
637
+ * @return {void}
638
+ * @method
639
+ * @private
640
+ */
641
+ _$loaded() {
642
+ const element = $document
643
+ .getElementById(this.contentElementId);
644
+ if (element) {
645
+ // background color
646
+ this._$setBackgroundColor(this._$bgColor);
647
+ // DOM
648
+ this._$deleteNode();
649
+ // append canvas
650
+ element.appendChild(this._$canvas);
651
+ // stage init action
652
+ this._$stage._$prepareActions();
653
+ // constructed event
654
+ if (this._$broadcastEvents.has(Next2DEvent.FRAME_CONSTRUCTED)) {
655
+ this._$dispatchEvent(new Next2DEvent(Next2DEvent.FRAME_CONSTRUCTED));
656
+ }
657
+ // frame1 action
658
+ this._$doAction();
659
+ // exit event
660
+ if (this._$broadcastEvents.has(Next2DEvent.EXIT_FRAME)) {
661
+ this._$dispatchEvent(new Next2DEvent(Next2DEvent.EXIT_FRAME));
662
+ }
663
+ // loader events
664
+ const length = this._$loaders.length;
665
+ for (let idx = 0; idx < length; ++idx) {
666
+ const loader = this._$loaders.shift();
667
+ // init event
668
+ if (loader.hasEventListener(Next2DEvent.INIT)) {
669
+ loader.dispatchEvent(new Next2DEvent(Next2DEvent.INIT));
670
+ }
671
+ // complete event
672
+ if (loader.hasEventListener(Next2DEvent.COMPLETE)) {
673
+ loader.dispatchEvent(new Next2DEvent(Next2DEvent.COMPLETE));
674
+ }
675
+ }
676
+ // activate event
677
+ if (this._$broadcastEvents.has(Next2DEvent.ACTIVATE)) {
678
+ this._$dispatchEvent(new Next2DEvent(Next2DEvent.ACTIVATE));
679
+ }
680
+ // frame action
681
+ this._$doAction();
682
+ // render
683
+ this._$draw();
684
+ // start
685
+ this.play();
686
+ }
687
+ }
688
+ /**
689
+ * @return {void}
690
+ * @method
691
+ * @private
692
+ */
693
+ _$initialize() {
694
+ if ($document.readyState === "loading") {
695
+ $window.addEventListener("DOMContentLoaded", () => {
696
+ this._$initialize();
697
+ });
698
+ return;
699
+ }
700
+ const contentElementId = this.contentElementId;
701
+ if (!this._$tagId) {
702
+ $document
703
+ .body
704
+ .insertAdjacentHTML("beforeend", `<div id="${contentElementId}" tabindex="-1"></div>`);
705
+ }
706
+ else {
707
+ const container = $document.getElementById(this._$tagId);
708
+ if (!container) {
709
+ alert("Not Found Tag ID:" + this._$tagId);
710
+ return;
711
+ }
712
+ const div = $document.getElementById(contentElementId);
713
+ if (!div) {
714
+ const element = $document.createElement("div");
715
+ element.id = contentElementId;
716
+ element.tabIndex = -1;
717
+ container.appendChild(element);
718
+ }
719
+ else {
720
+ this._$deleteNode();
721
+ }
722
+ }
723
+ const element = $document.getElementById(contentElementId);
724
+ if (!element) {
725
+ throw new Error("the content element is null.");
726
+ }
727
+ const parent = element.parentElement;
728
+ if (parent) {
729
+ this._$initStyle(element);
730
+ this._$buildWait();
731
+ const width = this._$optionWidth
732
+ ? this._$optionWidth
733
+ : parent.tagName === "BODY"
734
+ ? $window.innerWidth
735
+ : parent.offsetWidth;
736
+ const height = this._$optionHeight
737
+ ? this._$optionHeight
738
+ : parent.tagName === "BODY"
739
+ ? $window.innerHeight
740
+ : parent.offsetHeight;
741
+ // set center
742
+ if (this._$mode === "loader" && width && height) {
743
+ this._$baseWidth = width;
744
+ this._$baseHeight = height;
745
+ this._$resize();
746
+ }
747
+ }
748
+ if (this._$mode === "loader") {
749
+ this._$loadStatus = Player.LOAD_START;
750
+ this._$updateLoadStatus();
751
+ }
752
+ else {
753
+ this._$resize();
754
+ this._$loaded();
755
+ }
756
+ }
757
+ /**
758
+ * @param {object} element
759
+ * @returns {void}
760
+ * @method
761
+ * @private
762
+ */
763
+ _$initStyle(element) {
764
+ const style = element.style;
765
+ // set css
766
+ style.position = "relative";
767
+ style.top = "0";
768
+ style.left = "0";
769
+ style.backgroundColor = "transparent";
770
+ style.overflow = "hidden";
771
+ style.padding = "0";
772
+ style.margin = "0";
773
+ style.userSelect = "none";
774
+ style.outline = "none";
775
+ const width = this._$optionWidth;
776
+ const height = this._$optionHeight;
777
+ const parent = element.parentElement;
778
+ if (!parent) {
779
+ throw new Error("the parentElement is null.");
780
+ }
781
+ if (parent.tagName === "BODY") {
782
+ style.width = width ? `${width}px` : `${window.innerWidth}px`;
783
+ style.height = height ? `${height}px` : `${window.innerHeight}px`;
784
+ return;
785
+ }
786
+ style.width = width ? `${width}px` : `${parent.offsetWidth}px`;
787
+ style.height = height ? `${height}px` : `${parent.offsetHeight}px`;
788
+ }
789
+ /**
790
+ * @return {void}
791
+ * @method
792
+ * @private
793
+ */
794
+ _$buildWait() {
795
+ const element = $document
796
+ .getElementById(this.contentElementId);
797
+ if (element) {
798
+ const loadingId = `${this.contentElementId}_loading`;
799
+ element.innerHTML = `<style>
800
+ #${loadingId} {
801
+ position: absolute;
802
+ top: 50%;
803
+ left: 50%;
804
+ margin: -24px 0 0 -24px;
805
+ width: 50px;
806
+ height: 50px;
807
+ border-radius: 50px;
808
+ border: 8px solid #dcdcdc;
809
+ border-right-color: transparent;
810
+ box-sizing: border-box;
811
+ animation: ${loadingId} 0.8s infinite linear;
812
+ }
813
+ @keyframes ${loadingId} {
814
+ 0% {
815
+ transform: rotate(0deg);
816
+ }
817
+ 100% {
818
+ transform: rotate(360deg);
819
+ }
820
+ }
821
+ </style>`;
822
+ const div = $document.createElement("div");
823
+ div.id = loadingId;
824
+ element.appendChild(div);
825
+ }
826
+ }
827
+ /**
828
+ * @returns {void}
829
+ * @method
830
+ * @private
831
+ */
832
+ _$deleteNode() {
833
+ const element = $document.getElementById(this.contentElementId);
834
+ if (element) {
835
+ while (element.childNodes.length) {
836
+ element.removeChild(element.childNodes[0]);
837
+ }
838
+ }
839
+ }
840
+ /**
841
+ * @return {void}
842
+ * @private
843
+ */
844
+ _$initializeCanvas() {
845
+ // main canvas
846
+ this._$canvas.width = 1;
847
+ this._$canvas.height = 1;
848
+ if ($rendererWorker) {
849
+ $rendererWorker.postMessage({
850
+ "command": "setStage",
851
+ "instanceId": this._$stage._$instanceId
852
+ });
853
+ const offscreenCanvas = this
854
+ ._$canvas
855
+ .transferControlToOffscreen();
856
+ $rendererWorker.postMessage({
857
+ "command": "initialize",
858
+ "canvas": offscreenCanvas,
859
+ "samples": this._$getSamples(),
860
+ "devicePixelRatio": $devicePixelRatio,
861
+ "isSafari": $isSafari
862
+ }, [offscreenCanvas]);
863
+ }
864
+ else {
865
+ // create gl context
866
+ const gl = this._$canvas.getContext("webgl2", {
867
+ "stencil": true,
868
+ "premultipliedAlpha": true,
869
+ "antialias": false,
870
+ "depth": false,
871
+ "preserveDrawingBuffer": true
872
+ });
873
+ if (gl) {
874
+ this._$context = new CanvasToWebGLContext(gl, this._$getSamples());
875
+ this._$cacheStore.context = this._$context;
876
+ }
877
+ else {
878
+ alert("WebGL setting is off. Please turn the setting on.");
879
+ }
880
+ }
881
+ /**
882
+ * @return {void}
883
+ * @method
884
+ * @private
885
+ */
886
+ const loadWebAudio = () => {
887
+ this._$canvas.removeEventListener($MOUSE_UP, loadWebAudio);
888
+ this._$canvas.removeEventListener($TOUCH_END, loadWebAudio);
889
+ if (!$audioContext) {
890
+ $loadAudioData();
891
+ for (let idx = 0; idx < this._$videos.length; ++idx) {
892
+ const video = this._$videos[idx];
893
+ if (!video._$video) {
894
+ continue;
895
+ }
896
+ video._$video.muted = false;
897
+ }
898
+ }
899
+ };
900
+ // @ts-ignore
901
+ this._$canvas.addEventListener($TOUCH_END, loadWebAudio);
902
+ // @ts-ignore
903
+ this._$canvas.addEventListener($MOUSE_UP, loadWebAudio);
904
+ // touch event
905
+ this._$canvas.addEventListener($TOUCH_START, (event) => {
906
+ $setEvent(event);
907
+ $setEventType($TOUCH_START);
908
+ // start position
909
+ this._$touchY = event.changedTouches[0].pageY;
910
+ this._$hitTest();
911
+ });
912
+ this._$canvas.addEventListener($TOUCH_MOVE, (event) => {
913
+ $setEvent(event);
914
+ $setEventType($TOUCH_MOVE);
915
+ this._$hitTest();
916
+ });
917
+ this._$canvas.addEventListener($TOUCH_END, (event) => {
918
+ $setEvent(event);
919
+ $setEventType($TOUCH_END);
920
+ this._$hitTest();
921
+ });
922
+ // mouse wheel
923
+ this._$canvas.addEventListener($TOUCH_MOVE, (event) => {
924
+ // update
925
+ const pageY = event.changedTouches[0].pageY;
926
+ this._$deltaY = this._$touchY - pageY;
927
+ this._$touchY = pageY;
928
+ $setEvent(event);
929
+ $setEventType($TOUCH_MOVE);
930
+ this._$hitTest();
931
+ }, { "passive": false });
932
+ // mouse event
933
+ this._$canvas.addEventListener($MOUSE_DOWN, (event) => {
934
+ $setEvent(event);
935
+ $setEventType($MOUSE_DOWN);
936
+ if (!event.button) {
937
+ this._$hitTest();
938
+ }
939
+ });
940
+ this._$canvas.addEventListener($DOUBLE_CLICK, (event) => {
941
+ $setEvent(event);
942
+ $setEventType($DOUBLE_CLICK);
943
+ if (!event.button) {
944
+ this._$hitTest();
945
+ }
946
+ });
947
+ this._$canvas.addEventListener($MOUSE_LEAVE, (event) => {
948
+ $setEvent(event);
949
+ $setEventType($MOUSE_LEAVE);
950
+ this._$hitTest();
951
+ $setEvent(null);
952
+ this._$stageX = -1;
953
+ this._$stageY = -1;
954
+ });
955
+ this._$canvas.addEventListener($MOUSE_UP, (event) => {
956
+ $setEvent(event);
957
+ $setEventType($MOUSE_UP);
958
+ if (!event.button) {
959
+ this._$hitTest();
960
+ }
961
+ });
962
+ this._$canvas.addEventListener($MOUSE_MOVE, (event) => {
963
+ $setEvent(event);
964
+ $setEventType($MOUSE_MOVE);
965
+ this._$hitTest();
966
+ });
967
+ // mouse wheel
968
+ this._$canvas.addEventListener($MOUSE_WHEEL, (event) => {
969
+ if (!event.defaultPrevented) {
970
+ $setEvent(event);
971
+ $setEventType($MOUSE_WHEEL);
972
+ this._$hitTest();
973
+ }
974
+ }, { "passive": false });
975
+ // set css
976
+ let style = "";
977
+ style += "position: absolute;";
978
+ style += "top: 0;";
979
+ style += "left: 0;";
980
+ style += "-webkit-tap-highlight-color: rgba(0,0,0,0);";
981
+ style += "backface-visibility: hidden;";
982
+ style += "transform-origin: 0 0;";
983
+ if ($devicePixelRatio !== 1) {
984
+ style += `transform: scale(${1 / $devicePixelRatio});`;
985
+ }
986
+ this._$canvas.setAttribute("style", style);
987
+ }
988
+ /**
989
+ * @return {void}
990
+ * @method
991
+ * @private
992
+ */
993
+ _$resize() {
994
+ const div = $document
995
+ .getElementById(this.contentElementId);
996
+ if (div) {
997
+ // cache reset
998
+ this._$stage._$doChanged();
999
+ this._$cacheStore.reset();
1000
+ const parent = div.parentElement;
1001
+ if (!parent) {
1002
+ throw new Error("the parentElement is null.");
1003
+ }
1004
+ const innerWidth = this._$optionWidth
1005
+ ? this._$optionWidth
1006
+ : parent.tagName === "BODY"
1007
+ ? $window.innerWidth
1008
+ : parent.offsetWidth
1009
+ ? parent.offsetWidth
1010
+ : parseFloat(parent.style.width);
1011
+ const innerHeight = this._$optionHeight
1012
+ ? this._$optionHeight
1013
+ : parent.tagName === "BODY"
1014
+ ? $window.innerHeight
1015
+ : parent.offsetHeight
1016
+ ? parent.offsetHeight
1017
+ : parseFloat(parent.style.height);
1018
+ const screenWidth = parent.tagName === "BODY"
1019
+ ? $window.innerWidth
1020
+ : parent.offsetWidth;
1021
+ const scale = $Math.min(innerWidth / this._$baseWidth, innerHeight / this._$baseHeight);
1022
+ let width = this._$fullScreen
1023
+ ? innerWidth
1024
+ : this._$baseWidth * scale | 0;
1025
+ let height = this._$fullScreen
1026
+ ? innerHeight
1027
+ : this._$baseHeight * scale | 0;
1028
+ // div
1029
+ const style = div.style;
1030
+ style.width = `${width}px`;
1031
+ style.height = `${height}px`;
1032
+ style.top = "0";
1033
+ style.left = this._$fullScreen
1034
+ ? "0"
1035
+ : `${screenWidth / 2 - width / 2}px`;
1036
+ width *= $devicePixelRatio;
1037
+ height *= $devicePixelRatio;
1038
+ // params
1039
+ this._$scale = scale;
1040
+ this._$width = width;
1041
+ this._$height = height;
1042
+ const mScale = this._$scale * this._$ratio;
1043
+ this._$matrix[0] = mScale;
1044
+ this._$matrix[3] = mScale;
1045
+ if (this._$fullScreen) {
1046
+ this._$tx = (width -
1047
+ this._$baseWidth
1048
+ * scale
1049
+ * $devicePixelRatio) / 2;
1050
+ this._$ty = (height -
1051
+ this._$baseHeight
1052
+ * scale
1053
+ * $devicePixelRatio) / 2;
1054
+ this._$matrix[4] = this._$tx;
1055
+ this._$matrix[5] = this._$ty;
1056
+ }
1057
+ // main canvas resize
1058
+ this._$resizeCanvas(width, height, mScale, this._$tx, this._$ty);
1059
+ if (this._$ratio > 1 && $devicePixelRatio > 1) {
1060
+ this._$canvas.style.transform = `scale(${1 / this._$ratio})`;
1061
+ }
1062
+ if (div.children.length > 1) {
1063
+ div.children[1].dispatchEvent(new Event(`${$PREFIX}_blur`));
1064
+ }
1065
+ }
1066
+ }
1067
+ /**
1068
+ * @description 表示用のcanvasを更新
1069
+ * Update canvas for display
1070
+ *
1071
+ * @param {string} [background_color=transparent]
1072
+ * @return {void}
1073
+ * @method
1074
+ * @public
1075
+ */
1076
+ _$setBackgroundColor(background_color = "transparent") {
1077
+ if ($rendererWorker) {
1078
+ $rendererWorker.postMessage({
1079
+ "command": "setBackgroundColor",
1080
+ "backgroundColor": background_color
1081
+ });
1082
+ }
1083
+ else {
1084
+ const context = this._$context;
1085
+ if (!context) {
1086
+ return;
1087
+ }
1088
+ if (background_color === "transparent") {
1089
+ context._$setColor(0, 0, 0, 0);
1090
+ }
1091
+ else {
1092
+ const color = $uintToRGBA($toColorInt(background_color));
1093
+ context._$setColor(color.R / 255, color.G / 255, color.B / 255, 1);
1094
+ }
1095
+ }
1096
+ }
1097
+ /**
1098
+ * @param {number} width
1099
+ * @param {number} height
1100
+ * @param {number} scale
1101
+ * @param {number} [tx = 0]
1102
+ * @param {number} [ty = 0]
1103
+ * @return {void}
1104
+ * @method
1105
+ * @private
1106
+ */
1107
+ _$resizeCanvas(width, height, scale, tx = 0, ty = 0) {
1108
+ if ($rendererWorker) {
1109
+ $rendererWorker.postMessage({
1110
+ "command": "resize",
1111
+ "width": width,
1112
+ "height": height,
1113
+ "scale": scale,
1114
+ "tx": tx,
1115
+ "ty": ty
1116
+ });
1117
+ }
1118
+ else {
1119
+ const context = this._$context;
1120
+ if (!context) { // unit test
1121
+ return;
1122
+ }
1123
+ this._$canvas.width = width;
1124
+ this._$canvas.height = height;
1125
+ context._$gl.viewport(0, 0, width, height);
1126
+ const manager = context.frameBuffer;
1127
+ if (this._$attachment) {
1128
+ manager.unbind();
1129
+ manager.releaseAttachment(this._$attachment, true);
1130
+ }
1131
+ this._$attachment = manager
1132
+ .createCacheAttachment(width, height, false);
1133
+ // update cache max size
1134
+ context.setMaxSize(width, height);
1135
+ }
1136
+ }
1137
+ /**
1138
+ * @return {number}
1139
+ * @method
1140
+ * @private
1141
+ */
1142
+ _$getSamples() {
1143
+ switch (this._$quality) {
1144
+ case "high":
1145
+ return 4;
1146
+ case "medium":
1147
+ return 2;
1148
+ default:
1149
+ return 0;
1150
+ }
1151
+ }
1152
+ /**
1153
+ * @param {Event} event
1154
+ * @return {boolean}
1155
+ * @method
1156
+ * @private
1157
+ */
1158
+ _$dispatchEvent(event) {
1159
+ if (this._$broadcastEvents.size
1160
+ && this._$broadcastEvents.has(event.type)) {
1161
+ // clone
1162
+ const events = this
1163
+ ._$broadcastEvents
1164
+ .get(event.type)
1165
+ .slice(0);
1166
+ // start target
1167
+ event.eventPhase = EventPhase.AT_TARGET;
1168
+ for (let idx = 0; idx < events.length; ++idx) {
1169
+ const obj = events[idx];
1170
+ // event execute
1171
+ event.currentTarget = obj.target;
1172
+ event.listener = obj.listener;
1173
+ obj.listener.call(null, event);
1174
+ if (event._$stopImmediatePropagation) {
1175
+ break;
1176
+ }
1177
+ }
1178
+ $poolArray(events);
1179
+ return true;
1180
+ }
1181
+ return false;
1182
+ }
1183
+ /**
1184
+ * @param {number} timestamp
1185
+ * @return {void}
1186
+ * @method
1187
+ * @private
1188
+ */
1189
+ _$run(timestamp = 0) {
1190
+ if (this._$stopFlag) {
1191
+ return;
1192
+ }
1193
+ // delay action
1194
+ this._$doAction();
1195
+ const delta = timestamp - this._$startTime;
1196
+ if (delta > this._$fps) {
1197
+ // update
1198
+ this._$startTime = timestamp - delta % this._$fps;
1199
+ // execute
1200
+ this._$action();
1201
+ // start sound
1202
+ if (this._$sounds.size) {
1203
+ for (const movieClip of this._$sounds.values()) {
1204
+ movieClip._$soundPlay();
1205
+ }
1206
+ this._$sounds.clear();
1207
+ }
1208
+ // draw
1209
+ this._$draw();
1210
+ // draw event
1211
+ if (!$isTouch
1212
+ && !this._$hitTestStart
1213
+ && this._$state === "up"
1214
+ && this._$stageX > -1
1215
+ && this._$stageY > -1
1216
+ && $getEvent()) {
1217
+ this._$pointerCheck();
1218
+ }
1219
+ }
1220
+ else {
1221
+ if (this._$videos.length && !$rendererWorker) {
1222
+ this._$draw();
1223
+ }
1224
+ }
1225
+ // next frame
1226
+ this._$timerId = $requestAnimationFrame((timestamp) => {
1227
+ this._$run(timestamp);
1228
+ });
1229
+ }
1230
+ /**
1231
+ * @return {void}
1232
+ * @method
1233
+ * @private
1234
+ */
1235
+ _$pointerCheck() {
1236
+ const stageX = this._$stageX;
1237
+ const stageY = this._$stageY;
1238
+ // setup
1239
+ this._$hitObject.x = stageX;
1240
+ this._$hitObject.y = stageY;
1241
+ this._$hitObject.pointer = "";
1242
+ this._$hitObject.hit = null;
1243
+ // reset
1244
+ $hitContext.setTransform(1, 0, 0, 1, 0, 0);
1245
+ $hitContext.beginPath();
1246
+ // hit test
1247
+ $MATRIX_HIT_ARRAY_IDENTITY[4] = this._$tx / this._$scale / $devicePixelRatio;
1248
+ $MATRIX_HIT_ARRAY_IDENTITY[5] = this._$ty / this._$scale / $devicePixelRatio;
1249
+ this._$stage._$mouseHit($hitContext, $MATRIX_HIT_ARRAY_IDENTITY, this._$hitObject, true);
1250
+ // change state
1251
+ // params
1252
+ let instance = null;
1253
+ let target = null;
1254
+ let canPointerText = false;
1255
+ let canPointer = false;
1256
+ // execute
1257
+ if (this._$hitObject.hit) {
1258
+ instance = this._$hitObject.hit;
1259
+ // (1) mouseOut
1260
+ if (this._$mouseOverTarget
1261
+ && this._$mouseOverTarget !== instance) {
1262
+ const outInstance = this._$mouseOverTarget;
1263
+ if (outInstance.willTrigger(Next2DMouseEvent.MOUSE_OUT)) {
1264
+ outInstance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_OUT, true, false));
1265
+ }
1266
+ }
1267
+ // rollOut and rollOver
1268
+ if (this._$rollOverObject !== instance) {
1269
+ let hitParent = null;
1270
+ if (this._$rollOverObject) {
1271
+ // (2) prev object rollOut
1272
+ target = this._$rollOverObject;
1273
+ if (target.willTrigger(Next2DMouseEvent.ROLL_OUT)) {
1274
+ target.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OUT, false, false));
1275
+ }
1276
+ // rollOver flag instance
1277
+ hitParent = target._$parent;
1278
+ while (hitParent && hitParent._$root !== hitParent) {
1279
+ if (hitParent === instance) {
1280
+ break;
1281
+ }
1282
+ if (hitParent._$mouseEnabled
1283
+ && hitParent._$outCheck(stageX, stageY)) {
1284
+ let isUpperLayer = false;
1285
+ let check = instance;
1286
+ while (check && check._$root !== check) {
1287
+ if (check !== hitParent) {
1288
+ check = check._$parent;
1289
+ continue;
1290
+ }
1291
+ isUpperLayer = true;
1292
+ break;
1293
+ }
1294
+ if (!isUpperLayer && hitParent._$parent === instance._$parent
1295
+ && hitParent._$index > instance._$index) {
1296
+ isUpperLayer = true;
1297
+ }
1298
+ if (isUpperLayer) {
1299
+ break;
1300
+ }
1301
+ }
1302
+ if (hitParent.willTrigger(Next2DMouseEvent.ROLL_OUT)) {
1303
+ hitParent.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OUT, false, false));
1304
+ }
1305
+ hitParent = hitParent._$parent;
1306
+ }
1307
+ }
1308
+ // (3) current object rollOver
1309
+ target = instance;
1310
+ for (;;) {
1311
+ if (target.willTrigger(Next2DMouseEvent.ROLL_OVER)) {
1312
+ target.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OVER, false, false));
1313
+ }
1314
+ target = target._$parent;
1315
+ if (!target || target === hitParent
1316
+ || target.stage === target) {
1317
+ break;
1318
+ }
1319
+ }
1320
+ }
1321
+ this._$rollOverObject = instance;
1322
+ // (4) mouseOver
1323
+ switch (true) {
1324
+ case this._$mouseOverTarget === null:
1325
+ case this._$mouseOverTarget !== instance:
1326
+ if (instance && instance.willTrigger(Next2DMouseEvent.MOUSE_OVER)) {
1327
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_OVER, true, false));
1328
+ }
1329
+ // set target
1330
+ this._$mouseOverTarget = instance;
1331
+ break;
1332
+ }
1333
+ // click reset
1334
+ if (this._$state === "up") {
1335
+ this._$clickTarget = null;
1336
+ }
1337
+ // PC
1338
+ if (!$isTouch && this._$state === "up") {
1339
+ target = instance;
1340
+ while (target && target.root !== target) {
1341
+ if ("_$text" in target) {
1342
+ if (target.type === "input") {
1343
+ canPointerText = true;
1344
+ break;
1345
+ }
1346
+ }
1347
+ if ("buttonMode" in target && target.buttonMode) {
1348
+ canPointer = true;
1349
+ break;
1350
+ }
1351
+ target = target._$parent;
1352
+ }
1353
+ }
1354
+ }
1355
+ else {
1356
+ // (1) mouseOut
1357
+ if (this._$mouseOverTarget) {
1358
+ instance = this._$mouseOverTarget;
1359
+ if (instance.willTrigger(Next2DMouseEvent.MOUSE_OUT)) {
1360
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_OUT, true, false));
1361
+ }
1362
+ }
1363
+ // (2) rollOut
1364
+ if (this._$rollOverObject) {
1365
+ target = this._$rollOverObject;
1366
+ // parent target
1367
+ while (target && target.root !== target) {
1368
+ if (target.willTrigger(Next2DMouseEvent.ROLL_OUT)) {
1369
+ target.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OUT, false, false));
1370
+ }
1371
+ target = target._$parent;
1372
+ }
1373
+ }
1374
+ // reset
1375
+ this._$rollOverObject = null;
1376
+ this._$mouseOverTarget = null;
1377
+ }
1378
+ // change cursor
1379
+ switch (true) {
1380
+ case canPointerText:
1381
+ this._$canvas.style.cursor = "text";
1382
+ break;
1383
+ case canPointer:
1384
+ this._$canvas.style.cursor = "pointer";
1385
+ break;
1386
+ case !$isTouch && this._$state === "up":
1387
+ this._$canvas.style.cursor = "auto";
1388
+ break;
1389
+ }
1390
+ if (this._$actions.length > 1) {
1391
+ this._$doAction();
1392
+ }
1393
+ }
1394
+ /**
1395
+ * @return {void}
1396
+ * @method
1397
+ * @private
1398
+ */
1399
+ _$action() {
1400
+ if (this._$stopFlag) {
1401
+ return;
1402
+ }
1403
+ let loaders = null;
1404
+ const length = this._$loaders.length;
1405
+ if (length) {
1406
+ // clone
1407
+ loaders = this._$loaders.slice(0);
1408
+ // array reset
1409
+ this._$loaders.length = 0;
1410
+ for (let idx = 0; idx < length; ++idx) {
1411
+ const loader = loaders[idx];
1412
+ // first action
1413
+ if ("content" in loader) {
1414
+ loader.content._$prepareActions();
1415
+ }
1416
+ }
1417
+ }
1418
+ // next frame
1419
+ this._$stage._$nextFrame();
1420
+ // enter frame event
1421
+ if (this._$broadcastEvents.has(Next2DEvent.ENTER_FRAME)) {
1422
+ this._$dispatchEvent(new Next2DEvent(Next2DEvent.ENTER_FRAME));
1423
+ }
1424
+ // constructed event
1425
+ if (this._$broadcastEvents.has(Next2DEvent.FRAME_CONSTRUCTED)) {
1426
+ this._$dispatchEvent(new Next2DEvent(Next2DEvent.FRAME_CONSTRUCTED));
1427
+ }
1428
+ // execute frame action
1429
+ this._$doAction();
1430
+ // exit event
1431
+ if (this._$broadcastEvents.has(Next2DEvent.EXIT_FRAME)) {
1432
+ this._$dispatchEvent(new Next2DEvent(Next2DEvent.EXIT_FRAME));
1433
+ }
1434
+ // render event
1435
+ if (this._$stage._$invalidate) {
1436
+ // reset
1437
+ this._$stage._$invalidate = false;
1438
+ // execute render event
1439
+ this._$dispatchEvent(new Next2DEvent(Next2DEvent.RENDER));
1440
+ }
1441
+ // loader events
1442
+ if (loaders) {
1443
+ for (let idx = 0; idx < loaders.length; ++idx) {
1444
+ const loader = loaders[idx];
1445
+ // init event
1446
+ if (loader.hasEventListener(Next2DEvent.INIT)) {
1447
+ loader.dispatchEvent(new Next2DEvent(Next2DEvent.INIT));
1448
+ }
1449
+ // complete event
1450
+ if (loader.hasEventListener(Next2DEvent.COMPLETE)) {
1451
+ loader.dispatchEvent(new Next2DEvent(Next2DEvent.COMPLETE));
1452
+ }
1453
+ }
1454
+ // pool
1455
+ $poolArray(loaders);
1456
+ }
1457
+ // execute frame action
1458
+ this._$doAction();
1459
+ }
1460
+ /**
1461
+ * @returns void
1462
+ * @private
1463
+ */
1464
+ _$draw() {
1465
+ if (!this._$width || !this._$height) {
1466
+ return;
1467
+ }
1468
+ if ($rendererWorker) {
1469
+ $rendererWorker.postMessage({
1470
+ "command": "draw"
1471
+ });
1472
+ }
1473
+ if (!this._$stage._$isUpdated()) {
1474
+ return;
1475
+ }
1476
+ const context = this._$context;
1477
+ if (!context) {
1478
+ return;
1479
+ }
1480
+ context._$bind(this._$attachment);
1481
+ // reset
1482
+ context.reset();
1483
+ context.setTransform(1, 0, 0, 1, 0, 0);
1484
+ context.clearRect(0, 0, this._$width, this._$height);
1485
+ context.beginPath();
1486
+ this._$stage._$draw(context, this._$matrix, $COLOR_ARRAY_IDENTITY);
1487
+ // stage end
1488
+ this._$stage._$updated = false;
1489
+ const manager = context.frameBuffer;
1490
+ const texture = manager
1491
+ .getTextureFromCurrentAttachment();
1492
+ manager.unbind();
1493
+ // reset and draw to main canvas
1494
+ context.reset();
1495
+ context.setTransform(1, 0, 0, 1, 0, 0);
1496
+ context.clearRect(0, 0, this._$width, this._$height);
1497
+ context.drawImage(texture, 0, 0, this._$width, this._$height);
1498
+ // re bind
1499
+ context._$bind(this._$attachment);
1500
+ }
1501
+ /**
1502
+ * @return {void}
1503
+ * @method
1504
+ * @private
1505
+ */
1506
+ _$doAction() {
1507
+ while (this._$actions.length) {
1508
+ this._$actionProcess = true;
1509
+ // target object
1510
+ const mc = this._$actions.pop();
1511
+ if (!mc) {
1512
+ continue;
1513
+ }
1514
+ mc._$canAction = false;
1515
+ mc._$actionOffset = 0;
1516
+ mc._$actionLimit = 0;
1517
+ const frame = mc._$currentFrame;
1518
+ if (!mc._$actions.has(frame)) {
1519
+ continue;
1520
+ }
1521
+ const actions = mc._$actions.get(frame);
1522
+ if (!actions) {
1523
+ continue;
1524
+ }
1525
+ mc._$actionProcess = true;
1526
+ for (let idx = 0; idx < actions.length; ++idx) {
1527
+ $setCurrentLoaderInfo(mc._$loaderInfo);
1528
+ actions[idx].apply(mc);
1529
+ }
1530
+ mc._$actionProcess = false;
1531
+ // adjustment
1532
+ if (mc._$frameCache.size) {
1533
+ mc._$currentFrame = mc._$frameCache.get("nextFrame");
1534
+ mc._$clearChildren();
1535
+ mc._$stopFlag = mc._$frameCache.get("stopFlag");
1536
+ mc._$isPlaying = mc._$frameCache.get("isPlaying");
1537
+ mc._$frameCache.clear();
1538
+ }
1539
+ }
1540
+ this._$actionProcess = false;
1541
+ $setCurrentLoaderInfo(null);
1542
+ }
1543
+ /**
1544
+ * @return {void}
1545
+ * @method
1546
+ * @private
1547
+ */
1548
+ _$hitTest() {
1549
+ if (this._$stopFlag) {
1550
+ return;
1551
+ }
1552
+ // setup
1553
+ const event = $getEvent();
1554
+ if (!event) {
1555
+ return;
1556
+ }
1557
+ // update flags
1558
+ this._$hitTestStart = true;
1559
+ $doUpdated(false);
1560
+ // params
1561
+ let instance = null;
1562
+ let target = null;
1563
+ let x = $window.scrollX;
1564
+ let y = $window.scrollY;
1565
+ const div = $document
1566
+ .getElementById(this.contentElementId);
1567
+ if (div) {
1568
+ const rect = div.getBoundingClientRect();
1569
+ x += rect.left;
1570
+ y += rect.top;
1571
+ }
1572
+ let stageX = 0;
1573
+ let stageY = 0;
1574
+ if ("changedTouches" in event) {
1575
+ const changedTouche = event.changedTouches[0];
1576
+ stageX = changedTouche.pageX;
1577
+ stageY = changedTouche.pageY;
1578
+ }
1579
+ else if ("pageX" in event) {
1580
+ stageX = event.pageX;
1581
+ stageY = event.pageY;
1582
+ }
1583
+ // drop point
1584
+ stageX = (stageX - x) / this._$scale;
1585
+ stageY = (stageY - y) / this._$scale;
1586
+ // update
1587
+ this._$stageX = stageX;
1588
+ this._$stageY = stageY;
1589
+ // setup
1590
+ this._$hitObject.x = stageX;
1591
+ this._$hitObject.y = stageY;
1592
+ this._$hitObject.pointer = "";
1593
+ this._$hitObject.hit = null;
1594
+ // reset
1595
+ $hitContext.setTransform(1, 0, 0, 1, 0, 0);
1596
+ $hitContext.beginPath();
1597
+ // hit test
1598
+ $MATRIX_HIT_ARRAY_IDENTITY[4] = this._$tx / this._$scale / $devicePixelRatio;
1599
+ $MATRIX_HIT_ARRAY_IDENTITY[5] = this._$ty / this._$scale / $devicePixelRatio;
1600
+ this._$stage._$mouseHit($hitContext, $MATRIX_HIT_ARRAY_IDENTITY, this._$hitObject, true);
1601
+ // stop event
1602
+ if (this._$hitObject.hit) {
1603
+ event.preventDefault();
1604
+ }
1605
+ // change state
1606
+ let canPointerText = false;
1607
+ let staticPointer = false;
1608
+ let canPointer = false;
1609
+ const eventType = $getEventType();
1610
+ switch (eventType) {
1611
+ case $TOUCH_MOVE:
1612
+ case $MOUSE_MOVE:
1613
+ if ($dropTarget) {
1614
+ const point = $dropTarget._$dragMousePoint();
1615
+ let dragX = point.x;
1616
+ let dragY = point.y;
1617
+ if (!$dragRules.lock) {
1618
+ dragX += $dragRules.position.x;
1619
+ dragY += $dragRules.position.y;
1620
+ }
1621
+ const bounds = $dragRules.bounds;
1622
+ if (bounds) {
1623
+ dragX = $clamp(dragX, bounds.left, bounds.right);
1624
+ dragY = $clamp(dragY, bounds.top, bounds.bottom);
1625
+ }
1626
+ // set move xy
1627
+ $dropTarget.x = dragX;
1628
+ $dropTarget.y = dragY;
1629
+ }
1630
+ break;
1631
+ case $TOUCH_START:
1632
+ case $MOUSE_DOWN:
1633
+ this._$state = "down";
1634
+ canPointer = this._$canvas.style.cursor === "pointer";
1635
+ staticPointer = true;
1636
+ break;
1637
+ case $TOUCH_END:
1638
+ case $MOUSE_UP:
1639
+ case $DOUBLE_CLICK:
1640
+ this._$state = "up";
1641
+ break;
1642
+ }
1643
+ // execute
1644
+ switch (true) {
1645
+ case this._$hitObject.hit === null:
1646
+ case eventType === $MOUSE_LEAVE:
1647
+ // (1) mouseOut
1648
+ if (this._$mouseOverTarget) {
1649
+ instance = this._$mouseOverTarget;
1650
+ if (instance.willTrigger(Next2DMouseEvent.MOUSE_OUT)) {
1651
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_OUT, true, false));
1652
+ }
1653
+ }
1654
+ // (2) rollOut
1655
+ if (this._$rollOverObject) {
1656
+ target = this._$rollOverObject;
1657
+ // parent target
1658
+ while (target && target.root !== target) {
1659
+ if (target.willTrigger(Next2DMouseEvent.ROLL_OUT)) {
1660
+ target.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OUT, false, false));
1661
+ }
1662
+ target = target._$parent;
1663
+ }
1664
+ }
1665
+ // reset
1666
+ this._$rollOverObject = null;
1667
+ this._$mouseOverTarget = null;
1668
+ // stage event
1669
+ switch (eventType) {
1670
+ case $MOUSE_WHEEL:
1671
+ if (this._$stage.hasEventListener(Next2DMouseEvent.MOUSE_WHEEL)) {
1672
+ this._$stage.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_WHEEL, true, false));
1673
+ }
1674
+ break;
1675
+ case $TOUCH_START:
1676
+ case $MOUSE_DOWN:
1677
+ if (this._$stage.hasEventListener(Next2DMouseEvent.MOUSE_DOWN)) {
1678
+ this._$stage.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_DOWN, true, false));
1679
+ }
1680
+ // TextField focus out
1681
+ if (this._$textField) {
1682
+ this._$textField.focus = false;
1683
+ this._$textField = null;
1684
+ }
1685
+ break;
1686
+ case $TOUCH_END:
1687
+ case $MOUSE_UP:
1688
+ // TextField focus out
1689
+ if (this._$textField) {
1690
+ this._$textField.focus = false;
1691
+ this._$textField = null;
1692
+ }
1693
+ if (this._$stage.hasEventListener(Next2DMouseEvent.CLICK)) {
1694
+ this._$stage.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.CLICK, true, false));
1695
+ }
1696
+ if (this._$stage.hasEventListener(Next2DMouseEvent.MOUSE_UP)) {
1697
+ this._$stage.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_UP, true, false));
1698
+ }
1699
+ break;
1700
+ case $TOUCH_MOVE:
1701
+ case $MOUSE_MOVE:
1702
+ if (this._$stage.hasEventListener(Next2DMouseEvent.MOUSE_MOVE)) {
1703
+ this._$stage.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_MOVE, true, false));
1704
+ }
1705
+ break;
1706
+ case $DOUBLE_CLICK:
1707
+ if (this._$stage.hasEventListener(Next2DMouseEvent.DOUBLE_CLICK)) {
1708
+ this._$stage.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.DOUBLE_CLICK, true, false));
1709
+ }
1710
+ break;
1711
+ }
1712
+ break;
1713
+ default:
1714
+ instance = this._$hitObject.hit;
1715
+ switch (eventType) {
1716
+ // move event
1717
+ case $TOUCH_MOVE:
1718
+ case $MOUSE_MOVE:
1719
+ // (1) mouseMove
1720
+ if (instance.willTrigger(Next2DMouseEvent.MOUSE_MOVE)) {
1721
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_MOVE, true, false));
1722
+ }
1723
+ // (2) mouseOut
1724
+ if (this._$mouseOverTarget
1725
+ && this._$mouseOverTarget !== instance) {
1726
+ const outInstance = this._$mouseOverTarget;
1727
+ if (outInstance.willTrigger(Next2DMouseEvent.MOUSE_OUT)) {
1728
+ outInstance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_OUT, true, false));
1729
+ }
1730
+ }
1731
+ // rollOut and rollOver
1732
+ if (this._$rollOverObject !== instance) {
1733
+ let hitParent = null;
1734
+ if (this._$rollOverObject) {
1735
+ // (3) prev object rollOut
1736
+ target = this._$rollOverObject;
1737
+ if (target.willTrigger(Next2DMouseEvent.ROLL_OUT)) {
1738
+ target.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OUT, false, false));
1739
+ }
1740
+ // rollOver flag instance
1741
+ hitParent = target._$parent;
1742
+ while (hitParent && hitParent._$root !== hitParent) {
1743
+ if (hitParent === instance) {
1744
+ break;
1745
+ }
1746
+ if (hitParent._$mouseEnabled
1747
+ && hitParent._$outCheck(stageX, stageY)) {
1748
+ let isUpperLayer = false;
1749
+ let check = instance;
1750
+ while (check && check._$root !== check) {
1751
+ if (check !== hitParent) {
1752
+ check = check._$parent;
1753
+ continue;
1754
+ }
1755
+ isUpperLayer = true;
1756
+ break;
1757
+ }
1758
+ if (!isUpperLayer && hitParent._$parent === instance._$parent
1759
+ && hitParent._$index > instance._$index) {
1760
+ isUpperLayer = true;
1761
+ }
1762
+ if (isUpperLayer) {
1763
+ break;
1764
+ }
1765
+ }
1766
+ if (hitParent.willTrigger(Next2DMouseEvent.ROLL_OUT)) {
1767
+ hitParent.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OUT, false, false));
1768
+ }
1769
+ hitParent = hitParent._$parent;
1770
+ }
1771
+ }
1772
+ // (4) current object rollOver
1773
+ target = instance;
1774
+ for (;;) {
1775
+ if (target.willTrigger(Next2DMouseEvent.ROLL_OVER)) {
1776
+ target.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.ROLL_OVER, false, false));
1777
+ }
1778
+ target = target._$parent;
1779
+ if (!target || target === hitParent
1780
+ || target.stage === target) {
1781
+ break;
1782
+ }
1783
+ }
1784
+ }
1785
+ this._$rollOverObject = instance;
1786
+ // (5) mouseOver
1787
+ switch (true) {
1788
+ case this._$mouseOverTarget === null:
1789
+ case this._$mouseOverTarget !== instance:
1790
+ if (instance.willTrigger(Next2DMouseEvent.MOUSE_OVER)) {
1791
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_OVER, true, false));
1792
+ }
1793
+ // set target
1794
+ this._$mouseOverTarget = instance;
1795
+ break;
1796
+ }
1797
+ // click reset
1798
+ if (this._$state === "up") {
1799
+ this._$clickTarget = null;
1800
+ }
1801
+ break;
1802
+ // down event
1803
+ case $TOUCH_START:
1804
+ case $MOUSE_DOWN:
1805
+ // TextField focus out
1806
+ if (this._$textField
1807
+ && instance !== this._$textField
1808
+ && "_$text" in this._$textField) {
1809
+ this._$textField.focus = false;
1810
+ this._$textField = null;
1811
+ }
1812
+ // TextField focus out
1813
+ if ("_$text" in instance) {
1814
+ instance.focus = true;
1815
+ this._$textField = instance;
1816
+ }
1817
+ // (3) mouseDown
1818
+ if (instance.willTrigger(Next2DMouseEvent.MOUSE_DOWN)) {
1819
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_DOWN, true, false));
1820
+ }
1821
+ // (4) click
1822
+ this._$clickTarget = instance;
1823
+ break;
1824
+ // up event
1825
+ case $TOUCH_END:
1826
+ case $MOUSE_UP:
1827
+ // TextField focus out
1828
+ if (this._$textField
1829
+ && instance !== this._$textField
1830
+ && "_$text" in this._$textField) {
1831
+ this._$textField.focus = false;
1832
+ this._$textField = null;
1833
+ }
1834
+ // (1) mouseUp
1835
+ if (instance.willTrigger(Next2DMouseEvent.MOUSE_UP)) {
1836
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_UP, true, false));
1837
+ }
1838
+ // (2) click
1839
+ if (this._$clickTarget === instance) {
1840
+ if (instance.willTrigger(Next2DMouseEvent.CLICK)) {
1841
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.CLICK, true, false));
1842
+ }
1843
+ }
1844
+ // reset
1845
+ this._$clickTarget = null;
1846
+ break;
1847
+ case $MOUSE_WHEEL:
1848
+ if (instance.willTrigger(Next2DMouseEvent.MOUSE_WHEEL)) {
1849
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_WHEEL));
1850
+ }
1851
+ if ("deltaY" in event && instance.scrollEnabled) {
1852
+ // @ts-ignore
1853
+ instance.scrollV += $clamp(event.deltaY, -1, 1, 0);
1854
+ }
1855
+ break;
1856
+ case $DOUBLE_CLICK:
1857
+ if (instance.willTrigger(Next2DMouseEvent.DOUBLE_CLICK)) {
1858
+ instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.DOUBLE_CLICK));
1859
+ }
1860
+ break;
1861
+ default:
1862
+ break;
1863
+ }
1864
+ // PC
1865
+ if (!staticPointer) {
1866
+ if (!$isTouch && this._$state === "up") {
1867
+ target = instance;
1868
+ while (target && target.root !== target) {
1869
+ if ("_$text" in target) {
1870
+ if (target.type === "input") {
1871
+ canPointerText = true;
1872
+ break;
1873
+ }
1874
+ }
1875
+ else {
1876
+ if (target._$buttonMode) {
1877
+ canPointer = true;
1878
+ break;
1879
+ }
1880
+ }
1881
+ target = target._$parent;
1882
+ }
1883
+ }
1884
+ }
1885
+ break;
1886
+ }
1887
+ // change cursor
1888
+ switch (true) {
1889
+ case canPointerText:
1890
+ this._$canvas.style.cursor = "text";
1891
+ break;
1892
+ case canPointer:
1893
+ this._$canvas.style.cursor = "pointer";
1894
+ break;
1895
+ case !$isTouch && this._$state === "up":
1896
+ this._$canvas.style.cursor = "auto";
1897
+ break;
1898
+ }
1899
+ // execute action
1900
+ if (!this._$actionProcess && this._$actions.length > 1) {
1901
+ this._$doAction();
1902
+ }
1903
+ if ($isUpdated()) {
1904
+ // action script
1905
+ this._$stage._$prepareActions();
1906
+ if (!this._$actionProcess) {
1907
+ this._$doAction();
1908
+ }
1909
+ }
1910
+ this._$hitTestStart = false;
1911
+ }
1912
+ }