@next2d/core 1.18.12 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +20 -28
- package/src/Canvas/service/CanvasBootOffscreenCanvasService.d.ts +10 -0
- package/src/Canvas/service/CanvasBootOffscreenCanvasService.js +19 -0
- package/src/Canvas/service/CanvasInitializeService.d.ts +11 -0
- package/src/Canvas/service/CanvasInitializeService.js +23 -0
- package/src/Canvas/service/CanvasSetPositionService.d.ts +9 -0
- package/src/Canvas/service/CanvasSetPositionService.js +30 -0
- package/src/Canvas/usecase/CanvasPointerDownEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerDownEventUseCase.js +57 -0
- package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.js +23 -0
- package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.js +30 -0
- package/src/Canvas/usecase/CanvasPointerUpEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerUpEventUseCase.js +29 -0
- package/src/Canvas/usecase/CanvasRegisterEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasRegisterEventUseCase.js +39 -0
- package/src/Canvas/usecase/CanvasWheelEventUseCase.d.ts +11 -0
- package/src/Canvas/usecase/CanvasWheelEventUseCase.js +32 -0
- package/src/Canvas.d.ts +5 -0
- package/src/Canvas.js +16 -0
- package/src/CoreUtil.d.ts +116 -0
- package/src/CoreUtil.js +165 -0
- package/src/Display.d.ts +3 -0
- package/{dist → src}/Display.js +5 -7
- package/src/Events.d.ts +3 -0
- package/{dist → src}/Events.js +3 -2
- package/src/Filters.d.ts +3 -0
- package/src/Geom.d.ts +3 -0
- package/{dist → src}/Geom.js +2 -3
- package/src/Media.d.ts +3 -0
- package/src/Net.d.ts +3 -0
- package/{dist → src}/Net.js +2 -3
- package/src/Next2D/service/VideoSyncService.d.ts +11 -0
- package/src/Next2D/service/VideoSyncService.js +50 -0
- package/src/Next2D/usecase/CaptureToCanvasUseCase.d.ts +12 -0
- package/src/Next2D/usecase/CaptureToCanvasUseCase.js +92 -0
- package/src/Next2D/usecase/CreateRootMovieClipUseCase.d.ts +15 -0
- package/src/Next2D/usecase/CreateRootMovieClipUseCase.js +46 -0
- package/src/Next2D/usecase/LoadUseCase.d.ts +12 -0
- package/src/Next2D/usecase/LoadUseCase.js +66 -0
- package/src/Next2D.d.ts +138 -0
- package/src/Next2D.js +209 -0
- package/src/Player/service/PlayerAppendElementService.d.ts +9 -0
- package/src/Player/service/PlayerAppendElementService.js +22 -0
- package/src/Player/service/PlayerApplyContainerElementStyleService.d.ts +12 -0
- package/src/Player/service/PlayerApplyContainerElementStyleService.js +44 -0
- package/src/Player/service/PlayerCreateContainerElementService.d.ts +9 -0
- package/src/Player/service/PlayerCreateContainerElementService.js +28 -0
- package/src/Player/service/PlayerDoubleClickEventService.d.ts +10 -0
- package/src/Player/service/PlayerDoubleClickEventService.js +24 -0
- package/src/Player/service/PlayerKeyDownEventService.d.ts +10 -0
- package/src/Player/service/PlayerKeyDownEventService.js +24 -0
- package/src/Player/service/PlayerKeyUpEventService.d.ts +10 -0
- package/src/Player/service/PlayerKeyUpEventService.js +23 -0
- package/src/Player/service/PlayerLoadingAnimationService.d.ts +10 -0
- package/src/Player/service/PlayerLoadingAnimationService.js +33 -0
- package/src/Player/service/PlayerPointerDownEventService.d.ts +10 -0
- package/src/Player/service/PlayerPointerDownEventService.js +47 -0
- package/src/Player/service/PlayerPointerMoveEventService.d.ts +10 -0
- package/src/Player/service/PlayerPointerMoveEventService.js +86 -0
- package/src/Player/service/PlayerPointerUpEventService.d.ts +10 -0
- package/src/Player/service/PlayerPointerUpEventService.js +35 -0
- package/src/Player/service/PlayerRemoveCachePostMessageService.d.ts +9 -0
- package/src/Player/service/PlayerRemoveCachePostMessageService.js +37 -0
- package/src/Player/service/PlayerRemoveLoadingElementService.d.ts +9 -0
- package/src/Player/service/PlayerRemoveLoadingElementService.js +18 -0
- package/src/Player/service/PlayerRenderingPostMessageService.d.ts +14 -0
- package/src/Player/service/PlayerRenderingPostMessageService.js +74 -0
- package/src/Player/service/PlayerResizePostMessageService.d.ts +10 -0
- package/src/Player/service/PlayerResizePostMessageService.js +40 -0
- package/src/Player/service/PlayerSetCurrentMousePointService.d.ts +10 -0
- package/src/Player/service/PlayerSetCurrentMousePointService.js +33 -0
- package/src/Player/service/PlayerStopService.d.ts +9 -0
- package/src/Player/service/PlayerStopService.js +18 -0
- package/src/Player/service/PlayerTransferCanvasPostMessageService.d.ts +13 -0
- package/src/Player/service/PlayerTransferCanvasPostMessageService.js +80 -0
- package/src/Player/usecase/PlayerBootUseCase.d.ts +11 -0
- package/src/Player/usecase/PlayerBootUseCase.js +30 -0
- package/src/Player/usecase/PlayerHitTestUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerHitTestUseCase.js +35 -0
- package/src/Player/usecase/PlayerPlayUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerPlayUseCase.js +26 -0
- package/src/Player/usecase/PlayerReadyCompleteUseCase.d.ts +5 -0
- package/src/Player/usecase/PlayerReadyCompleteUseCase.js +16 -0
- package/src/Player/usecase/PlayerRegisterEventUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerRegisterEventUseCase.js +15 -0
- package/src/Player/usecase/PlayerResizeEventUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerResizeEventUseCase.js +78 -0
- package/src/Player/usecase/PlayerResizeRegisterUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerResizeRegisterUseCase.js +20 -0
- package/src/Player/usecase/PlayerTickerUseCase.d.ts +10 -0
- package/src/Player/usecase/PlayerTickerUseCase.js +50 -0
- package/src/Player.d.ts +193 -0
- package/src/Player.js +314 -0
- package/src/RendererWorker.d.ts +5 -0
- package/src/RendererWorker.js +2 -0
- package/src/Text.d.ts +3 -0
- package/{dist → src}/Text.js +3 -2
- package/src/UI.d.ts +3 -0
- package/{dist → src}/UI.js +1 -2
- package/{dist → src}/index.d.ts +1 -0
- package/{dist → src}/index.js +1 -0
- package/src/interface/ICaptureMessage.d.ts +8 -0
- package/src/interface/ICaptureMessage.js +1 -0
- package/src/interface/ICaptureOptions.d.ts +7 -0
- package/src/interface/ICaptureOptions.js +1 -0
- package/src/interface/IDisplay.d.ts +15 -0
- package/src/interface/IDisplay.js +1 -0
- package/src/interface/IDisplayObject.d.ts +2 -0
- package/src/interface/IDisplayObject.js +1 -0
- package/src/interface/IEvents.d.ts +13 -0
- package/src/interface/IEvents.js +1 -0
- package/src/interface/IFilters.d.ts +12 -0
- package/src/interface/IFilters.js +1 -0
- package/src/interface/IGeom.d.ts +7 -0
- package/src/interface/IGeom.js +1 -0
- package/src/interface/IMedia.d.ts +7 -0
- package/src/interface/IMedia.js +1 -0
- package/src/interface/INet.d.ts +4 -0
- package/src/interface/INet.js +1 -0
- package/src/interface/IPlayerHitObject.d.ts +7 -0
- package/src/interface/IPlayerHitObject.js +1 -0
- package/src/interface/IPlayerOptions.d.ts +7 -0
- package/src/interface/IPlayerOptions.js +1 -0
- package/src/interface/IRemoveCacheMessage.d.ts +4 -0
- package/src/interface/IRemoveCacheMessage.js +1 -0
- package/src/interface/IRenderMessage.d.ts +6 -0
- package/src/interface/IRenderMessage.js +1 -0
- package/src/interface/IResizeMessage.d.ts +4 -0
- package/src/interface/IResizeMessage.js +1 -0
- package/src/interface/IStageData.d.ts +6 -0
- package/src/interface/IStageData.js +1 -0
- package/src/interface/IText.d.ts +6 -0
- package/src/interface/IText.js +1 -0
- package/src/interface/IUI.d.ts +5 -0
- package/src/interface/IUI.js +1 -0
- package/src/renderer.worker.inline.js +1 -0
- package/dist/Display.d.ts +0 -3
- package/dist/Events.d.ts +0 -3
- package/dist/Filters.d.ts +0 -3
- package/dist/Geom.d.ts +0 -3
- package/dist/Media.d.ts +0 -3
- package/dist/Net.d.ts +0 -3
- package/dist/Next2D.d.ts +0 -62
- package/dist/Next2D.js +0 -198
- package/dist/Player.d.ts +0 -336
- package/dist/Player.js +0 -1879
- package/dist/Text.d.ts +0 -3
- package/dist/UI.d.ts +0 -3
- /package/{dist → src}/Filters.js +0 -0
- /package/{dist → src}/Media.js +0 -0
package/package.json
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next2d/core",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Next2D Core
|
|
5
|
-
"author": "Toshiyuki Ienaga<ienaga@
|
|
3
|
+
"version": "2.0.1",
|
|
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": "
|
|
10
|
-
"types": "
|
|
11
|
-
"
|
|
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
|
-
|
|
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
|
-
"
|
|
35
|
-
"@next2d/
|
|
36
|
-
"@next2d/
|
|
37
|
-
"@next2d/
|
|
38
|
-
"@next2d/
|
|
39
|
-
"@next2d/
|
|
40
|
-
"@next2d/
|
|
41
|
-
"@next2d/
|
|
42
|
-
"@next2d/
|
|
43
|
-
"@next2d/text": "
|
|
44
|
-
"@next2d/
|
|
45
|
-
"@next2d/
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@next2d/core": "2.0.1",
|
|
28
|
+
"@next2d/display": "2.0.1",
|
|
29
|
+
"@next2d/events": "2.0.1",
|
|
30
|
+
"@next2d/filters": "2.0.1",
|
|
31
|
+
"@next2d/geom": "2.0.1",
|
|
32
|
+
"@next2d/media": "2.0.1",
|
|
33
|
+
"@next2d/net": "2.0.1",
|
|
34
|
+
"@next2d/renderer": "2.0.1",
|
|
35
|
+
"@next2d/text": "2.0.1",
|
|
36
|
+
"@next2d/ui": "2.0.1",
|
|
37
|
+
"@next2d/render-queue": "2.0.1"
|
|
46
38
|
}
|
|
47
39
|
}
|
|
@@ -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,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,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,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,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,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
|
+
};
|
package/src/Canvas.d.ts
ADDED
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;
|