You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2017/05/06 11:47:33 UTC
git commit: [flex-asjs] [refs/heads/develop] - Attempt to fix issue
with SVG and Firefox: local getBBox function uses try...catch and returns a
suitable replacement box if the SVG call fails.
Repository: flex-asjs
Updated Branches:
refs/heads/develop 24a297a9c -> 93caf80fc
Attempt to fix issue with SVG and Firefox: local getBBox function uses try...catch and returns a suitable replacement box if the SVG call fails.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/93caf80f
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/93caf80f
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/93caf80f
Branch: refs/heads/develop
Commit: 93caf80fc2150cf2b6742e342fba2687b052a501
Parents: 24a297a
Author: Peter Ent <pe...@apache.org>
Authored: Sat May 6 07:47:31 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Sat May 6 07:47:31 2017 -0400
----------------------------------------------------------------------
.../src/main/flex/org/apache/flex/svg/Circle.as | 17 ++++++-----
.../main/flex/org/apache/flex/svg/Ellipse.as | 23 ++++++++-------
.../org/apache/flex/svg/GraphicContainer.as | 12 ++++----
.../flex/org/apache/flex/svg/GraphicShape.as | 16 +++++++++-
.../src/main/flex/org/apache/flex/svg/Path.as | 7 +++--
.../src/main/flex/org/apache/flex/svg/Rect.as | 2 +-
.../src/main/flex/org/apache/flex/svg/Text.as | 31 ++++++++++----------
7 files changed, 63 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93caf80f/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Circle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Circle.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Circle.as
index 8f9ae16..77511a3 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Circle.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Circle.as
@@ -21,7 +21,7 @@ package org.apache.flex.svg
{
import flash.display.Graphics;
import flash.geom.Point;
- import flash.geom.Rectangle;
+ import flash.geom.Rectangle;
}
COMPILE::JS
{
@@ -56,7 +56,7 @@ package org.apache.flex.svg
{
_radius = value;
}
-
+
COMPILE::JS
private var _circle:WrappedHTMLElement;
@@ -83,7 +83,7 @@ package org.apache.flex.svg
graphics.drawCircle(cx+radius,cy+radius,radius);
endFill();
}
- COMPILE::JS
+ COMPILE::JS
{
var style:String = getStyleStr();
@@ -103,14 +103,15 @@ package org.apache.flex.svg
_circle.setAttribute('cx', radius);
_circle.setAttribute('cy', radius);
}
-
+
_circle.setAttribute('r', radius);
-
- resize(x-radius, y-radius, (_circle as SVGCircleElement).getBBox());
+
+ //resize(x-radius, y-radius, (_circle as SVGCircleElement).getBBox());
+ resize(x-radius, y-radius, getBBox(_circle));
}
}
-
+
override protected function drawImpl():void
{
drawCircle(0, 0, radius);
@@ -120,6 +121,6 @@ package org.apache.flex.svg
{
drawImpl();
}
-
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93caf80f/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Ellipse.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Ellipse.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Ellipse.as
index b118d30..2ccf505 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Ellipse.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Ellipse.as
@@ -24,7 +24,7 @@ package org.apache.flex.svg
COMPILE::SWF
{
import flash.geom.Point;
- import flash.geom.Rectangle;
+ import flash.geom.Rectangle;
}
COMPILE::JS
{
@@ -48,12 +48,12 @@ package org.apache.flex.svg
this.rx = rx;
this.ry = ry;
}
-
+
private var _rx:Number;
/**
* The horizontal radius of the ellipse.
- *
+ *
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
@@ -73,7 +73,7 @@ package org.apache.flex.svg
/**
* The vertical radius of the ellipse.
- *
+ *
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
@@ -108,10 +108,10 @@ package org.apache.flex.svg
{
_ry = value/2;
}
-
+
COMPILE::JS
private var _ellipse:WrappedHTMLElement;
-
+
/**
* Draw the ellipse.
* @param xp The x position of the top-left corner of the bounding box of the ellipse.
@@ -132,7 +132,7 @@ package org.apache.flex.svg
applyStroke();
beginFill(new Rectangle(xp, yp, width, height), new Point(xp,yp));
graphics.drawEllipse(xp,yp,width,height);
- endFill();
+ endFill();
}
COMPILE::JS
{
@@ -155,12 +155,13 @@ package org.apache.flex.svg
}
_ellipse.setAttribute('rx', rx);
_ellipse.setAttribute('ry', ry);
-
- resize(x, y, (_ellipse as SVGEllipseElement).getBBox());
+
+ //resize(x, y, (_ellipse as SVGEllipseElement).getBBox());
+ resize(x, y, getBBox(_ellipse));
}
}
-
+
override protected function drawImpl():void
{
drawEllipse(0, 0);
@@ -170,6 +171,6 @@ package org.apache.flex.svg
{
drawImpl();
}
-
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93caf80f/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
index 8bd841f..0cd57e2 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicContainer.as
@@ -13,7 +13,7 @@
*/
package org.apache.flex.svg
{
- import org.apache.flex.core.ContainerBase;
+ import org.apache.flex.core.GroupBase;
import org.apache.flex.core.IChild;
import org.apache.flex.core.IFlexJSElement;
import org.apache.flex.core.ITransformHost;
@@ -27,7 +27,7 @@ package org.apache.flex.svg
[DefaultProperty("mxmlContent")]
COMPILE::SWF
- public class GraphicContainer extends ContainerBase implements ITransformHost
+ public class GraphicContainer extends GroupBase implements ITransformHost
{
public function GraphicContainer()
{
@@ -37,9 +37,9 @@ package org.apache.flex.svg
}
COMPILE::JS
- public class GraphicContainer extends ContainerBase implements ITransformHost
+ public class GraphicContainer extends GroupBase implements ITransformHost
{
- private var graphicGroup:ContainerBase;
+ private var graphicGroup:GroupBase;
public function GraphicContainer()
{
@@ -182,9 +182,9 @@ package org.apache.flex.svg
}
}
-import org.apache.flex.core.ContainerBase;
+import org.apache.flex.core.GroupBase;
-class GraphicGroup extends ContainerBase
+class GraphicGroup extends GroupBase
{
/**
* @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93caf80f/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
index 523bbe3..73d8dfe 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/GraphicShape.as
@@ -98,6 +98,20 @@ package org.apache.flex.svg
return element;
}
+
+ /**
+ * @private
+ * @flexjsignorecoercion SVGRect
+ */
+ COMPILE::JS
+ protected function getBBox(svgElement:WrappedHTMLElement):Object
+ {
+ try {
+ return svgElement['getBBox']();
+ } catch (err) {
+ return {x: 0, y:0, width:this.width, height:this.height};
+ }
+ }
COMPILE::SWF
@@ -188,7 +202,7 @@ package org.apache.flex.svg
* @param bbox The bounding box of the svg element.
*/
COMPILE::JS
- public function resize(x:Number, y:Number, bbox:SVGRect):void
+ public function resize(x:Number, y:Number, bbox:Object):void
{
var useWidth:Number = Math.max(this.width, bbox.width);
var useHeight:Number = Math.max(this.height, bbox.height);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93caf80f/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Path.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Path.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Path.as
index 126a437..2d882a3 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Path.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Path.as
@@ -46,7 +46,7 @@ package org.apache.flex.svg
_data = value;
_pathCommands = null;
}
-
+
private var _pathCommands:PathBuilder;
public function get pathCommands():PathBuilder
@@ -60,7 +60,7 @@ package org.apache.flex.svg
_data = _pathCommands.getPathString();
}
-
+
COMPILE::JS
private var _path:WrappedHTMLElement;
@@ -121,7 +121,8 @@ package org.apache.flex.svg
_path.setAttribute('style', style);
_path.setAttribute('d', data);
- resize(x, y, _path['getBBox']());
+ //resize(x, y, _path['getBBox']());
+ resize(x, y, getBBox(_path));
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93caf80f/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Rect.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Rect.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Rect.as
index 6cacf41..09ce190 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Rect.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Rect.as
@@ -144,7 +144,7 @@ package org.apache.flex.svg
_rect.setAttribute('width', width);
_rect.setAttribute('height', height);
- resize(x, y, _rect['getBBox']());
+ resize(x, y, getBBox(_rect));
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93caf80f/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Text.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Text.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Text.as
index 7b22aab..0b5c907 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Text.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/svg/Text.as
@@ -24,14 +24,14 @@ package org.apache.flex.svg
COMPILE::SWF
{
- import flash.text.TextFieldType;
- import org.apache.flex.core.CSSTextField;
+ import flash.text.TextFieldType;
+ import org.apache.flex.core.CSSTextField;
}
COMPILE::JS
{
import org.apache.flex.core.WrappedHTMLElement;
}
-
+
/**
* Draws a string of characters at a specific location using the fill
* value of color and alpha.
@@ -56,14 +56,14 @@ package org.apache.flex.svg
public function Text()
{
super();
-
+
COMPILE::SWF
{
_textField = new CSSTextField();
addChild(_textField);
}
}
-
+
private var _text:String;
public function get text():String
{
@@ -76,13 +76,13 @@ package org.apache.flex.svg
COMPILE::SWF
private var _textField:CSSTextField;
-
+
COMPILE::JS
private var _textElem:WrappedHTMLElement;
-
+
/**
* @copy org.apache.flex.core.ITextModel#textField
- *
+ *
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
@@ -93,7 +93,7 @@ package org.apache.flex.svg
{
return _textField;
}
-
+
/**
* Draws text at the given point.
* @param value The string to draw.
@@ -118,15 +118,15 @@ package org.apache.flex.svg
textField.mouseEnabled = false;
textField.autoSize = "left";
textField.text = value;
-
+
var color:SolidColor = fill as SolidColor;
if (color) {
textField.textColor = color.color;
textField.alpha = color.alpha;
}
-
+
textField.x = xt;
- textField.y = yt;
+ textField.y = yt;
}
COMPILE::JS
{
@@ -144,12 +144,13 @@ package org.apache.flex.svg
_textElem.setAttribute('y', yt);
var textNode:Text = document.createTextNode(value) as Text;
_textElem.appendChild(textNode as Node);
-
- resize(x, y, (_textElem as SVGLocatable).getBBox());
+
+ //resize(x, y, (_textElem as SVGLocatable).getBBox());
+ resize(x, y, getBBox(_textElem));
}
}
-
+
override protected function drawImpl():void
{
drawText(text,x,y);