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);
 				}
 			}