@galacean/effects-core 2.6.2 → 2.6.4

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.
@@ -236,6 +236,7 @@ export declare class Composition extends EventEmitter<CompositionEvent<Compositi
236
236
  private paused;
237
237
  private isEndCalled;
238
238
  private _textures;
239
+ private videos;
239
240
  /**
240
241
  * 合成中消息元素创建/销毁时触发的回调
241
242
  */
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Description: Galacean Effects runtime core for the web
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 燃然,飂兮,十弦,云垣,茂安,意绮
6
- * Version: v2.6.2
6
+ * Version: v2.6.4
7
7
  */
8
8
 
9
9
  'use strict';
@@ -795,6 +795,28 @@ function noop() {}
795
795
  */ function isObject(obj) {
796
796
  return Object.prototype.toString.call(obj) === "[object Object]";
797
797
  }
798
+ /**
799
+ * 判断对象是否是`Plain Object`类型
800
+ *
801
+ * @param obj - 要判断的对象
802
+ * @returns
803
+ */ function isPlainObject(obj) {
804
+ if (obj === null || typeof obj !== "object") {
805
+ return false;
806
+ }
807
+ // 先排除 Array/Date/Map/Set/RegExp 等
808
+ if (Object.prototype.toString.call(obj) !== "[object Object]") {
809
+ return false;
810
+ }
811
+ var proto = Object.getPrototypeOf(obj);
812
+ if (proto === null) {
813
+ return true;
814
+ } // Object.create(null)
815
+ var hasOwn = Object.prototype.hasOwnProperty;
816
+ var Ctor = hasOwn.call(proto, "constructor") && proto.constructor;
817
+ // 构造器需要是 Object(跨 realm 用函数源码比对)
818
+ return typeof Ctor === "function" && Function.prototype.toString.call(Ctor) === Function.prototype.toString.call(Object);
819
+ }
798
820
  function isCanvas(canvas) {
799
821
  var _canvas_tagName;
800
822
  // 小程序 Canvas 无法使用 instanceof HTMLCanvasElement 判断
@@ -23899,9 +23921,17 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23899
23921
  */ _this.paused = false;
23900
23922
  _this.isEndCalled = false;
23901
23923
  _this._textures = [];
23924
+ _this.videos = [];
23902
23925
  var _props_reusable = props.reusable, reusable = _props_reusable === void 0 ? false : _props_reusable, _props_speed = props.speed, speed = _props_speed === void 0 ? 1 : _props_speed, _props_baseRenderOrder = props.baseRenderOrder, baseRenderOrder = _props_baseRenderOrder === void 0 ? 0 : _props_baseRenderOrder, renderer = props.renderer, event = props.event, width = props.width, height = props.height, handleItemMessage = props.handleItemMessage;
23903
23926
  _this.renderer = renderer;
23904
23927
  _this._textures = scene.textures;
23928
+ for(var _iterator = _create_for_of_iterator_helper_loose(Object.keys(scene.assets)), _step; !(_step = _iterator()).done;){
23929
+ var key = _step.value;
23930
+ var videoAsset = scene.assets[key];
23931
+ if (_instanceof1(videoAsset, HTMLVideoElement)) {
23932
+ _this.videos.push(videoAsset);
23933
+ }
23934
+ }
23905
23935
  var _scene_jsonScene_renderSettings_postProcessingEnabled;
23906
23936
  _this.postProcessingEnabled = (_scene_jsonScene_renderSettings_postProcessingEnabled = (_scene_jsonScene_renderSettings = scene.jsonScene.renderSettings) == null ? void 0 : _scene_jsonScene_renderSettings.postProcessingEnabled) != null ? _scene_jsonScene_renderSettings_postProcessingEnabled : false;
23907
23937
  _this.getEngine().renderLevel = scene.renderLevel;
@@ -23910,8 +23940,8 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23910
23940
  scene.consumed = true;
23911
23941
  }
23912
23942
  var sourceContent = scene.jsonScene.compositions[0];
23913
- for(var _iterator = _create_for_of_iterator_helper_loose(scene.jsonScene.compositions), _step; !(_step = _iterator()).done;){
23914
- var composition = _step.value;
23943
+ for(var _iterator1 = _create_for_of_iterator_helper_loose(scene.jsonScene.compositions), _step1; !(_step1 = _iterator1()).done;){
23944
+ var composition = _step1.value;
23915
23945
  if (composition.id === scene.jsonScene.compositionId) {
23916
23946
  sourceContent = composition;
23917
23947
  }
@@ -23926,8 +23956,8 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
23926
23956
  // Create rootItem components
23927
23957
  //@ts-expect-error TODO update spec.
23928
23958
  var componentPaths = sourceContent.components;
23929
- for(var _iterator1 = _create_for_of_iterator_helper_loose(componentPaths), _step1; !(_step1 = _iterator1()).done;){
23930
- var componentPath = _step1.value;
23959
+ for(var _iterator2 = _create_for_of_iterator_helper_loose(componentPaths), _step2; !(_step2 = _iterator2()).done;){
23960
+ var componentPath = _step2.value;
23931
23961
  var component = _this.getEngine().findObject(componentPath);
23932
23962
  _this.rootItem.components.push(component);
23933
23963
  component.item = _this.rootItem;
@@ -24387,6 +24417,13 @@ var LateUpdateTickData = /*#__PURE__*/ function(TickData) {
24387
24417
  });
24388
24418
  }
24389
24419
  }
24420
+ for(var _iterator = _create_for_of_iterator_helper_loose(this.videos), _step; !(_step = _iterator()).done;){
24421
+ var video = _step.value;
24422
+ video.pause();
24423
+ video.removeAttribute("src");
24424
+ video.load();
24425
+ }
24426
+ this.videos = [];
24390
24427
  this.rootItem.dispose();
24391
24428
  // FIXME: 注意这里增加了renderFrame销毁
24392
24429
  this.renderFrame.dispose();
@@ -29428,7 +29465,7 @@ var SerializationHelper = /*#__PURE__*/ function() {
29428
29465
  } else if (SerializationHelper.checkDataPath(property)) {
29429
29466
  var referenceObject = engine.findObject(property);
29430
29467
  return overrideDataPath ? referenceObject : property;
29431
- } else if (isObject(property) && property.constructor === Object) {
29468
+ } else if (isPlainObject(property)) {
29432
29469
  var res1;
29433
29470
  if (type) {
29434
29471
  res1 = new type();
@@ -31099,7 +31136,7 @@ function getStandardSpriteContent(sprite, transform) {
31099
31136
  return ret;
31100
31137
  }
31101
31138
 
31102
- var version$1 = "2.6.2";
31139
+ var version$1 = "2.6.4";
31103
31140
  var v0 = /^(\d+)\.(\d+)\.(\d+)(-(\w+)\.\d+)?$/;
31104
31141
  var standardVersion = /^(\d+)\.(\d+)$/;
31105
31142
  var reverseParticle = false;
@@ -31687,6 +31724,10 @@ var seed = 1;
31687
31724
  ];
31688
31725
  case 1:
31689
31726
  rawJSON = _state.sent();
31727
+ // 小程序环境下,如果产物是相对路径,adapter 返回的是字符串,需要兼容
31728
+ if (isString(rawJSON)) {
31729
+ rawJSON = JSON.parse(rawJSON);
31730
+ }
31690
31731
  return [
31691
31732
  3,
31692
31733
  3
@@ -34009,7 +34050,7 @@ var FBGeometryDataT = /*#__PURE__*/ function() {
34009
34050
  * @ignore
34010
34051
  */ _proto.findObject = function findObject(guid) {
34011
34052
  // 编辑器可能传 Class 对象,这边判断处理一下直接返回原对象。
34012
- if (!(isObject(guid) && guid.constructor === Object)) {
34053
+ if (!isPlainObject(guid)) {
34013
34054
  return guid;
34014
34055
  }
34015
34056
  if (this.objectInstance[guid.id]) {
@@ -34349,7 +34390,7 @@ registerPlugin("sprite", SpriteLoader, exports.VFXItem);
34349
34390
  registerPlugin("particle", ParticleLoader, exports.VFXItem);
34350
34391
  registerPlugin("cal", CalculateLoader, exports.VFXItem);
34351
34392
  registerPlugin("interact", InteractLoader, exports.VFXItem);
34352
- var version = "2.6.2";
34393
+ var version = "2.6.4";
34353
34394
  logger.info("Core version: " + version + ".");
34354
34395
 
34355
34396
  exports.AbstractPlugin = AbstractPlugin;
@@ -34577,6 +34618,7 @@ exports.isIOSByUA = isIOSByUA;
34577
34618
  exports.isMiniProgram = isMiniProgram;
34578
34619
  exports.isObject = isObject;
34579
34620
  exports.isOpenHarmony = isOpenHarmony;
34621
+ exports.isPlainObject = isPlainObject;
34580
34622
  exports.isSimulatorCellPhone = isSimulatorCellPhone;
34581
34623
  exports.isString = isString;
34582
34624
  exports.isUniformStruct = isUniformStruct;