leafer-game 2.3.1 → 2.3.3

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.
@@ -4901,6 +4901,9 @@ const LeafHelper = {
4901
4901
  renderComplex(_leaf, _canvas, _options) {},
4902
4902
  updateComplex(_leaf) {},
4903
4903
  checkComplex(_leaf) {},
4904
+ updateFlowLayout(_leaf) {},
4905
+ listenPositionNode(_leaf) {},
4906
+ updatePositionLayout(_leaf) {},
4904
4907
  moveWorld(t, x, y = 0, isInnerPoint, transition) {
4905
4908
  const local = isObject(x) ? Object.assign({}, x) : {
4906
4909
  x: x,
@@ -6159,7 +6162,10 @@ const LeafBounds = {
6159
6162
  layout.resized = "inner";
6160
6163
  }
6161
6164
  if (layout.localBoxChanged) {
6162
- if (this.__local) this.__updateLocalBoxBounds();
6165
+ if (this.__local) {
6166
+ this.__updateLocalBoxBounds();
6167
+ if (data.__usePositionNode) LeafHelper.listenPositionNode(this);
6168
+ }
6163
6169
  layout.localBoxChanged = undefined;
6164
6170
  if (layout.strokeSpread && !layout.strokeChanged) layout.strokeChanged = layout.boxChanged ? true : 2;
6165
6171
  if (layout.renderSpread && !layout.renderChanged) layout.renderChanged = layout.boxChanged ? true : 2;
@@ -6206,6 +6212,7 @@ const LeafBounds = {
6206
6212
  },
6207
6213
  __updateLocalBoxBounds() {
6208
6214
  if (this.__hasMotionPath) this.__updateMotionPath();
6215
+ if (this.__hasPosition) LeafHelper.updatePositionLayout(this);
6209
6216
  if (this.__hasAutoLayout) this.__updateAutoLayout();
6210
6217
  toOuterOf$2(this.__layout.boxBounds, this.__local, this.__local);
6211
6218
  },
@@ -6232,11 +6239,7 @@ const LeafBounds = {
6232
6239
  if (this.isBranch) {
6233
6240
  this.__extraUpdate();
6234
6241
  if (this.__.flow) {
6235
- if (this.__layout.childrenSortChanged) this.__updateSortChildren();
6236
- if (this.__layout.boxChanged) this.__updateFlowLayout();
6237
- updateAllMatrix$3(this);
6238
- updateBounds$1(this, this);
6239
- if (this.__.__autoSide) this.__updateBoxBounds(true);
6242
+ LeafHelper.updateFlowLayout(this);
6240
6243
  } else {
6241
6244
  updateAllMatrix$3(this);
6242
6245
  updateBounds$1(this, this);
@@ -7078,7 +7081,7 @@ class LeafLevelList {
7078
7081
  }
7079
7082
  }
7080
7083
 
7081
- const version = "2.3.1";
7084
+ const version = "2.3.3";
7082
7085
 
7083
7086
  if (typeof globalThis !== "undefined") {
7084
7087
  const globalLeafer = globalThis.Leafer || (globalThis.Leafer = {});
@@ -12320,19 +12323,21 @@ function compute(attrName, ui) {
12320
12323
  data.__removePaint(attrName, false);
12321
12324
  data["_" + attrName] = "";
12322
12325
  }
12326
+ recycleMap = undefined;
12323
12327
  }
12324
12328
 
12325
12329
  function getLeafPaint(attrName, paint, ui) {
12326
12330
  if (!isObject(paint) || paint.visible === false || paint.opacity === 0) return undefined;
12327
- let leafPaint;
12331
+ let leafPaint, oldPaint;
12328
12332
  const {boxBounds: boxBounds} = ui.__layout, {type: type} = paint;
12329
12333
  switch (type) {
12330
12334
  case "image":
12331
12335
  case "film":
12332
12336
  case "video":
12333
12337
  if (!paint.url) return undefined;
12334
- leafPaint = PaintImage.image(ui, attrName, paint, boxBounds, !recycleMap || !recycleMap[paint.url]);
12335
- if (type !== "image") PaintImage[type](leafPaint);
12338
+ oldPaint = recycleMap && recycleMap[paint.url];
12339
+ leafPaint = PaintImage.image(ui, attrName, paint, boxBounds, oldPaint);
12340
+ if (type !== "image") PaintImage[type](leafPaint, oldPaint);
12336
12341
  break;
12337
12342
 
12338
12343
  case "linear":
@@ -12390,9 +12395,9 @@ let cache$1, box = new Bounds;
12390
12395
 
12391
12396
  const {isSame: isSame} = BoundsHelper;
12392
12397
 
12393
- function image(ui, attrName, paint, boxBounds, firstUse) {
12398
+ function image(ui, attrName, paint, boxBounds, oldPaint) {
12394
12399
  let leafPaint, event;
12395
- const image = ImageManager.get(paint, paint.type);
12400
+ const image = ImageManager.get(paint, paint.type), firstUse = !oldPaint;
12396
12401
  if (cache$1 && paint === cache$1.paint && isSame(boxBounds, cache$1.boxBounds)) {
12397
12402
  leafPaint = cache$1.leafPaint;
12398
12403
  } else {
@@ -12818,7 +12823,7 @@ function recycleImage(attrName, data) {
12818
12823
  url = image && image.url;
12819
12824
  if (url) {
12820
12825
  if (!recycleMap) recycleMap = {};
12821
- recycleMap[url] = true;
12826
+ recycleMap[url] = paint;
12822
12827
  ImageManager.recyclePaint(paint);
12823
12828
  if (paint.brush) PaintImage.recycleBrush(paint, ui);
12824
12829
  if (data.__willDestroy && image.parent) PaintImage.recycleFilter(image, ui);
@@ -15726,7 +15731,7 @@ ui$1.getMotionPoint = function(motionDistance, motionAround, offsetX = 0, offset
15726
15731
  if (!data.total) return {};
15727
15732
  const point = HighCurveHelper.getDistancePoint(data, motionDistance, pathElement.motionPrecision, offsetX);
15728
15733
  const {motionRotation: motionRotation} = this;
15729
- if (isNumber(motionRotation)) point.rotation += motionRotation;
15734
+ if (isNumber(motionRotation)) point.rotation += motionRotation; else if (motionRotation === false) point.rotation = 0;
15730
15735
  if (motionAround && motionAround !== "top-left") {
15731
15736
  AroundHelper.toPoint(motionAround, this.__layout.boxBounds, tempPoint);
15732
15737
  PointHelper.set(tempPoint, point.x - tempPoint.x * this.scaleX, point.y - tempPoint.y * this.scaleY);