@next2d/core 1.16.0 → 1.17.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.
package/dist/Display.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DisplayObject, InteractiveObject, DisplayObjectContainer, Sprite, MovieClip, BitmapData, BlendMode, FrameLabel, Graphics, Loader, LoaderInfo, Shape, Stage } from "@next2d/display";
1
+ import { DisplayObject, InteractiveObject, DisplayObjectContainer, Sprite, MovieClip, BitmapData, BlendMode, FrameLabel, Graphics, Loader, LoaderInfo, Shape, Stage, TextField } from "@next2d/display";
2
2
  const display = {
3
3
  DisplayObject,
4
4
  InteractiveObject,
@@ -12,7 +12,8 @@ const display = {
12
12
  Loader,
13
13
  LoaderInfo,
14
14
  Shape,
15
- Stage
15
+ Stage,
16
+ TextField
16
17
  };
17
18
  Object.entries(display).forEach(([key, DisplayClass]) => {
18
19
  Object.defineProperty(display, key, {
package/dist/Next2D.js CHANGED
@@ -1,3 +1,12 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import { events } from "./Events";
2
11
  import { display } from "./Display";
3
12
  import { filters } from "./Filters";
@@ -169,22 +178,24 @@ export class Next2D {
169
178
  * @public
170
179
  */
171
180
  createRootMovieClip(width = 240, height = 240, fps = 24, options = null) {
172
- return Promise
173
- .all(this._$promises)
174
- .then(() => {
175
- $poolArray(this._$promises);
176
- const player = this._$player;
177
- // setup
178
- player.width = width | 0;
179
- player.height = height | 0;
180
- player.mode = "create";
181
- player.stage._$frameRate = fps | 0;
182
- player.setOptions(options);
183
- player._$initialize();
184
- const root = player.stage.addChild(new Sprite());
185
- player._$loadStatus = Player.LOAD_END;
186
- player.play();
187
- return Promise.resolve(root);
181
+ return __awaiter(this, void 0, void 0, function* () {
182
+ return Promise
183
+ .all(this._$promises)
184
+ .then(() => {
185
+ $poolArray(this._$promises);
186
+ const player = this._$player;
187
+ // setup
188
+ player.width = width | 0;
189
+ player.height = height | 0;
190
+ player.mode = "create";
191
+ player.stage._$frameRate = fps | 0;
192
+ player.setOptions(options);
193
+ player._$initialize();
194
+ const root = player.stage.addChild(new Sprite());
195
+ player._$loadStatus = Player.LOAD_END;
196
+ player.play();
197
+ return root;
198
+ });
188
199
  });
189
200
  }
190
201
  }
package/dist/Player.d.ts CHANGED
@@ -11,53 +11,52 @@ import { CacheStore } from "@next2d/share";
11
11
  * @class
12
12
  */
13
13
  export declare class Player {
14
- private readonly _$stage;
15
- private _$mode;
14
+ _$stopFlag: boolean;
16
15
  _$actionOffset: number;
17
16
  _$actions: MovieClip[];
18
17
  _$loaders: EventDispatcherImpl<any>[];
19
18
  _$sounds: Map<any, MovieClip>;
19
+ _$loadStatus: number;
20
+ _$width: number;
21
+ _$height: number;
22
+ _$scale: number;
23
+ _$state: "up" | "down";
24
+ _$attachment: AttachmentImpl | null;
25
+ readonly _$videos: Video[];
26
+ readonly _$sources: Sound[];
27
+ private _$mode;
20
28
  private _$context;
21
- private readonly _$hitObject;
22
29
  private _$rollOverObject;
23
30
  private _$mouseOverTarget;
24
- private readonly _$ratio;
25
- _$stopFlag: boolean;
26
31
  private _$startTime;
27
32
  private _$fps;
28
- _$loadStatus: number;
29
- _$width: number;
30
- _$height: number;
31
33
  private _$baseWidth;
32
34
  private _$baseHeight;
33
- _$scale: number;
34
- private readonly _$matrix;
35
35
  private _$tx;
36
36
  private _$ty;
37
- _$state: "up" | "down";
38
37
  private _$hitTestStart;
39
38
  private _$stageX;
40
39
  private _$stageY;
41
- private readonly _$broadcastEvents;
42
40
  private _$optionWidth;
43
41
  private _$optionHeight;
44
42
  private _$tagId;
45
43
  private _$bgColor;
46
44
  private _$base;
47
- readonly _$videos: Video[];
48
- readonly _$sources: Sound[];
49
45
  private _$fullScreen;
50
- private readonly _$quality;
51
46
  private _$textField;
52
- private _$touchY;
53
47
  private _$timerId;
54
48
  private _$loadId;
55
- _$attachment: AttachmentImpl | null;
56
- private readonly _$canvas;
57
49
  private _$deltaX;
58
50
  private _$deltaY;
59
51
  private _$clickTarget;
60
52
  private _$actionProcess;
53
+ private readonly _$stage;
54
+ private readonly _$hitObject;
55
+ private readonly _$ratio;
56
+ private readonly _$matrix;
57
+ private readonly _$broadcastEvents;
58
+ private readonly _$quality;
59
+ private readonly _$canvas;
61
60
  /**
62
61
  * @constructor
63
62
  * @public
package/dist/Player.js CHANGED
@@ -2,7 +2,7 @@ import { Stage } from "@next2d/display";
2
2
  import { Event as Next2DEvent, MouseEvent as Next2DMouseEvent, EventPhase } from "@next2d/events";
3
3
  import { SoundMixer } from "@next2d/media";
4
4
  import { CanvasToWebGLContext } from "@next2d/webgl";
5
- import { $document, $window, $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, $getEvent, $setEvent, $setEventType, $setCurrentLoaderInfo, $getEventType } from "@next2d/util";
5
+ import { $document, $window, $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, $getEvent, $setEvent, $setEventType, $setCurrentLoaderInfo, $getEventType, $getRenderBufferArray, $getRenderMessageObject, $poolRenderMessageObject } from "@next2d/util";
6
6
  import { $Math, $performance, $COLOR_ARRAY_IDENTITY, $doUpdated, $isUpdated, $getArray, $getFloat32Array6, $getMap, $uintToRGBA, $toColorInt, $requestAnimationFrame, $cancelAnimationFrame, $poolArray, $clamp, $devicePixelRatio, $setDevicePixelRatio, $cacheStore } from "@next2d/share";
7
7
  /**
8
8
  * 描画のイベントや設定やコントロールの管理クラス
@@ -246,12 +246,6 @@ export class Player {
246
246
  * @private
247
247
  */
248
248
  this._$textField = null;
249
- /**
250
- * @type {number}
251
- * @default 0
252
- * @private
253
- */
254
- this._$touchY = 0;
255
249
  /**
256
250
  * @type {number}
257
251
  * @default -1
@@ -627,12 +621,6 @@ export class Player {
627
621
  * @private
628
622
  */
629
623
  _$initialize() {
630
- if ($document.readyState === "loading") {
631
- $window.addEventListener("DOMContentLoaded", () => {
632
- this._$initialize();
633
- });
634
- return;
635
- }
636
624
  const contentElementId = this.contentElementId;
637
625
  if (!this._$tagId) {
638
626
  $document
@@ -782,20 +770,22 @@ export class Player {
782
770
  this._$canvas.width = 1;
783
771
  this._$canvas.height = 1;
784
772
  if ($rendererWorker) {
785
- $rendererWorker.postMessage({
786
- "command": "setStage",
787
- "instanceId": this._$stage._$instanceId
788
- });
789
773
  const offscreenCanvas = this
790
774
  ._$canvas
791
775
  .transferControlToOffscreen();
776
+ const buffer = $getRenderBufferArray();
777
+ let index = 0;
778
+ buffer[index++] = this._$stage._$instanceId;
779
+ buffer[index++] = +$isSafari;
780
+ buffer[index++] = $devicePixelRatio;
781
+ buffer[index++] = this._$getSamples();
782
+ const options = $getArray(offscreenCanvas, buffer.buffer);
792
783
  $rendererWorker.postMessage({
793
784
  "command": "initialize",
794
785
  "canvas": offscreenCanvas,
795
- "samples": this._$getSamples(),
796
- "devicePixelRatio": $devicePixelRatio,
797
- "isSafari": $isSafari
798
- }, [offscreenCanvas]);
786
+ "buffer": buffer
787
+ }, options);
788
+ $poolArray(options);
799
789
  }
800
790
  else {
801
791
  // create gl context
@@ -842,7 +832,6 @@ export class Player {
842
832
  $setEvent(event);
843
833
  $setEventType($TOUCH_START);
844
834
  // start position
845
- this._$touchY = event.changedTouches[0].pageY;
846
835
  this._$hitTest();
847
836
  });
848
837
  this._$canvas.addEventListener($TOUCH_MOVE, (event) => {
@@ -857,10 +846,6 @@ export class Player {
857
846
  });
858
847
  // mouse wheel
859
848
  this._$canvas.addEventListener($TOUCH_MOVE, (event) => {
860
- // update
861
- const pageY = event.changedTouches[0].pageY;
862
- this._$deltaY = this._$touchY - pageY;
863
- this._$touchY = pageY;
864
849
  $setEvent(event);
865
850
  $setEventType($TOUCH_MOVE);
866
851
  this._$hitTest();
@@ -1015,10 +1000,17 @@ export class Player {
1015
1000
  */
1016
1001
  _$setBackgroundColor(background_color = "transparent") {
1017
1002
  if ($rendererWorker) {
1018
- $rendererWorker.postMessage({
1019
- "command": "setBackgroundColor",
1020
- "backgroundColor": background_color
1021
- });
1003
+ const buffer = $getRenderBufferArray();
1004
+ buffer[0] = background_color === "transparent"
1005
+ ? -1
1006
+ : $toColorInt(background_color);
1007
+ const message = $getRenderMessageObject();
1008
+ message.command = "setBackgroundColor";
1009
+ message.buffer = buffer;
1010
+ const options = $getArray(buffer.buffer);
1011
+ $rendererWorker.postMessage(message, options);
1012
+ $poolRenderMessageObject(message);
1013
+ $poolArray(options);
1022
1014
  }
1023
1015
  else {
1024
1016
  const context = this._$context;
@@ -1046,14 +1038,21 @@ export class Player {
1046
1038
  */
1047
1039
  _$resizeCanvas(width, height, scale, tx = 0, ty = 0) {
1048
1040
  if ($rendererWorker) {
1049
- $rendererWorker.postMessage({
1050
- "command": "resize",
1051
- "width": width,
1052
- "height": height,
1053
- "scale": scale,
1054
- "tx": tx,
1055
- "ty": ty
1056
- });
1041
+ const buffer = $getRenderBufferArray();
1042
+ let index = 0;
1043
+ buffer[index++] = width;
1044
+ buffer[index++] = height;
1045
+ buffer[index++] = scale;
1046
+ buffer[index++] = tx;
1047
+ buffer[index++] = ty;
1048
+ const message = $getRenderMessageObject();
1049
+ const options = $getArray(buffer.buffer);
1050
+ message.command = "resize";
1051
+ message.buffer = buffer;
1052
+ $rendererWorker.postMessage(message, options);
1053
+ // reset
1054
+ $poolRenderMessageObject(message);
1055
+ $poolArray(options);
1057
1056
  }
1058
1057
  else {
1059
1058
  const context = this._$context;
@@ -1407,14 +1406,14 @@ export class Player {
1407
1406
  if (!this._$width || !this._$height) {
1408
1407
  return;
1409
1408
  }
1409
+ if (!this._$stage._$isUpdated()) {
1410
+ return;
1411
+ }
1410
1412
  if ($rendererWorker) {
1411
1413
  $rendererWorker.postMessage({
1412
1414
  "command": "draw"
1413
1415
  });
1414
1416
  }
1415
- if (!this._$stage._$isUpdated()) {
1416
- return;
1417
- }
1418
1417
  const context = this._$context;
1419
1418
  if (!context) {
1420
1419
  return;
@@ -1503,20 +1502,20 @@ export class Player {
1503
1502
  x += rect.left;
1504
1503
  y += rect.top;
1505
1504
  }
1506
- let stageX = 0;
1507
- let stageY = 0;
1505
+ let pageX = 0;
1506
+ let pageY = 0;
1508
1507
  if ("changedTouches" in event) {
1509
1508
  const changedTouche = event.changedTouches[0];
1510
- stageX = changedTouche.pageX;
1511
- stageY = changedTouche.pageY;
1509
+ pageX = changedTouche.pageX;
1510
+ pageY = changedTouche.pageY;
1512
1511
  }
1513
1512
  else if ("pageX" in event) {
1514
- stageX = event.pageX;
1515
- stageY = event.pageY;
1513
+ pageX = event.pageX;
1514
+ pageY = event.pageY;
1516
1515
  }
1517
1516
  // drop point
1518
- stageX = (stageX - x) / this._$scale;
1519
- stageY = (stageY - y) / this._$scale;
1517
+ const stageX = (pageX - x) / this._$scale;
1518
+ const stageY = (pageY - y) / this._$scale;
1520
1519
  // update
1521
1520
  this._$stageX = stageX;
1522
1521
  this._$stageY = stageY;
@@ -1561,9 +1560,23 @@ export class Player {
1561
1560
  $dropTarget.x = dragX;
1562
1561
  $dropTarget.y = dragY;
1563
1562
  }
1563
+ if (this._$clickTarget
1564
+ && "_$text" in this._$clickTarget
1565
+ && this._$clickTarget.scrollEnabled) {
1566
+ const deltaX = this._$deltaX - pageX;
1567
+ const deltaY = this._$deltaY - pageY;
1568
+ // @ts-ignore
1569
+ this._$clickTarget.scrollX += deltaX / (this._$clickTarget.textWidth / this._$clickTarget.width);
1570
+ // @ts-ignore
1571
+ this._$clickTarget.scrollY += deltaY / (this._$clickTarget.textHeight / this._$clickTarget.height);
1572
+ }
1573
+ this._$deltaX = pageX;
1574
+ this._$deltaY = pageY;
1564
1575
  break;
1565
1576
  case $TOUCH_START:
1566
1577
  case $MOUSE_DOWN:
1578
+ this._$deltaX = pageX;
1579
+ this._$deltaY = pageY;
1567
1580
  this._$state = "down";
1568
1581
  canPointer = this._$canvas.style.cursor === "pointer";
1569
1582
  staticPointer = true;
@@ -1571,6 +1584,8 @@ export class Player {
1571
1584
  case $TOUCH_END:
1572
1585
  case $MOUSE_UP:
1573
1586
  case $DOUBLE_CLICK:
1587
+ this._$deltaX = 0;
1588
+ this._$deltaY = 0;
1574
1589
  this._$state = "up";
1575
1590
  break;
1576
1591
  }
@@ -1736,18 +1751,6 @@ export class Player {
1736
1751
  // down event
1737
1752
  case $TOUCH_START:
1738
1753
  case $MOUSE_DOWN:
1739
- // TextField focus out
1740
- if (this._$textField
1741
- && instance !== this._$textField
1742
- && "_$text" in this._$textField) {
1743
- this._$textField.focus = false;
1744
- this._$textField = null;
1745
- }
1746
- // TextField focus out
1747
- if ("_$text" in instance) {
1748
- instance.focus = true;
1749
- this._$textField = instance;
1750
- }
1751
1754
  // (3) mouseDown
1752
1755
  if (instance.willTrigger(Next2DMouseEvent.MOUSE_DOWN)) {
1753
1756
  instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_DOWN, true, false));
@@ -1765,6 +1768,11 @@ export class Player {
1765
1768
  this._$textField.focus = false;
1766
1769
  this._$textField = null;
1767
1770
  }
1771
+ // TextField focus out
1772
+ if ("_$text" in instance) {
1773
+ instance.focus = true;
1774
+ this._$textField = instance;
1775
+ }
1768
1776
  // (1) mouseUp
1769
1777
  if (instance.willTrigger(Next2DMouseEvent.MOUSE_UP)) {
1770
1778
  instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_UP, true, false));
@@ -1782,9 +1790,15 @@ export class Player {
1782
1790
  if (instance.willTrigger(Next2DMouseEvent.MOUSE_WHEEL)) {
1783
1791
  instance.dispatchEvent(new Next2DMouseEvent(Next2DMouseEvent.MOUSE_WHEEL));
1784
1792
  }
1785
- if ("deltaY" in event && instance.scrollEnabled) {
1786
- // @ts-ignore
1787
- instance.scrollV += $clamp(event.deltaY, -1, 1, 0);
1793
+ if (instance.scrollEnabled) {
1794
+ if ("deltaX" in event) {
1795
+ // @ts-ignore
1796
+ instance.scrollX += event.deltaX / (instance.textWidth / instance.width);
1797
+ }
1798
+ if ("deltaY" in event) {
1799
+ // @ts-ignore
1800
+ instance.scrollY += event.deltaY / (instance.textHeight / instance.height);
1801
+ }
1788
1802
  }
1789
1803
  break;
1790
1804
  case $DOUBLE_CLICK:
package/dist/Text.js CHANGED
@@ -1,6 +1,5 @@
1
- import { TextField, TextFormat } from "@next2d/text";
1
+ import { TextFormat } from "@next2d/text";
2
2
  const text = {
3
- TextField,
4
3
  TextFormat
5
4
  };
6
5
  Object.entries(text).forEach(([key, TextClass]) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next2d/core",
3
- "version": "1.16.0",
3
+ "version": "1.17.0",
4
4
  "description": "Next2D Core Packages",
5
5
  "author": "Toshiyuki Ienaga<ienaga@tvon.jp> (https://github.com/ienaga/)",
6
6
  "license": "MIT",
@@ -32,16 +32,16 @@
32
32
  "url": "git+https://github.com/Next2D/Player.git"
33
33
  },
34
34
  "peerDependencies": {
35
- "@next2d/interface": "1.16.0",
36
- "@next2d/webgl": "1.16.0",
37
- "@next2d/display": "1.16.0",
38
- "@next2d/core": "1.16.0",
39
- "@next2d/net": "1.16.0",
40
- "@next2d/share": "1.16.0",
41
- "@next2d/events": "1.16.0",
42
- "@next2d/media": "1.16.0",
43
- "@next2d/text": "1.16.0",
44
- "@next2d/geom": "1.16.0",
45
- "@next2d/util": "1.16.0"
35
+ "@next2d/interface": "1.17.0",
36
+ "@next2d/webgl": "1.17.0",
37
+ "@next2d/display": "1.17.0",
38
+ "@next2d/core": "1.17.0",
39
+ "@next2d/net": "1.17.0",
40
+ "@next2d/share": "1.17.0",
41
+ "@next2d/events": "1.17.0",
42
+ "@next2d/media": "1.17.0",
43
+ "@next2d/text": "1.17.0",
44
+ "@next2d/geom": "1.17.0",
45
+ "@next2d/util": "1.17.0"
46
46
  }
47
47
  }