@next2d/core 1.18.12 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/package.json +20 -28
  2. package/src/Canvas/service/CanvasBootOffscreenCanvasService.d.ts +10 -0
  3. package/src/Canvas/service/CanvasBootOffscreenCanvasService.js +19 -0
  4. package/src/Canvas/service/CanvasInitializeService.d.ts +11 -0
  5. package/src/Canvas/service/CanvasInitializeService.js +23 -0
  6. package/src/Canvas/service/CanvasSetPositionService.d.ts +9 -0
  7. package/src/Canvas/service/CanvasSetPositionService.js +30 -0
  8. package/src/Canvas/usecase/CanvasPointerDownEventUseCase.d.ts +10 -0
  9. package/src/Canvas/usecase/CanvasPointerDownEventUseCase.js +57 -0
  10. package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.d.ts +10 -0
  11. package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.js +23 -0
  12. package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.d.ts +10 -0
  13. package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.js +30 -0
  14. package/src/Canvas/usecase/CanvasPointerUpEventUseCase.d.ts +10 -0
  15. package/src/Canvas/usecase/CanvasPointerUpEventUseCase.js +29 -0
  16. package/src/Canvas/usecase/CanvasRegisterEventUseCase.d.ts +10 -0
  17. package/src/Canvas/usecase/CanvasRegisterEventUseCase.js +39 -0
  18. package/src/Canvas/usecase/CanvasWheelEventUseCase.d.ts +11 -0
  19. package/src/Canvas/usecase/CanvasWheelEventUseCase.js +32 -0
  20. package/src/Canvas.d.ts +5 -0
  21. package/src/Canvas.js +16 -0
  22. package/src/CoreUtil.d.ts +116 -0
  23. package/src/CoreUtil.js +165 -0
  24. package/src/Display.d.ts +3 -0
  25. package/{dist → src}/Display.js +5 -7
  26. package/src/Events.d.ts +3 -0
  27. package/{dist → src}/Events.js +3 -2
  28. package/src/Filters.d.ts +3 -0
  29. package/src/Geom.d.ts +3 -0
  30. package/{dist → src}/Geom.js +2 -3
  31. package/src/Media.d.ts +3 -0
  32. package/src/Net.d.ts +3 -0
  33. package/{dist → src}/Net.js +2 -3
  34. package/src/Next2D/service/VideoSyncService.d.ts +11 -0
  35. package/src/Next2D/service/VideoSyncService.js +50 -0
  36. package/src/Next2D/usecase/CaptureToCanvasUseCase.d.ts +12 -0
  37. package/src/Next2D/usecase/CaptureToCanvasUseCase.js +92 -0
  38. package/src/Next2D/usecase/CreateRootMovieClipUseCase.d.ts +15 -0
  39. package/src/Next2D/usecase/CreateRootMovieClipUseCase.js +46 -0
  40. package/src/Next2D/usecase/LoadUseCase.d.ts +12 -0
  41. package/src/Next2D/usecase/LoadUseCase.js +66 -0
  42. package/src/Next2D.d.ts +138 -0
  43. package/src/Next2D.js +209 -0
  44. package/src/Player/service/PlayerAppendElementService.d.ts +9 -0
  45. package/src/Player/service/PlayerAppendElementService.js +22 -0
  46. package/src/Player/service/PlayerApplyContainerElementStyleService.d.ts +12 -0
  47. package/src/Player/service/PlayerApplyContainerElementStyleService.js +44 -0
  48. package/src/Player/service/PlayerCreateContainerElementService.d.ts +9 -0
  49. package/src/Player/service/PlayerCreateContainerElementService.js +28 -0
  50. package/src/Player/service/PlayerDoubleClickEventService.d.ts +10 -0
  51. package/src/Player/service/PlayerDoubleClickEventService.js +24 -0
  52. package/src/Player/service/PlayerKeyDownEventService.d.ts +10 -0
  53. package/src/Player/service/PlayerKeyDownEventService.js +24 -0
  54. package/src/Player/service/PlayerKeyUpEventService.d.ts +10 -0
  55. package/src/Player/service/PlayerKeyUpEventService.js +23 -0
  56. package/src/Player/service/PlayerLoadingAnimationService.d.ts +10 -0
  57. package/src/Player/service/PlayerLoadingAnimationService.js +33 -0
  58. package/src/Player/service/PlayerPointerDownEventService.d.ts +10 -0
  59. package/src/Player/service/PlayerPointerDownEventService.js +47 -0
  60. package/src/Player/service/PlayerPointerMoveEventService.d.ts +10 -0
  61. package/src/Player/service/PlayerPointerMoveEventService.js +86 -0
  62. package/src/Player/service/PlayerPointerUpEventService.d.ts +10 -0
  63. package/src/Player/service/PlayerPointerUpEventService.js +35 -0
  64. package/src/Player/service/PlayerRemoveCachePostMessageService.d.ts +9 -0
  65. package/src/Player/service/PlayerRemoveCachePostMessageService.js +37 -0
  66. package/src/Player/service/PlayerRemoveLoadingElementService.d.ts +9 -0
  67. package/src/Player/service/PlayerRemoveLoadingElementService.js +18 -0
  68. package/src/Player/service/PlayerRenderingPostMessageService.d.ts +14 -0
  69. package/src/Player/service/PlayerRenderingPostMessageService.js +74 -0
  70. package/src/Player/service/PlayerResizePostMessageService.d.ts +10 -0
  71. package/src/Player/service/PlayerResizePostMessageService.js +40 -0
  72. package/src/Player/service/PlayerSetCurrentMousePointService.d.ts +10 -0
  73. package/src/Player/service/PlayerSetCurrentMousePointService.js +33 -0
  74. package/src/Player/service/PlayerStopService.d.ts +9 -0
  75. package/src/Player/service/PlayerStopService.js +18 -0
  76. package/src/Player/service/PlayerTransferCanvasPostMessageService.d.ts +13 -0
  77. package/src/Player/service/PlayerTransferCanvasPostMessageService.js +80 -0
  78. package/src/Player/usecase/PlayerBootUseCase.d.ts +11 -0
  79. package/src/Player/usecase/PlayerBootUseCase.js +30 -0
  80. package/src/Player/usecase/PlayerHitTestUseCase.d.ts +9 -0
  81. package/src/Player/usecase/PlayerHitTestUseCase.js +35 -0
  82. package/src/Player/usecase/PlayerPlayUseCase.d.ts +9 -0
  83. package/src/Player/usecase/PlayerPlayUseCase.js +26 -0
  84. package/src/Player/usecase/PlayerReadyCompleteUseCase.d.ts +5 -0
  85. package/src/Player/usecase/PlayerReadyCompleteUseCase.js +16 -0
  86. package/src/Player/usecase/PlayerRegisterEventUseCase.d.ts +9 -0
  87. package/src/Player/usecase/PlayerRegisterEventUseCase.js +15 -0
  88. package/src/Player/usecase/PlayerResizeEventUseCase.d.ts +9 -0
  89. package/src/Player/usecase/PlayerResizeEventUseCase.js +78 -0
  90. package/src/Player/usecase/PlayerResizeRegisterUseCase.d.ts +9 -0
  91. package/src/Player/usecase/PlayerResizeRegisterUseCase.js +20 -0
  92. package/src/Player/usecase/PlayerTickerUseCase.d.ts +10 -0
  93. package/src/Player/usecase/PlayerTickerUseCase.js +50 -0
  94. package/src/Player.d.ts +193 -0
  95. package/src/Player.js +314 -0
  96. package/src/RendererWorker.d.ts +5 -0
  97. package/src/RendererWorker.js +7 -0
  98. package/src/Text.d.ts +3 -0
  99. package/{dist → src}/Text.js +3 -2
  100. package/src/UI.d.ts +3 -0
  101. package/{dist → src}/UI.js +1 -2
  102. package/{dist → src}/index.d.ts +1 -0
  103. package/{dist → src}/index.js +1 -0
  104. package/src/interface/ICaptureMessage.d.ts +8 -0
  105. package/src/interface/ICaptureMessage.js +1 -0
  106. package/src/interface/ICaptureOptions.d.ts +7 -0
  107. package/src/interface/ICaptureOptions.js +1 -0
  108. package/src/interface/IDisplay.d.ts +15 -0
  109. package/src/interface/IDisplay.js +1 -0
  110. package/src/interface/IDisplayObject.d.ts +2 -0
  111. package/src/interface/IDisplayObject.js +1 -0
  112. package/src/interface/IEvents.d.ts +13 -0
  113. package/src/interface/IEvents.js +1 -0
  114. package/src/interface/IFilters.d.ts +12 -0
  115. package/src/interface/IFilters.js +1 -0
  116. package/src/interface/IGeom.d.ts +7 -0
  117. package/src/interface/IGeom.js +1 -0
  118. package/src/interface/IMedia.d.ts +7 -0
  119. package/src/interface/IMedia.js +1 -0
  120. package/src/interface/INet.d.ts +4 -0
  121. package/src/interface/INet.js +1 -0
  122. package/src/interface/IPlayerHitObject.d.ts +7 -0
  123. package/src/interface/IPlayerHitObject.js +1 -0
  124. package/src/interface/IPlayerOptions.d.ts +7 -0
  125. package/src/interface/IPlayerOptions.js +1 -0
  126. package/src/interface/IRemoveCacheMessage.d.ts +4 -0
  127. package/src/interface/IRemoveCacheMessage.js +1 -0
  128. package/src/interface/IRenderMessage.d.ts +6 -0
  129. package/src/interface/IRenderMessage.js +1 -0
  130. package/src/interface/IResizeMessage.d.ts +4 -0
  131. package/src/interface/IResizeMessage.js +1 -0
  132. package/src/interface/IStageData.d.ts +6 -0
  133. package/src/interface/IStageData.js +1 -0
  134. package/src/interface/IText.d.ts +6 -0
  135. package/src/interface/IText.js +1 -0
  136. package/src/interface/IUI.d.ts +5 -0
  137. package/src/interface/IUI.js +1 -0
  138. package/dist/Display.d.ts +0 -3
  139. package/dist/Events.d.ts +0 -3
  140. package/dist/Filters.d.ts +0 -3
  141. package/dist/Geom.d.ts +0 -3
  142. package/dist/Media.d.ts +0 -3
  143. package/dist/Net.d.ts +0 -3
  144. package/dist/Next2D.d.ts +0 -62
  145. package/dist/Next2D.js +0 -198
  146. package/dist/Player.d.ts +0 -336
  147. package/dist/Player.js +0 -1879
  148. package/dist/Text.d.ts +0 -3
  149. package/dist/UI.d.ts +0 -3
  150. /package/{dist → src}/Filters.js +0 -0
  151. /package/{dist → src}/Media.js +0 -0
package/package.json CHANGED
@@ -1,26 +1,18 @@
1
1
  {
2
2
  "name": "@next2d/core",
3
- "version": "1.18.12",
4
- "description": "Next2D Core Packages",
5
- "author": "Toshiyuki Ienaga<ienaga@tvon.jp> (https://github.com/ienaga/)",
3
+ "version": "2.0.0",
4
+ "description": "Next2D Core Package",
5
+ "author": "Toshiyuki Ienaga<ienaga@next2d.app> (https://github.com/ienaga/)",
6
6
  "license": "MIT",
7
7
  "homepage": "https://next2d.app",
8
8
  "bugs": "https://github.com/Next2D/Player/issues",
9
- "main": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
- "files": [
12
- "dist"
13
- ],
9
+ "main": "src/index.js",
10
+ "types": "src/index.d.ts",
11
+ "type": "module",
14
12
  "exports": {
15
13
  ".": {
16
- "import": {
17
- "types": "./dist/index.d.ts",
18
- "default": "./dist/index.js"
19
- },
20
- "require": {
21
- "types": "./dist/index.d.ts",
22
- "default": "./dist/index.js"
23
- }
14
+ "import": "./src/index.js",
15
+ "require": "./src/index.js"
24
16
  }
25
17
  },
26
18
  "keywords": [
@@ -31,17 +23,17 @@
31
23
  "type": "git",
32
24
  "url": "git+https://github.com/Next2D/Player.git"
33
25
  },
34
- "peerDependencies": {
35
- "@next2d/interface": "1.18.12",
36
- "@next2d/webgl": "1.18.12",
37
- "@next2d/display": "1.18.12",
38
- "@next2d/core": "1.18.12",
39
- "@next2d/net": "1.18.12",
40
- "@next2d/share": "1.18.12",
41
- "@next2d/events": "1.18.12",
42
- "@next2d/media": "1.18.12",
43
- "@next2d/text": "1.18.12",
44
- "@next2d/geom": "1.18.12",
45
- "@next2d/util": "1.18.12"
26
+ "dependencies": {
27
+ "@next2d/core": "2.0.0",
28
+ "@next2d/display": "2.0.0",
29
+ "@next2d/events": "2.0.0",
30
+ "@next2d/filters": "2.0.0",
31
+ "@next2d/geom": "2.0.0",
32
+ "@next2d/media": "2.0.0",
33
+ "@next2d/net": "2.0.0",
34
+ "@next2d/renderer": "2.0.0",
35
+ "@next2d/text": "2.0.0",
36
+ "@next2d/ui": "2.0.0",
37
+ "@next2d/render-queue": "2.0.0"
46
38
  }
47
39
  }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description OffscreenCanvasを起動
3
+ * Boot offscreen canvas
4
+ *
5
+ * @param {HTMLCanvasElement} canvas
6
+ * @return {void}
7
+ * @method
8
+ * @public
9
+ */
10
+ export declare const execute: (canvas: HTMLCanvasElement) => void;
@@ -0,0 +1,19 @@
1
+ import { $rendererWorker } from "../../RendererWorker";
2
+ /**
3
+ * @description OffscreenCanvasを起動
4
+ * Boot offscreen canvas
5
+ *
6
+ * @param {HTMLCanvasElement} canvas
7
+ * @return {void}
8
+ * @method
9
+ * @public
10
+ */
11
+ export const execute = (canvas) => {
12
+ const offscreenCanvas = canvas.transferControlToOffscreen();
13
+ // postMessage
14
+ $rendererWorker.postMessage({
15
+ "command": "initialize",
16
+ "canvas": offscreenCanvas,
17
+ "devicePixelRatio": window.devicePixelRatio
18
+ }, [offscreenCanvas]);
19
+ };
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @description canvasのスタイルの初期設定
3
+ * Initial setting of canvas style
4
+ *
5
+ * @param {HTMLCanvasElement} canvas
6
+ * @param {number} [ratio=1]
7
+ * @return {void}
8
+ * @method
9
+ * @public
10
+ */
11
+ export declare const execute: (canvas: HTMLCanvasElement, ratio?: number) => void;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @description canvasのスタイルの初期設定
3
+ * Initial setting of canvas style
4
+ *
5
+ * @param {HTMLCanvasElement} canvas
6
+ * @param {number} [ratio=1]
7
+ * @return {void}
8
+ * @method
9
+ * @public
10
+ */
11
+ export const execute = (canvas, ratio = 1) => {
12
+ // Set canvas style
13
+ let style = "";
14
+ style += "-webkit-tap-highlight-color: rgba(0,0,0,0);";
15
+ style += "backface-visibility: hidden;";
16
+ style += "touch-action: none;";
17
+ if (ratio > 1) {
18
+ style += `transform: scale(${1 / ratio});`;
19
+ }
20
+ canvas.width = 1;
21
+ canvas.height = 1;
22
+ canvas.setAttribute("style", style);
23
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description メインキャンバスの位置を設定します。
3
+ * Set the position of the main canvas.
4
+ *
5
+ * @return {void}
6
+ * @method
7
+ * @protected
8
+ */
9
+ export declare const execute: () => void;
@@ -0,0 +1,30 @@
1
+ import { $mainCanvasPosition } from "@next2d/text";
2
+ import { stage } from "@next2d/display";
3
+ import { $getMainElement } from "../../CoreUtil";
4
+ /**
5
+ * @type {number}
6
+ * @private
7
+ */
8
+ const $devicePixelRatio = window.devicePixelRatio || 1;
9
+ /**
10
+ * @description メインキャンバスの位置を設定します。
11
+ * Set the position of the main canvas.
12
+ *
13
+ * @return {void}
14
+ * @method
15
+ * @protected
16
+ */
17
+ export const execute = () => {
18
+ $mainCanvasPosition.x = 0;
19
+ $mainCanvasPosition.y = 0;
20
+ const element = $getMainElement();
21
+ if (!element) {
22
+ return;
23
+ }
24
+ const canvas = element.children[0];
25
+ if (!canvas || canvas.localName !== "canvas") {
26
+ return;
27
+ }
28
+ $mainCanvasPosition.x = (element.clientWidth - stage.rendererWidth / $devicePixelRatio) / 2;
29
+ $mainCanvasPosition.y = (element.clientHeight - stage.rendererHeight / $devicePixelRatio) / 2;
30
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description プレイヤーのポインターダウンイベントを処理します。
3
+ * Processes the player's pointer down event.
4
+ *
5
+ * @param {PointerEvent} event
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: (event: PointerEvent) => void;
@@ -0,0 +1,57 @@
1
+ import { $setEvent } from "@next2d/events";
2
+ import { $player } from "../../Player";
3
+ import { execute as playerHitTestUseCase } from "../../Player/usecase/PlayerHitTestUseCase";
4
+ import { execute as playerSetCurrentMousePointService } from "../../Player/service/PlayerSetCurrentMousePointService";
5
+ import { execute as playerPointerDownEventService } from "../../Player/service/PlayerPointerDownEventService";
6
+ import { execute as playerDoubleClickEventService } from "../../Player/service/PlayerDoubleClickEventService";
7
+ import { $hitObject } from "../../CoreUtil";
8
+ /**
9
+ * @type {NodeJS.Timeout}
10
+ * @private
11
+ */
12
+ let $timerId;
13
+ /**
14
+ * @type {boolean}
15
+ * @private
16
+ */
17
+ let $wait = false;
18
+ /**
19
+ * @description プレイヤーのポインターダウンイベントを処理します。
20
+ * Processes the player's pointer down event.
21
+ *
22
+ * @param {PointerEvent} event
23
+ * @return {void}
24
+ * @method
25
+ * @protected
26
+ */
27
+ export const execute = (event) => {
28
+ const element = event.target;
29
+ if (!element) {
30
+ return;
31
+ }
32
+ $player.mouseState = "down";
33
+ element.setPointerCapture(event.pointerId);
34
+ $setEvent(event);
35
+ playerSetCurrentMousePointService(event);
36
+ // start position
37
+ playerHitTestUseCase();
38
+ if ($hitObject.hit) {
39
+ event.preventDefault();
40
+ }
41
+ // fixed logic
42
+ clearTimeout($timerId);
43
+ if (!$wait) {
44
+ // 初回のタップであればダブルタップを待機モードに変更
45
+ $wait = true;
46
+ // ダブルタップ有効期限をセット
47
+ $timerId = setTimeout(() => {
48
+ $wait = false;
49
+ }, 300);
50
+ playerPointerDownEventService();
51
+ }
52
+ else {
53
+ // ダブルタップを終了
54
+ $wait = false;
55
+ playerDoubleClickEventService();
56
+ }
57
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description マウス、タップがDisplayObjectから離れた時に発生します。
3
+ * Occurs when the mouse or tap leaves the DisplayObject.
4
+ *
5
+ * @param {PointerEvent} event
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: (event: PointerEvent) => void;
@@ -0,0 +1,23 @@
1
+ import { $getRollOverDisplayObject } from "../../CoreUtil";
2
+ import { PointerEvent as Next2D_PointerEvent, $setEvent } from "@next2d/events";
3
+ /**
4
+ * @description マウス、タップがDisplayObjectから離れた時に発生します。
5
+ * Occurs when the mouse or tap leaves the DisplayObject.
6
+ *
7
+ * @param {PointerEvent} event
8
+ * @return {void}
9
+ * @method
10
+ * @protected
11
+ */
12
+ export const execute = (event) => {
13
+ $setEvent(event);
14
+ const rollOverDisplayObject = $getRollOverDisplayObject();
15
+ if (!rollOverDisplayObject) {
16
+ return;
17
+ }
18
+ if (rollOverDisplayObject.willTrigger(Next2D_PointerEvent.POINTER_LEAVE)) {
19
+ // イベントの伝播を止める
20
+ event.preventDefault();
21
+ rollOverDisplayObject.dispatchEvent(new Next2D_PointerEvent(Next2D_PointerEvent.POINTER_LEAVE));
22
+ }
23
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description プレイヤーのポインタームーブイベントを処理します。
3
+ * Handles the player's pointer move event.
4
+ *
5
+ * @param {PointerEvent} event
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: (event: PointerEvent) => void;
@@ -0,0 +1,30 @@
1
+ import { $setEvent } from "@next2d/events";
2
+ import { execute as playerHitTestUseCase } from "../../Player/usecase/PlayerHitTestUseCase";
3
+ import { execute as playerSetCurrentMousePoint } from "../../Player/service/PlayerSetCurrentMousePointService";
4
+ import { execute as playerPointerMoveEventService } from "../../Player/service/PlayerPointerMoveEventService";
5
+ import { $hitObject } from "../../CoreUtil";
6
+ /**
7
+ * @description プレイヤーのポインタームーブイベントを処理します。
8
+ * Handles the player's pointer move event.
9
+ *
10
+ * @param {PointerEvent} event
11
+ * @return {void}
12
+ * @method
13
+ * @protected
14
+ */
15
+ export const execute = (event) => {
16
+ const element = event.target;
17
+ if (!element) {
18
+ return;
19
+ }
20
+ $setEvent(event);
21
+ playerSetCurrentMousePoint(event);
22
+ // start position
23
+ playerHitTestUseCase();
24
+ if ($hitObject.hit) {
25
+ event.preventDefault();
26
+ }
27
+ // fixed logic
28
+ // ポインタームーブイベントを発火
29
+ playerPointerMoveEventService();
30
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description プレイヤーのポインターアップイベントを処理します。
3
+ * Processes the player's pointer up event.
4
+ *
5
+ * @param {PointerEvent} event
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: (event: PointerEvent) => void;
@@ -0,0 +1,29 @@
1
+ import { $setEvent } from "@next2d/events";
2
+ import { $player } from "../../Player";
3
+ import { execute as playerHitTestUseCase } from "../../Player/usecase/PlayerHitTestUseCase";
4
+ import { execute as playerSetCurrentMousePoint } from "../../Player/service/PlayerSetCurrentMousePointService";
5
+ import { execute as playerPointerUpEventService } from "../../Player/service/PlayerPointerUpEventService";
6
+ /**
7
+ * @description プレイヤーのポインターアップイベントを処理します。
8
+ * Processes the player's pointer up event.
9
+ *
10
+ * @param {PointerEvent} event
11
+ * @return {void}
12
+ * @method
13
+ * @protected
14
+ */
15
+ export const execute = (event) => {
16
+ const element = event.target;
17
+ if (!element) {
18
+ return;
19
+ }
20
+ $player.mouseState = "up";
21
+ element.releasePointerCapture(event.pointerId);
22
+ $setEvent(event);
23
+ playerSetCurrentMousePoint(event);
24
+ // start position
25
+ playerHitTestUseCase();
26
+ // fixed logic
27
+ // ポインターアップイベントを発火します。
28
+ playerPointerUpEventService();
29
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description HTMLCanvasElementにイベントを登録します。
3
+ * Register events on HTMLCanvasElement.
4
+ *
5
+ * @param {HTMLCanvasElement} canvas
6
+ * @return {void}
7
+ * @method
8
+ * @public
9
+ */
10
+ export declare const execute: (canvas: HTMLCanvasElement) => void;
@@ -0,0 +1,39 @@
1
+ import { execute as canvasPointerDownEventUseCase } from "./CanvasPointerDownEventUseCase";
2
+ import { execute as canvasPointerUpEventUseCase } from "./CanvasPointerUpEventUseCase";
3
+ import { execute as canvasPointerMoveEventUseCase } from "./CanvasPointerMoveEventUseCase";
4
+ import { execute as canvasPointerLeaveEventUseCase } from "./CanvasPointerLeaveEventUseCase";
5
+ import { execute as canvasWheelEventUseCase } from "./CanvasWheelEventUseCase";
6
+ import { PointerEvent, WheelEvent } from "@next2d/events";
7
+ import { $bootAudioContext, $getMutedVideos } from "@next2d/media";
8
+ /**
9
+ * @description HTMLCanvasElementにイベントを登録します。
10
+ * Register events on HTMLCanvasElement.
11
+ *
12
+ * @param {HTMLCanvasElement} canvas
13
+ * @return {void}
14
+ * @method
15
+ * @public
16
+ */
17
+ export const execute = (canvas) => {
18
+ const $loadAudioContext = () => {
19
+ // audio contextを起動
20
+ $bootAudioContext();
21
+ // ミュートになっているビデオの音声をon
22
+ const mutedVideos = $getMutedVideos();
23
+ for (let idx = 0; idx < mutedVideos.length; ++idx) {
24
+ const video = mutedVideos[idx];
25
+ if (!video) {
26
+ continue;
27
+ }
28
+ video.muted = false;
29
+ }
30
+ mutedVideos.length = 0;
31
+ canvas.removeEventListener(PointerEvent.POINTER_UP, $loadAudioContext);
32
+ };
33
+ canvas.addEventListener(PointerEvent.POINTER_UP, $loadAudioContext);
34
+ canvas.addEventListener(PointerEvent.POINTER_DOWN, canvasPointerDownEventUseCase, { "passive": false });
35
+ canvas.addEventListener(PointerEvent.POINTER_UP, canvasPointerUpEventUseCase);
36
+ canvas.addEventListener(PointerEvent.POINTER_MOVE, canvasPointerMoveEventUseCase, { "passive": false });
37
+ canvas.addEventListener(PointerEvent.POINTER_LEAVE, canvasPointerLeaveEventUseCase);
38
+ canvas.addEventListener(WheelEvent.WHEEL, canvasWheelEventUseCase);
39
+ };
@@ -0,0 +1,11 @@
1
+ import type { DisplayObject } from "@next2d/display";
2
+ /**
3
+ * @description ホイールイベントを実行します。
4
+ * Executes the wheel event.
5
+ *
6
+ * @param {WheelEvent} event
7
+ * @return {void}
8
+ * @method
9
+ * @protected
10
+ */
11
+ export declare const execute: <D extends DisplayObject>(event: WheelEvent) => void;
@@ -0,0 +1,32 @@
1
+ import { stage } from "@next2d/display";
2
+ import { $hitObject } from "../../CoreUtil";
3
+ import { $setEvent, WheelEvent as Next2D_WheelEvent } from "@next2d/events";
4
+ /**
5
+ * @description ホイールイベントを実行します。
6
+ * Executes the wheel event.
7
+ *
8
+ * @param {WheelEvent} event
9
+ * @return {void}
10
+ * @method
11
+ * @protected
12
+ */
13
+ export const execute = (event) => {
14
+ $setEvent(event);
15
+ const displayObject = $hitObject.hit;
16
+ if (displayObject && displayObject.isText
17
+ && displayObject.scrollEnabled) {
18
+ event.preventDefault();
19
+ if (event.deltaX) {
20
+ displayObject.scrollX += event.deltaX / (displayObject.textWidth / displayObject.width);
21
+ }
22
+ if (event.deltaY) {
23
+ displayObject.scrollY += event.deltaY / (displayObject.textHeight / displayObject.height);
24
+ }
25
+ return;
26
+ }
27
+ if (stage.willTrigger(Next2D_WheelEvent.WHEEL)) {
28
+ // イベントの伝播を止める
29
+ event.preventDefault();
30
+ stage.dispatchEvent(new Next2D_WheelEvent(Next2D_WheelEvent.WHEEL));
31
+ }
32
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @type {HTMLCanvasElement}
3
+ * @public
4
+ */
5
+ export declare const $canvas: HTMLCanvasElement;
package/src/Canvas.js ADDED
@@ -0,0 +1,16 @@
1
+ import { $devicePixelRatio, $setCanvas } from "./CoreUtil";
2
+ import { execute as canvasInitializeService } from "./Canvas/service/CanvasInitializeService";
3
+ import { execute as canvasBootOffscreenCanvasService } from "./Canvas/service/CanvasBootOffscreenCanvasService";
4
+ import { execute as canvasRegisterEventUseCase } from "./Canvas/usecase/CanvasRegisterEventUseCase";
5
+ /**
6
+ * @type {HTMLCanvasElement}
7
+ * @public
8
+ */
9
+ export const $canvas = document.createElement("canvas");
10
+ $setCanvas($canvas);
11
+ // initial invoking function
12
+ canvasInitializeService($canvas, $devicePixelRatio);
13
+ // Register an event
14
+ canvasRegisterEventUseCase($canvas);
15
+ // Boot offscreen canvas
16
+ canvasBootOffscreenCanvasService($canvas);
@@ -0,0 +1,116 @@
1
+ import type { IPlayerHitObject } from "./interface/IPlayerHitObject";
2
+ import type { IDisplayObject } from "./interface/IDisplayObject";
3
+ /**
4
+ * @type {string}
5
+ * @const
6
+ */
7
+ export declare const $PREFIX: string;
8
+ /**
9
+ * @type {number}
10
+ * @const
11
+ */
12
+ export declare const $devicePixelRatio: number;
13
+ /**
14
+ * @param {number} value
15
+ * @param {number} min
16
+ * @param {number} max
17
+ * @param {number} [default_value=null]
18
+ * @return {number}
19
+ * @method
20
+ * @static
21
+ */
22
+ export declare const $clamp: (value: number, min: number, max: number, default_value?: number | null) => number;
23
+ /**
24
+ * @type {CanvasRenderingContext2D}
25
+ * @const
26
+ */
27
+ export declare const $hitContext: CanvasRenderingContext2D;
28
+ /**
29
+ * @description メインのコンテナになるDivElementを設定します。
30
+ * Set the DivElement to be the main container.
31
+ *
32
+ * @param {HTMLDivElement} element
33
+ * @method
34
+ * @protected
35
+ */
36
+ export declare const $setMainElement: (element: HTMLDivElement) => void;
37
+ /**
38
+ * @description メインのCanvasになるCanvasElementを設定します。
39
+ * Set the CanvasElement to be the main canvas.
40
+ *
41
+ * @param {HTMLCanvasElement} element
42
+ * @method
43
+ * @protected
44
+ */
45
+ export declare const $setCanvas: (element: HTMLCanvasElement) => void;
46
+ /**
47
+ * @description メインのCanvasになるCanvasElementを取得します。
48
+ * Get the CanvasElement to be the main canvas.
49
+ *
50
+ * @return {HTMLCanvasElement}
51
+ * @method
52
+ * @protected
53
+ */
54
+ export declare const $getCanvas: () => HTMLCanvasElement;
55
+ /**
56
+ * @description メインのコンテナになるDivElementを取得します。
57
+ * Get the DivElement to be the main container.
58
+ *
59
+ * @return {HTMLDivElement}
60
+ * @method
61
+ * @protected
62
+ */
63
+ export declare const $getMainElement: () => HTMLDivElement;
64
+ /**
65
+ * @description 描画用のmatrix情報
66
+ * Matrix information for drawing
67
+ *
68
+ * @type {Float32Array}
69
+ * @protected
70
+ */
71
+ export declare const $renderMatrix: Float32Array;
72
+ /**
73
+ * @description マウス、タップ時の画面のmatrix情報
74
+ * Screen matrix information when mouse or tap is pressed
75
+ *
76
+ * @type {Float32Array}
77
+ * @protected
78
+ */
79
+ export declare const $hitMatrix: Float32Array;
80
+ /**
81
+ * @description マウス、タップがヒットしたDisplayObjectを取得します。
82
+ * Get the DisplayObject that the mouse or tap hit.
83
+ *
84
+ * @type {IPlayerHitObject}
85
+ * @protected
86
+ */
87
+ export declare const $hitObject: IPlayerHitObject;
88
+ /**
89
+ * @description マウス、タップがヒットしたDisplayObjectを取得します。
90
+ * Get the DisplayObject that the mouse or tap hit.
91
+ *
92
+ * @param {IDisplayObject<any>} displayObject
93
+ * @return {void}
94
+ * @method
95
+ * @protected
96
+ */
97
+ export declare const $setRollOverDisplayObject: (displayObject: IDisplayObject<any> | null) => void;
98
+ /**
99
+ * @description マウス、タップがヒットしたDisplayObjectを取得します。
100
+ * Get the DisplayObject that the mouse or tap hit.
101
+ *
102
+ * @return {IDisplayObject<any>}
103
+ * @method
104
+ * @protected
105
+ */
106
+ export declare const $getRollOverDisplayObject: () => IDisplayObject<any> | null;
107
+ /**
108
+ * @description 指定された値を2の累乗に切り上げます。
109
+ * Rounds the specified value up to a power of two.
110
+ *
111
+ * @param {number} v
112
+ * @return {number}
113
+ * @method
114
+ * @protected
115
+ */
116
+ export declare const $upperPowerOfTwo: (v: number) => number;