Have run into a problem on the JS side. Firebox is telling me that in this code from GraphicShape.js:
org.apache.flex.core.graphics.GraphicShape.prototype.addedToParent = function() { var bbox = this.element.getBBox(); this.resize(this.x_, this.y_, bbox.width + this.x_ * 2, bbox.height + this.y_ * 2); }; this.element.getBBox() is returning undefined. I know that this.element is set with an SVG element. I'm using Firefox 31.0 on Mac OS X. Peter Ent Adobe Systems On 9/9/14 10:37 AM, "Peter Ent" <p...@adobe.com> wrote: >The update to handle 'A' and 'a' works great! Thanks. > >Peter Ent >Adobe Systems > >On 9/9/14 3:42 AM, "OmPrakash Muppirala" <bigosma...@gmail.com> wrote: > >>On Mon, Sep 8, 2014 at 3:53 PM, OmPrakash Muppirala >><bigosma...@gmail.com> >>wrote: >> >>> On Mon, Sep 8, 2014 at 1:59 PM, Peter Ent <p...@adobe.com> wrote: >>> >>>> I haven't tried the JS side - this is all Flash. In SVG, the fill >>>>takes >>>> care of closing the path; I'm not using any line or border. >>>> >>>> >>> Yes, it looks like the A parameter is not supported. I will work on >>> adding this support in Path. I took a big chunk of the Path >>>implementation >>> from spark.primitives.Path. It seems like we do need to tweak it >>>further. >>> >>> >>Hi, >> >>The support for 'a' and 'A' (Elliptical Arc) has been added to the Flash >>implementation of the Path api. I tried with this: >> >>path.drawPath(250,500,"M 50 50 L 100 50 A 50 50 0 0 0 50 0 Z"); >> >>and got a nice little wedge drawn on the screen. >> >>More importantly, the Flash and SVG renderings look (almost) the same. >> >>As part of this implementation, I borrowed the drawEllipicalArc() method >>from the svgweb library(flash implementation of SVG) [1] The code is >>Apache licensed. I have added the link to the original code as a comment >>in our code. Do I need to mention this in the NOTICE or LICENSE files? >> >>Peter, if you can do some more testing and let me know your feedback, >>that >>would be great. >> >>And looks like this can be added to the current SDK's FXG implementation >>as >>well. I am surprised that we did not hit this issue in the current SDK. >> >>Thanks, >>Om >> >>[1] >>https://code.google.com/p/svgweb/source/browse/trunk/src/org/svgweb/utils >>/ >>EllipticalArc.as?r=1251 >> >> >> >> >>> I see that mx.charts.chartClasses.GraphicsUtilities has a drawArc() >>> method. I will probably end up using that implementation. >>> >>> >>>> Which brings me to the next issue. When drawing a series of connected >>>> lines (for the LineChart), the first and last points are getting >>>> connected, which I do not want. My loop to build the path looks like >>>>this, >>>> below. point[0] != point[last] so they should not be connected. I >>>>tried >>>> "z" and "Z" thinking one meant leave the path closed and one closed >>>>the >>>> path, but that didn't make any difference. >>>> >>>> var pathString:String = ""; >>>> >>>> for (var i:int=0; i < points.length; >>>>i++) >>>> { >>>> var point:Object = points[i]; >>>> if (i == 0) pathString += "M >>>> "+point.x+" "+point.y+" "; >>>> else pathString += "L >>>>"+point.x+" >>>> "+point.y+" "; >>>> } >>>> >>>> pathString += "Z"; >>>> >>>> path.drawPath(0, 0, pathString); >>>> >>>> >>> >>> That is weird. I will play with it and see why that is happening. >>> >> >>> Is moveTo() and lineTo() a better approach? >>> >>> In psedocode, the lines would be drawn like this: >>> >>> graphics.moveTo(points[0].x, points[0].y); >>> for (var i:int=0; i < points.length; i++) { >>> if(i+1 < points.length) >>> { >>> graphics.lineTo(points[i+1].x, points[i+1].y); >>> } >>> } >>> >>> In any case, I have the Line class in my list of Graphic elements to >>> implement. >>> >>> >> >> >> >>> Thanks, >>> Om >>> >>> >>>> >>>> Thanks, >>>> Peter Ent >>>> Adobe Systems >>>> >>>> On 9/8/14 4:13 PM, "OmPrakash Muppirala" <bigosma...@gmail.com> wrote: >>>> >>>> >On Mon, Sep 8, 2014 at 12:48 PM, Peter Ent <p...@adobe.com> wrote: >>>> > >>>> >> I took care of the gjslint issues. >>>> >> >>>> > >>>> >Thanks! Hope it was not too much trouble. >>>> > >>>> > >>>> >> >>>> >> Can you supply more information about Path and what is in the path >>>> >>string? >>>> >> I have a path working in SVG to do the wedges for the pie chart, >>>>but >>>> >>that >>>> >> same string isn't working with core.graphics.Path. >>>> >> >>>> >> var pathString:String = 'M' + x + ' ' + y + ' L' + x1 + ' ' + y1 + >>>>' A' >>>> >>+ >>>> >> radius + ' ' + radius + >>>> >> ' 0 0 1 ' + x2 + ' ' + y2 + ' z'; >>>> >> >>>> >> >>>> >> It doesn't look, to me, like "A" is being recognized. >>>> >> >>>> > >>>> >The path looks like it is doing the following: >>>> >M x y : move to x, y >>>> >L x1 y1 : draw line from x,y to x1,y1 >>>> >A radius radius : draw an arc with xradius=radius and yradius = >>>>radius >>>> >(so, a circular arc) >>>> >0 0 1 : x-axis rotation=0, large-arc = false, sweep = true >>>> >x2 y2 : ending point of the arc >>>> >z : finish drawing >>>> > >>>> >BTW, don't you need another line to complete the wedge? >>>> > >>>> >Is it working fine on the flash side? I will take a look soon. >>>> > >>>> >Thanks, >>>> >Om >>>> > >>>> > >>>> >> >>>> >> Thanks, >>>> >> Peter Ent >>>> >> Adobe Systems >>>> >> >>>> >> On 9/8/14 12:04 PM, "OmPrakash Muppirala" <bigosma...@gmail.com> >>>> wrote: >>>> >> >>>> >> >On Sep 8, 2014 8:24 AM, "Peter Ent" <p...@adobe.com> wrote: >>>> >> >> >>>> >> >> I forgot to add that when I build flex-asjs, gjslint finds a >>>>number >>>> >>of >>>> >> >> issues in the new JS graphics code (its usual, spaces at the end >>>>of >>>> >> >>lines, >>>> >> >> sort of thing). I think I am using version 2.3.10 of gjslint but >>>>I'm >>>> >>not >>>> >> >> 100% sure. >>>> >> > >>>> >> >Yeah, unfortunately there is no gjslint available for Windows. I >>>> >>guess I >>>> >> >will need you Mac folks to help me out with this :-) >>>> >> > >>>> >> >Thanks, >>>> >> >Om >>>> >> > >>>> >> >> >>>> >> >> Peter Ent >>>> >> >> Adobe Systems >>>> >> >> >>>> >> >> On 9/8/14 3:48 AM, "OmPrakash Muppirala" <bigosma...@gmail.com> >>>> >>wrote: >>>> >> >> >>>> >> >> >FlexJS now supports a basic drawing API (Rect, Ellipse, Circle, >>>> >>Path, >>>> >> >> >SolidColor, SolidColorStroke) Here are the AS3 [1] and JS [2] >>>> >>versions >>>> >> >> > >>>> >> >> >So far, the rendering fidelity between the Flash and SVG/HTML5 >>>> >>version >>>> >> >>is >>>> >> >> >very very close. For sure, there are some pretty major things >>>>to >>>> be >>>> >> >> >worked >>>> >> >> >out, but generally so far, the results have been very >>>>encouraging. >>>> >> >> > >>>> >> >> >You can see a quick and dirty example here: >>>> >> >> >Flash version: >>>> >> >>http://people.apache.org/~bigosmallm/flexjs/drawing/flash/ >>>> >> >> >HTML5 version: >>>> >> >>http://people.apache.org/~bigosmallm/flexjs/drawing/html5/ >>>> >> >> > >>>> >> >> >HTML5 version has been tested to work fine on Chrome, Firefox, >>>> IE11, >>>> >> >> >Android browser and iPad Safari. >>>> >> >> > >>>> >> >> >Next up, i will be working on the following items: >>>> >> >> >Polygons, Linear gradients, Radial gradients, filters and drop >>>> >>shadows. >>>> >> >> >These should bring us very close to our current FXG based >>>>drawing >>>> >>APIs. >>>> >> >> > >>>> >> >> >After that, I plan on programmatically recreating a few FXG >>>>based >>>> >>skins >>>> >> >in >>>> >> >> >FlexJS and see how we can apply it skins on UI components. >>>> >> >> > >>>> >> >> >Feedback welcome! >>>> >> >> > >>>> >> >> >[1] >>>> >> >> > >>>> >> > >>>> >> >>>> >> >>>> >>>>https://github.com/apache/flex-asjs/tree/develop/frameworks/as/projects >>>>/ >>>>F >>>> >>l >>>> >> >> >exJSUI/src/org/apache/flex/core/graphics >>>> >> >> >[2] >>>> >> >> > >>>> >> > >>>> >> >>>> >> >>>> >>>>https://github.com/apache/flex-asjs/tree/develop/frameworks/js/FlexJS/s >>>>r >>>>c >>>> >>/ >>>> >> >> >org/apache/flex/core/graphics >>>> >> >> >>>> >> >>>> >> >>>> >>>> >>> >