@galacean/effects-plugin-rich-text 2.8.0-alpha.5 → 2.8.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/alipay.js +1 -1
- package/dist/alipay.js.map +1 -1
- package/dist/alipay.mjs +1 -1
- package/dist/alipay.mjs.map +1 -1
- package/dist/douyin.js +1 -1
- package/dist/douyin.js.map +1 -1
- package/dist/douyin.mjs +1 -1
- package/dist/douyin.mjs.map +1 -1
- package/dist/index.js +134 -83
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +134 -83
- package/dist/index.mjs.map +1 -1
- package/dist/strategies/rich-text-interfaces.d.ts +1 -0
- package/dist/weapp.js +1 -1
- package/dist/weapp.js.map +1 -1
- package/dist/weapp.mjs +1 -1
- package/dist/weapp.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Description: Galacean Effects player rich text plugin
|
|
4
4
|
* Author: Ant Group CO., Ltd.
|
|
5
5
|
* Contributors: 云垣
|
|
6
|
-
* Version: v2.8.0
|
|
6
|
+
* Version: v2.8.0
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
'use strict';
|
|
@@ -436,8 +436,11 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
436
436
|
this.width = size ? size[0] : 100;
|
|
437
437
|
this.height = size ? size[1] : 100;
|
|
438
438
|
this.wrapEnabled = wrapEnabled;
|
|
439
|
-
|
|
440
|
-
|
|
439
|
+
// 兜底,避免 0/负数/NaN/Infinity
|
|
440
|
+
var safeMaxW = Number.isFinite(maxTextWidth) ? maxTextWidth : 0;
|
|
441
|
+
var safeMaxH = Number.isFinite(maxTextHeight) ? maxTextHeight : 0;
|
|
442
|
+
this.maxTextWidth = Math.max(1, safeMaxW);
|
|
443
|
+
this.maxTextHeight = Math.max(1, safeMaxH);
|
|
441
444
|
this.sizeMode = sizeMode;
|
|
442
445
|
}
|
|
443
446
|
var _proto = RichTextLayout.prototype;
|
|
@@ -519,7 +522,7 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
519
522
|
*/ _proto.getOffsetXRich = function getOffsetXRich(style, maxWidth, contentW) {
|
|
520
523
|
switch(this.textAlign){
|
|
521
524
|
case EFFECTS.spec.TextAlignment.left:
|
|
522
|
-
return style.outlineWidth;
|
|
525
|
+
return style.outlineWidth * style.fontScale;
|
|
523
526
|
case EFFECTS.spec.TextAlignment.middle:
|
|
524
527
|
return (maxWidth - contentW) / 2;
|
|
525
528
|
case EFFECTS.spec.TextAlignment.right:
|
|
@@ -887,14 +890,15 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
887
890
|
var safeDiv = function(a, b) {
|
|
888
891
|
return Math.abs(b) > 1e-5 ? a / b : 1;
|
|
889
892
|
};
|
|
890
|
-
|
|
891
|
-
var
|
|
893
|
+
// 用像素空间计算
|
|
894
|
+
var frameWpx = layout.maxTextWidth * style.fontScale;
|
|
895
|
+
var frameHpx = layout.maxTextHeight * style.fontScale;
|
|
892
896
|
var _sizeResult_contentWidth;
|
|
893
|
-
var
|
|
897
|
+
var contentWpx = Math.max(1, (_sizeResult_contentWidth = sizeResult.contentWidth) != null ? _sizeResult_contentWidth : sizeResult.canvasWidth);
|
|
894
898
|
var _sizeResult_bboxHeight;
|
|
895
|
-
var
|
|
896
|
-
//
|
|
897
|
-
var s = Math.min(1, safeDiv(
|
|
899
|
+
var contentHpx = Math.max(1, (_sizeResult_bboxHeight = sizeResult.bboxHeight) != null ? _sizeResult_bboxHeight : sizeResult.canvasHeight);
|
|
900
|
+
// 只缩小不放大(基于像素空间计算)
|
|
901
|
+
var s = Math.min(1, safeDiv(frameWpx, contentWpx), safeDiv(frameHpx, contentHpx));
|
|
898
902
|
// 浮点精度处理
|
|
899
903
|
if (s > 0.9999) {
|
|
900
904
|
return {
|
|
@@ -974,13 +978,15 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
974
978
|
function RichHorizontalAlignStrategyImpl() {}
|
|
975
979
|
var _proto = RichHorizontalAlignStrategyImpl.prototype;
|
|
976
980
|
_proto.getHorizontalOffsets = function getHorizontalOffsets(lines, sizeResult, overflowResult, layout, style) {
|
|
977
|
-
var
|
|
978
|
-
var
|
|
979
|
-
|
|
981
|
+
var _sizeResult_containerWidth;
|
|
982
|
+
var containerWidthPx = (_sizeResult_containerWidth = sizeResult.containerWidth) != null ? _sizeResult_containerWidth : layout.maxTextWidth * style.fontScale;
|
|
983
|
+
var _sizeResult_baselineCompensationX;
|
|
984
|
+
var compX = (_sizeResult_baselineCompensationX = sizeResult.baselineCompensationX) != null ? _sizeResult_baselineCompensationX : 0;
|
|
985
|
+
// 使用像素单位的容器宽度
|
|
980
986
|
var baseOffsets = lines.map(function(line) {
|
|
981
|
-
return layout.getOffsetXRich(style,
|
|
987
|
+
return layout.getOffsetXRich(style, containerWidthPx, line.width);
|
|
982
988
|
});
|
|
983
|
-
//
|
|
989
|
+
// visible 模式下使用 baseOffset + baselineCompensationX
|
|
984
990
|
var lineOffsets = layout.overflow === EFFECTS.spec.TextOverflow.visible ? baseOffsets.map(function(x) {
|
|
985
991
|
return x + compX;
|
|
986
992
|
}) : baseOffsets;
|
|
@@ -998,10 +1004,8 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
998
1004
|
function RichVerticalAlignStrategyImpl() {}
|
|
999
1005
|
var _proto = RichVerticalAlignStrategyImpl.prototype;
|
|
1000
1006
|
_proto.getVerticalOffsets = function getVerticalOffsets(lines, sizeResult, overflowResult, layout, style, singleLineHeight) {
|
|
1001
|
-
var
|
|
1002
|
-
|
|
1003
|
-
});
|
|
1004
|
-
var compY = sizeResult.baselineCompensationY || 0;
|
|
1007
|
+
var _sizeResult_baselineCompensationY;
|
|
1008
|
+
var compY = (_sizeResult_baselineCompensationY = sizeResult.baselineCompensationY) != null ? _sizeResult_baselineCompensationY : 0;
|
|
1005
1009
|
var baselineY = 0;
|
|
1006
1010
|
if (lines.length === 0) {
|
|
1007
1011
|
return {
|
|
@@ -1013,7 +1017,7 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
1013
1017
|
case EFFECTS.spec.TextOverflow.visible:
|
|
1014
1018
|
{
|
|
1015
1019
|
// frame-based 计算
|
|
1016
|
-
var
|
|
1020
|
+
var frameHpx = layout.maxTextHeight * style.fontScale;
|
|
1017
1021
|
var _sizeResult_bboxTop;
|
|
1018
1022
|
var bboxTop = (_sizeResult_bboxTop = sizeResult.bboxTop) != null ? _sizeResult_bboxTop : 0;
|
|
1019
1023
|
var _sizeResult_bboxHeight, _sizeResult_bboxBottom;
|
|
@@ -1027,10 +1031,10 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
1027
1031
|
baselineYFrame = -bboxTop;
|
|
1028
1032
|
break;
|
|
1029
1033
|
case EFFECTS.spec.TextVerticalAlign.middle:
|
|
1030
|
-
baselineYFrame = (
|
|
1034
|
+
baselineYFrame = (frameHpx - bboxHeight) / 2 - bboxTop;
|
|
1031
1035
|
break;
|
|
1032
1036
|
case EFFECTS.spec.TextVerticalAlign.bottom:
|
|
1033
|
-
baselineYFrame =
|
|
1037
|
+
baselineYFrame = frameHpx - bboxHeight - bboxTop;
|
|
1034
1038
|
break;
|
|
1035
1039
|
}
|
|
1036
1040
|
baselineY = baselineYFrame + compY; // 关键:叠加"向下移动 E"
|
|
@@ -1038,26 +1042,8 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
1038
1042
|
}
|
|
1039
1043
|
case EFFECTS.spec.TextOverflow.clip:
|
|
1040
1044
|
{
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
var _Math;
|
|
1044
|
-
var richSizes = firstLine.richOptions.map(function(o) {
|
|
1045
|
-
return o.fontSize;
|
|
1046
|
-
});
|
|
1047
|
-
var firstMax = (_Math = Math).max.apply(_Math, [].concat(richSizes.length ? richSizes : [
|
|
1048
|
-
style.fontSize
|
|
1049
|
-
]));
|
|
1050
|
-
var fontSizeForOffset = firstMax * style.fontScale * singleLineHeight;
|
|
1051
|
-
baselineY = layout.getOffsetYRich(style, lineHeights, fontSizeForOffset) + compY;
|
|
1052
|
-
} else {
|
|
1053
|
-
baselineY = layout.getOffsetYRich(style, lineHeights, style.fontSize * style.fontScale) + compY;
|
|
1054
|
-
}
|
|
1055
|
-
break;
|
|
1056
|
-
}
|
|
1057
|
-
case EFFECTS.spec.TextOverflow.display:
|
|
1058
|
-
{
|
|
1059
|
-
// display 垂直对齐改为基于 bbox,而不是 getOffsetYRich
|
|
1060
|
-
var frameH1 = layout.maxTextHeight;
|
|
1045
|
+
// 让 clip 垂直对齐逻辑与 display 保持一致(基于 bbox 的几何模型)
|
|
1046
|
+
var frameHpx1 = layout.maxTextHeight * style.fontScale;
|
|
1061
1047
|
// 用缩放后的行数据重建 baselines 和 bbox
|
|
1062
1048
|
var baselines = [
|
|
1063
1049
|
0
|
|
@@ -1065,7 +1051,6 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
1065
1051
|
for(var i = 1; i < lines.length; i++){
|
|
1066
1052
|
baselines[i] = baselines[i - 1] + lines[i].lineHeight;
|
|
1067
1053
|
}
|
|
1068
|
-
// 计算 bboxTop / bboxBottom(使用行的测量值 lineAscent/lineDescent)
|
|
1069
1054
|
var bboxTop1 = Infinity;
|
|
1070
1055
|
var bboxBottom1 = -Infinity;
|
|
1071
1056
|
for(var i1 = 0; i1 < lines.length; i1++){
|
|
@@ -1077,26 +1062,64 @@ var RichTextLayout = /*#__PURE__*/ function() {
|
|
|
1077
1062
|
bboxBottom1 = Math.max(bboxBottom1, baselines[i1] + desc);
|
|
1078
1063
|
}
|
|
1079
1064
|
var bboxHeight1 = bboxBottom1 - bboxTop1;
|
|
1065
|
+
var baselineClipY = 0;
|
|
1066
|
+
switch(layout.textVerticalAlign){
|
|
1067
|
+
case EFFECTS.spec.TextVerticalAlign.top:
|
|
1068
|
+
baselineClipY = -bboxTop1;
|
|
1069
|
+
break;
|
|
1070
|
+
case EFFECTS.spec.TextVerticalAlign.middle:
|
|
1071
|
+
baselineClipY = (frameHpx1 - bboxHeight1) / 2 - bboxTop1;
|
|
1072
|
+
break;
|
|
1073
|
+
case EFFECTS.spec.TextVerticalAlign.bottom:
|
|
1074
|
+
baselineClipY = frameHpx1 - bboxHeight1 - bboxTop1;
|
|
1075
|
+
break;
|
|
1076
|
+
}
|
|
1077
|
+
baselineY = baselineClipY + compY;
|
|
1078
|
+
break;
|
|
1079
|
+
}
|
|
1080
|
+
case EFFECTS.spec.TextOverflow.display:
|
|
1081
|
+
{
|
|
1082
|
+
// display 垂直对齐改为基于 bbox,而不是 getOffsetYRich
|
|
1083
|
+
var frameHpx2 = layout.maxTextHeight * style.fontScale;
|
|
1084
|
+
// 用缩放后的行数据重建 baselines 和 bbox
|
|
1085
|
+
var baselines1 = [
|
|
1086
|
+
0
|
|
1087
|
+
];
|
|
1088
|
+
for(var i2 = 1; i2 < lines.length; i2++){
|
|
1089
|
+
baselines1[i2] = baselines1[i2 - 1] + lines[i2].lineHeight;
|
|
1090
|
+
}
|
|
1091
|
+
// 计算 bboxTop / bboxBottom(使用行的测量值 lineAscent/lineDescent)
|
|
1092
|
+
var bboxTop2 = Infinity;
|
|
1093
|
+
var bboxBottom2 = -Infinity;
|
|
1094
|
+
for(var i3 = 0; i3 < lines.length; i3++){
|
|
1095
|
+
var _lines_i_lineAscent1;
|
|
1096
|
+
var asc1 = (_lines_i_lineAscent1 = lines[i3].lineAscent) != null ? _lines_i_lineAscent1 : 0;
|
|
1097
|
+
var _lines_i_lineDescent1;
|
|
1098
|
+
var desc1 = (_lines_i_lineDescent1 = lines[i3].lineDescent) != null ? _lines_i_lineDescent1 : 0;
|
|
1099
|
+
bboxTop2 = Math.min(bboxTop2, baselines1[i3] - asc1);
|
|
1100
|
+
bboxBottom2 = Math.max(bboxBottom2, baselines1[i3] + desc1);
|
|
1101
|
+
}
|
|
1102
|
+
var bboxHeight2 = bboxBottom2 - bboxTop2;
|
|
1080
1103
|
// 计算 display 模式的基线
|
|
1081
1104
|
var baselineDisplayY = 0;
|
|
1082
1105
|
switch(layout.textVerticalAlign){
|
|
1083
1106
|
case EFFECTS.spec.TextVerticalAlign.top:
|
|
1084
|
-
baselineDisplayY = -
|
|
1107
|
+
baselineDisplayY = -bboxTop2;
|
|
1085
1108
|
break;
|
|
1086
1109
|
case EFFECTS.spec.TextVerticalAlign.middle:
|
|
1087
|
-
baselineDisplayY = (
|
|
1110
|
+
baselineDisplayY = (frameHpx2 - bboxHeight2) / 2 - bboxTop2;
|
|
1088
1111
|
break;
|
|
1089
1112
|
case EFFECTS.spec.TextVerticalAlign.bottom:
|
|
1090
|
-
baselineDisplayY =
|
|
1113
|
+
baselineDisplayY = frameHpx2 - bboxHeight2 - bboxTop2;
|
|
1091
1114
|
break;
|
|
1092
1115
|
}
|
|
1093
1116
|
// 后续 lineYOffsets 保持按行高累计
|
|
1094
1117
|
var lineYOffsets = [];
|
|
1095
1118
|
var currentY = baselineDisplayY;
|
|
1096
|
-
for(var
|
|
1119
|
+
for(var i4 = 0; i4 < lines.length; i4++){
|
|
1097
1120
|
lineYOffsets.push(currentY);
|
|
1098
|
-
if (
|
|
1099
|
-
currentY += lines[
|
|
1121
|
+
if (i4 < lines.length - 1) {
|
|
1122
|
+
currentY += lines[i4 + 1].lineHeight;
|
|
1100
1123
|
}
|
|
1101
1124
|
}
|
|
1102
1125
|
return {
|
|
@@ -1451,9 +1474,12 @@ exports.RichTextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
1451
1474
|
// 使用 this.canvasSize 统一设置画布尺寸
|
|
1452
1475
|
EFFECTS.assertExist(this.canvasSize);
|
|
1453
1476
|
var _this_canvasSize = this.canvasSize, canvasWidth = _this_canvasSize.x, canvasHeight = _this_canvasSize.y;
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1477
|
+
// 确保canvas宽高至少为1
|
|
1478
|
+
var safeW = Math.max(1, Math.ceil(canvasWidth));
|
|
1479
|
+
var safeH = Math.max(1, Math.ceil(canvasHeight));
|
|
1480
|
+
layout.width = safeW / this.textStyle.fontScale;
|
|
1481
|
+
layout.height = safeH / this.textStyle.fontScale;
|
|
1482
|
+
this.renderToTexture(safeW, safeH, flipY, function(context) {
|
|
1457
1483
|
// 步骤6: 绘制文本
|
|
1458
1484
|
_this.drawTextWithStrategies(context, wrapResult.lines, horizontalAlignResult, TextVerticalAlignResult, overflowResult, _this.textStyle);
|
|
1459
1485
|
}, {
|
|
@@ -1468,12 +1494,15 @@ exports.RichTextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
1468
1494
|
}
|
|
1469
1495
|
var _this_size = this.size, _this_size_x = _this_size.x, x = _this_size_x === void 0 ? 1 : _this_size_x, _this_size_y = _this_size.y, y = _this_size_y === void 0 ? 1 : _this_size_y;
|
|
1470
1496
|
var layout = this.textLayout;
|
|
1497
|
+
var fontScale = this.textStyle.fontScale || 1;
|
|
1498
|
+
// 防止 frameW / frameH 为 0
|
|
1499
|
+
var frameW = Math.max(1, layout.maxTextWidth || 0);
|
|
1500
|
+
var frameH = Math.max(1, layout.maxTextHeight || 0);
|
|
1471
1501
|
switch(layout.overflow){
|
|
1472
1502
|
case EFFECTS.spec.TextOverflow.visible:
|
|
1473
1503
|
{
|
|
1474
|
-
var
|
|
1475
|
-
var
|
|
1476
|
-
var frameH = layout.maxTextHeight;
|
|
1504
|
+
var frameWpx = frameW * fontScale;
|
|
1505
|
+
var frameHpx = frameH * fontScale;
|
|
1477
1506
|
var _sizeResult_bboxTop;
|
|
1478
1507
|
var bboxTop = (_sizeResult_bboxTop = sizeResult.bboxTop) != null ? _sizeResult_bboxTop : 0;
|
|
1479
1508
|
var _sizeResult_bboxHeight, _sizeResult_bboxBottom;
|
|
@@ -1487,17 +1516,17 @@ exports.RichTextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
1487
1516
|
baselineYFrame = -bboxTop;
|
|
1488
1517
|
break;
|
|
1489
1518
|
case EFFECTS.spec.TextVerticalAlign.middle:
|
|
1490
|
-
baselineYFrame = (
|
|
1519
|
+
baselineYFrame = (frameHpx - bboxHeight) / 2 - bboxTop;
|
|
1491
1520
|
break;
|
|
1492
1521
|
case EFFECTS.spec.TextVerticalAlign.bottom:
|
|
1493
|
-
baselineYFrame =
|
|
1522
|
+
baselineYFrame = frameHpx - bboxHeight - bboxTop;
|
|
1494
1523
|
break;
|
|
1495
1524
|
}
|
|
1496
1525
|
// 上下溢出检测
|
|
1497
1526
|
var contentTopInFrame = baselineYFrame + bboxTop;
|
|
1498
1527
|
var contentBottomInFrame = baselineYFrame + bboxBottom;
|
|
1499
1528
|
var overflowTop = Math.max(0, -contentTopInFrame);
|
|
1500
|
-
var overflowBottom = Math.max(0, contentBottomInFrame -
|
|
1529
|
+
var overflowBottom = Math.max(0, contentBottomInFrame - frameHpx);
|
|
1501
1530
|
// 垂直扩张
|
|
1502
1531
|
var expandTop = overflowTop;
|
|
1503
1532
|
var expandBottom = overflowBottom;
|
|
@@ -1528,56 +1557,78 @@ exports.RichTextComponent = /*#__PURE__*/ function(MaskableGraphic) {
|
|
|
1528
1557
|
var compY = expandTop;
|
|
1529
1558
|
// 水平扩张
|
|
1530
1559
|
var lines = sizeResult.lines || [];
|
|
1560
|
+
// 1. 先按 frameWpx 计算每行的对齐起点(逻辑对齐)
|
|
1531
1561
|
var xOffsetsFrame = lines.map(function(line) {
|
|
1532
|
-
return layout.getOffsetXRich(_this.textStyle,
|
|
1562
|
+
return layout.getOffsetXRich(_this.textStyle, frameWpx, line.width);
|
|
1533
1563
|
});
|
|
1534
|
-
|
|
1535
|
-
var
|
|
1536
|
-
var
|
|
1537
|
-
var
|
|
1538
|
-
|
|
1539
|
-
|
|
1564
|
+
// 2. 用对齐后的偏移 + 行宽算出内容的左右边界
|
|
1565
|
+
var contentMinX = Infinity;
|
|
1566
|
+
var contentMaxX = -Infinity;
|
|
1567
|
+
for(var i = 0; i < lines.length; i++){
|
|
1568
|
+
var _xOffsetsFrame_i;
|
|
1569
|
+
var off = (_xOffsetsFrame_i = xOffsetsFrame[i]) != null ? _xOffsetsFrame_i : 0;
|
|
1570
|
+
var _lines_i_width;
|
|
1571
|
+
var w = (_lines_i_width = lines[i].width) != null ? _lines_i_width : 0; // 像素宽
|
|
1572
|
+
contentMinX = Math.min(contentMinX, off);
|
|
1573
|
+
contentMaxX = Math.max(contentMaxX, off + w);
|
|
1574
|
+
}
|
|
1575
|
+
if (!isFinite(contentMinX)) {
|
|
1576
|
+
contentMinX = 0;
|
|
1577
|
+
}
|
|
1578
|
+
if (!isFinite(contentMaxX)) {
|
|
1579
|
+
contentMaxX = 0;
|
|
1580
|
+
}
|
|
1581
|
+
// 3. 计算内容相对于 frame 的越界量
|
|
1582
|
+
var overflowLeft = Math.max(0, -contentMinX); // 内容左边 < 0
|
|
1583
|
+
var overflowRight = Math.max(0, contentMaxX - frameWpx); // 内容右边 > frameWpx?
|
|
1584
|
+
// 4. 让 canvas 左右都扩张到能容下整个内容 bbox
|
|
1585
|
+
var expandLeft = overflowLeft;
|
|
1586
|
+
var expandRight = overflowRight;
|
|
1587
|
+
// 5. 最终 canvas 宽高
|
|
1588
|
+
var finalWpx = Math.ceil(frameWpx + expandLeft + expandRight);
|
|
1589
|
+
var finalHpx = Math.ceil(frameHpx + expandTop + expandBottom);
|
|
1540
1590
|
// 记录补偿,供垂直对齐策略叠加
|
|
1541
1591
|
sizeResult.baselineCompensationX = expandLeft;
|
|
1542
1592
|
sizeResult.baselineCompensationY = compY;
|
|
1543
|
-
|
|
1544
|
-
sizeResult.
|
|
1545
|
-
|
|
1593
|
+
// containerWidth 用 frameWpx,而不是 finalWpx
|
|
1594
|
+
sizeResult.containerWidth = frameWpx;
|
|
1595
|
+
sizeResult.canvasWidth = finalWpx;
|
|
1596
|
+
sizeResult.canvasHeight = finalHpx;
|
|
1597
|
+
this.canvasSize = new EFFECTS.math.Vector2(finalWpx, finalHpx);
|
|
1546
1598
|
var _this_size1;
|
|
1547
1599
|
var _ref = (_this_size1 = this.size) != null ? _this_size1 : this.item.transform.size, _ref_x = _ref.x, x1 = _ref_x === void 0 ? 1 : _ref_x, _ref_y = _ref.y, y1 = _ref_y === void 0 ? 1 : _ref_y;
|
|
1548
|
-
this.item.transform.size.set(x1 *
|
|
1549
|
-
this.size = this.item.transform.size.clone();
|
|
1600
|
+
this.item.transform.size.set(x1 * finalWpx * this.SCALE_FACTOR * this.SCALE_FACTOR, y1 * finalHpx * this.SCALE_FACTOR * this.SCALE_FACTOR);
|
|
1550
1601
|
this.initialized = true;
|
|
1551
1602
|
break;
|
|
1552
1603
|
}
|
|
1553
1604
|
case EFFECTS.spec.TextOverflow.clip:
|
|
1554
1605
|
{
|
|
1555
|
-
var
|
|
1556
|
-
var
|
|
1606
|
+
var frameWpx1 = frameW * fontScale;
|
|
1607
|
+
var frameHpx1 = frameH * fontScale;
|
|
1557
1608
|
// 直接使用 frame 尺寸作为画布尺寸
|
|
1558
|
-
sizeResult.canvasWidth =
|
|
1559
|
-
sizeResult.canvasHeight =
|
|
1609
|
+
sizeResult.canvasWidth = frameWpx1;
|
|
1610
|
+
sizeResult.canvasHeight = frameHpx1;
|
|
1560
1611
|
// clip 模式不需要任何补偿
|
|
1561
1612
|
sizeResult.baselineCompensationX = 0;
|
|
1562
1613
|
sizeResult.baselineCompensationY = 0;
|
|
1563
1614
|
// 设置 canvas 和节点变换
|
|
1564
|
-
this.canvasSize = new EFFECTS.math.Vector2(
|
|
1615
|
+
this.canvasSize = new EFFECTS.math.Vector2(frameWpx1, frameHpx1);
|
|
1565
1616
|
// 把 layout 的尺寸更新为 frame 尺寸
|
|
1566
|
-
layout.width =
|
|
1567
|
-
layout.height =
|
|
1617
|
+
layout.width = frameW;
|
|
1618
|
+
layout.height = frameH;
|
|
1568
1619
|
var _this_size2;
|
|
1569
1620
|
var _ref1 = (_this_size2 = this.size) != null ? _this_size2 : this.item.transform.size, _ref_x1 = _ref1.x, x2 = _ref_x1 === void 0 ? 1 : _ref_x1, _ref_y1 = _ref1.y, y2 = _ref_y1 === void 0 ? 1 : _ref_y1;
|
|
1570
|
-
this.item.transform.size.set(x2 *
|
|
1571
|
-
this.size = this.item.transform.size.clone();
|
|
1621
|
+
this.item.transform.size.set(x2 * frameWpx1 * this.SCALE_FACTOR * this.SCALE_FACTOR, y2 * frameHpx1 * this.SCALE_FACTOR * this.SCALE_FACTOR);
|
|
1572
1622
|
this.initialized = true;
|
|
1573
1623
|
break;
|
|
1574
1624
|
}
|
|
1575
1625
|
case EFFECTS.spec.TextOverflow.display:
|
|
1576
1626
|
{
|
|
1577
1627
|
if (!this.initialized) {
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
this.
|
|
1628
|
+
var frameWpx2 = frameW * fontScale;
|
|
1629
|
+
var frameHpx2 = frameH * fontScale;
|
|
1630
|
+
this.canvasSize = new EFFECTS.math.Vector2(frameWpx2, frameHpx2);
|
|
1631
|
+
this.item.transform.size.set(x * frameWpx2 * this.SCALE_FACTOR * this.SCALE_FACTOR, y * frameHpx2 * this.SCALE_FACTOR * this.SCALE_FACTOR);
|
|
1581
1632
|
this.initialized = true;
|
|
1582
1633
|
}
|
|
1583
1634
|
break;
|
|
@@ -1696,7 +1747,7 @@ EFFECTS.applyMixins(exports.RichTextComponent, [
|
|
|
1696
1747
|
|
|
1697
1748
|
/**
|
|
1698
1749
|
* 插件版本号
|
|
1699
|
-
*/ var version = "2.8.0
|
|
1750
|
+
*/ var version = "2.8.0";
|
|
1700
1751
|
EFFECTS.registerPlugin("rich-text", RichTextLoader);
|
|
1701
1752
|
EFFECTS.logger.info("Plugin rich text version: " + version + ".");
|
|
1702
1753
|
if (version !== EFFECTS__namespace.version) {
|