@Om Here is another app that is an easy candiate for FlexJS that is a .caustic file player. Not to heavy on animated graphics.
http://www.singlecellsoftware.com/node/8897 Mike On Tue, May 19, 2015 at 4:33 PM, OmPrakash Muppirala <bigosma...@gmail.com> wrote: > On May 19, 2015 1:23 PM, "Michael Schmalle" <teotigraphix...@gmail.com> > wrote: > > > > Ok seeing the fact you were setting the background with an svg element. > > > > When you want to start working on this and have a git connection again, > let > > me know, we can hash it out. :) > > > > Sounds like a plan! > > Om > > > Mike > > > > On Tue, May 19, 2015 at 4:09 PM, OmPrakash Muppirala < > bigosma...@gmail.com > > > > wrote: > > > > > On Tue, May 19, 2015 at 12:36 PM, Michael Schmalle < > > > teotigraphix...@gmail.com> wrote: > > > > > > > Ok thanks Om, lots to think about. Some more questions. > > > > > > > > I am still a bit naive with HTML and SVG. Can SVG be used to skin an > HTML > > > > button? Or is it that you have to "Wrap" an html button with an SVG > tag > > > to > > > > pretty much draw under it? > > > > > > > > > > No, SVG cannot be used to skin a native HTML button. The skin class has > to > > > be just another display object under the component, just like the Spark > > > Button in the current SDK. > > > > > > > > > > > > > > I love the idea of a Spark like skinning system and would totally > help on > > > > this, I am just trying to see how it would be implemented and how it > > > > coincides with the HTML side, the AS side is obvious, the HTML side > the > > > SVG > > > > is a child of the this.element? > > > > > > > > > > Yes, that is correct. Although, I have not exactly implemented this > > > approach. We should know more when I actually start coding a simple > skin. > > > > > > > > > > > > > > Question: Is SVG meant to be interactive like a Button element or is > it > > > > meant for graphics. > > > > > > > > > My current thinking is that for each state of the interactive button, a > set > > > of SVG elements would be drawn. Again, much like today's Spark Button > + > > > skin paradigm. The good thing about SVG is that event handlers can be > > > attached to individual elements, so the interaction can be passed to > the > > > component which can respond by changing the state on itself and on its > > > skin. > > > > > > > > > > I am just trying to see the point at which the > > > > component in html is either SVG or an HTML element. Since you say the > SVG > > > > is just created on the DOM, then aren't you saying that the SVG > element > > > is > > > > just a child of the main component? > > > > > > > > > > Yes, all the SVG elements would be children of the skin, which in turn > > > would be a child of the main component. > > > > > > > > > > > > > > Do you have any prototypes of this going? > > > > > > > > > > I have one, but based on the older FXG -> SVG XSLT approach [1], [2] > > > > > > Left side is Flash, right side is HTML5/SVG. In this approach, I set > the > > > SVG by setting CSS pseudo-classes . This is still an option going > forward, > > > but one that I don't like that much. I prefer MXML states vs. CSS > > > pseudo-classes because of the greater flexibility we'll get. > > > > > > Thanks, > > > Om > > > > > > [1] > > > > http://people.apache.org/~bigosmallm/fxg2svg/buttonskin/flexVhtml5.html > > > > > > > > > > > > > > > > > > > > Mike > > > > > > > > > > > > > > > > > > > > > > > > On Tue, May 19, 2015 at 3:21 PM, OmPrakash Muppirala < > > > bigosma...@gmail.com > > > > > > > > > wrote: > > > > > > > > > On Tue, May 19, 2015 at 11:29 AM, Michael Schmalle < > > > > > teotigraphix...@gmail.com> wrote: > > > > > > > > > > > Ironically Om, this was my next post! SVG and what are we doing > to > > > use > > > > > it. > > > > > > > > > > > > Maybe through all my bable of the last thread some might see > where I > > > am > > > > > > coming from, I am really trying to figure out, what are we > building > > > on. > > > > > > > > > > > > Now SVG I understand, Canvas I understand. > > > > > > > > > > > > Om, what are the pluses and minuses of each paradigm? I was just > > > > reading > > > > > > about this today, canvas doesn't have event handlers, svg does. > > > > > > > > > > > > > > > > Canvas is a fire and forget mode of rendering. Think of Canvas as > an > > > > > equivalent to Flash's BitmapData. Once you draw on a Canvas, you > > > cannot > > > > > get access to individual elements without doing a lot of > complicated > > > > > hittests or other kind of hacks. Moreover, it is a raster object. > So, > > > > if > > > > > you draw on a Canvas and resize it up, it gets pixelated. > > > > > > > > > > SVG, on the other hand is a retained mode of rendering. All > elements > > > > drawn > > > > > in SVG become part of the DOM. This means that you can do event > > > > handling, > > > > > animation, etc. much more easily. Also, SVG is vector drawing. So > > > > drawing > > > > > in any size and scaling keeps the rendering quality intact. > > > > > > > > > > Canvas is generally used for drawing a ton of elements in runtime > > > without > > > > > needing them to be individually interactive. SVG is less > performant > > > > > because of the added dom related overhead on each element, and is > > > > (should) > > > > > generally used for building interactive UI components (charts, > maps, > > > > etc.) > > > > > > > > > > > > > > > > > > > > > > FXG -> SVG, is there currently a parser/renderer for this? How > were > > > you > > > > > > planning on doing this. > > > > > > > > > > > > > > > > So, my first approach was to write an FXG to SVG transformer[1] > > > > stylesheet > > > > > that I imagined would be invoked by the compiler. It turns out > that > > > > doing > > > > > it the 'FlexJS' way was much easier. Basically, I created the > > > > primitives - > > > > > Line, Circle, Path, Fill, Stroke, etc. in the AS side [2] Then, I > > > created > > > > > their JS equivalents [3] where I draw SVG elements via JavaScript. > > > That > > > > is > > > > > pretty much it. The MXML/FXG parsing, cross-compilation from AS to > JS > > > > etc. > > > > > is handled automatically by FlexJS (magic for me ;-) ) > > > > > > > > > > The idea from here on is that anything you draw on the screen via > AS3 > > > > will > > > > > look exactly the same in Flash vs. HTML/JS. Here is an example of > > > flash > > > > > [4] vs html [5] Put them side by side and see if you can tell the > > > > > difference :-) > > > > > > > > > > The next progression was to build FlexJS charts out of these. Here > is > > > a > > > > > set of chart components that Peter Ent built on top of this core > > > graphics > > > > > classes: Flash [6] vs HTML5[7] There is a pretty detailed wiki > page > > > for > > > > > these charts [8] > > > > > > > > > > > > > > > > > > > > > > > > > > > Is this something we could write that would pretty much cross > compile > > > > to > > > > > > js? > > > > > > > > > > > > > > > > Yes, I believe we are at a point where things are getting more and > more > > > > > cross-compiled as opposed to be hand-written. Of course, the > beauty is > > > > > that you can draw in MXML/FXG and you can see a drawing in the JS > side. > > > > > Pretty cool. > > > > > > > > > > > > > > > > > > > > > > Tell me your ideas, I am very interested in this part. > > > > > > > > > > > > > > > > > My next few TODOs are to build a spark like skinning system in > FlexJS. > > > > > Basically create FXG skins on the AS3 side and mirror them with SVG > > > based > > > > > skins on the JS side. Peter has built a small example that will > let me > > > > > play around with event driven, states based skins. I hope to get > on > > > this > > > > > as soon as I get my Git access back. > > > > > > > > > > Of course, the core graphics packages needs more love with things > like > > > > > RadialGradients, and more fancy graphics primitives. > > > > > > > > > > After that I would like to tackle animation. I haven't given a lot > of > > > > > thought into this, so not sure how easy/hard this is going to be. > > > > > > > > > > Thanks, > > > > > Om > > > > > > > > > > > > > > > > > > > > > > > > > > > > Mike > > > > > > > > > > > > > > > > > [1] https://github.com/apache/flex-asjs/tree/develop/fxg2svg > > > > > [2] > > > > > > > > > > > > > > > > > > > https://github.com/apache/flex-asjs/tree/develop/frameworks/projects/Graphics/as/src/org/apache/flex/core/graphics > > > > > [3] > > > > > > > > > > > > > > > > > > > https://github.com/apache/flex-asjs/tree/develop/frameworks/projects/Graphics/js/src/org/apache/flex/core/graphics > > > > > [4] http://people.apache.org/~bigosmallm/flexjs/drawing/flash/ > > > > > [5] http://people.apache.org/~bigosmallm/flexjs/drawing/html5/ > > > > > [6] http://people.apache.org/~pent/chartswf/ > > > > > [7] http://people.apache.org/~pent/chartjs/ > > > > > [8] https://cwiki.apache.org/confluence/display/FLEX/FlexJS+Charts > > > > > > > > > > > > > > > > > > > > > > > See this is my problem, Randori was a straight cross compile > with > > > > shims > > > > > > and > > > > > > > worked awesome. So all my questions to you are like me > "unlearning" > > > > > what > > > > > > I > > > > > > > spent 6+ months working on in that project. > > > > > > > > > > > > > > The compiler's emitter just puked out js and we locked in SWCs > in > > > the > > > > > > apps > > > > > > > that used js API surfaces. > > > > > > > > > > > > > > Although, the one thing as you know was Mike disagreed with > > > FlexJS's > > > > > view > > > > > > > in ActionScript because he said HTML/CSS designers should just > do > > > > what > > > > > > they > > > > > > > do and design in HTML/CSS. > > > > > > > > > > > > > > > > > > > I disagree fundamentally with this idea. For one, HTML/CSS is a > > > > terrible > > > > > > terrible paradigm. No designer is happy with the way things work > > > > > today. I > > > > > > would rather provide a better way of doing the visuals via > MXML+FXG > > > > (like > > > > > > we do in Flex's spark skins) and cross compile them over to JS + > SVG > > > + > > > > > > Canvas as needed. > > > > > > > > > > > > Even the HTML/JS world is waking up to this idea. This > presentation > > > > [1] > > > > > > does a great job of explaining why SVG is better than CSS for > > > > interfaces > > > > > > building. FlexJS is in a great position to provide this out of > the > > > box > > > > > to > > > > > > developers. > > > > > > > > > > > > Thanks, > > > > > > Om > > > > > > > > > > > > [1] > > > > http://slides.com/sarasoueidan/building-better-interfaces-with-svg#/ > > > > > > > > > > > > > > > > > > >