You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/06/17 05:08:15 UTC
[4/8] git commit: [flex-asjs] [refs/heads/tlf] - Canvas renders fonts
differently than span so have to use span to measure
Canvas renders fonts differently than span so have to use span to measure
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/82682482
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/82682482
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/82682482
Branch: refs/heads/tlf
Commit: 82682482e6a592e551d06dcd8ab239937614ca67
Parents: 3172982
Author: Alex Harui <ah...@apache.org>
Authored: Thu Jun 15 22:09:56 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Jun 16 22:08:44 2017 -0700
----------------------------------------------------------------------
.../flex/org/apache/flex/text/html/TextLine.as | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/82682482/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
index ba74a85..1bbdf65 100644
--- a/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
+++ b/frameworks/projects/Text/src/main/flex/org/apache/flex/text/html/TextLine.as
@@ -366,15 +366,17 @@ package org.apache.flex.text.html
else
{
var s:String = element.firstChild.textContent;
- var canvas:HTMLCanvasElement = document.createElement("canvas") as HTMLCanvasElement;
- canvas.style.height = "100%";
- canvas.style.width = "100%";
- element.appendChild(canvas);
- var ctx:CanvasRenderingContext2D = canvas.getContext("2d") as CanvasRenderingContext2D;
-
- var w1:Number = (atomIndex == 0) ? 0 : ctx.measureText(s.substring(0, atomIndex - 1)).width;
- w = ctx.measureText(s.substring(0, atomIndex)).width;
- element.removeChild(canvas);
+ var span:HTMLSpanElement = document.createElement("span") as HTMLSpanElement;
+ element.appendChild(span);
+ var w1:Number = 0;
+ if (atomIndex > 0)
+ {
+ span.innerHTML = s.substring(0, atomIndex);
+ w1 = span.getClientRects()[0].width;
+ }
+ span.innerHTML = s.substring(0, atomIndex + 1);
+ w = span.getClientRects()[0].width;
+ element.removeChild(span);
return new Rectangle(w1, 1.2 - _textBlock.content.elementFormat.fontSize, w - w1, 1.2);
}
}