Hey folks, Last week, I created a prototype of some Feathers-like components running on top of CreateJS, but written in AS3 and transpiled with FlexJS.
Here's a little demo: http://joshblog.net/projects/feathers-createjs/demo/ It's 50 buttons that can be scrolled vertically. Click/touch and drag to scroll (like a mobile app). Nothing amazing, but I think it shows the potential. I tested scrolling performance on several devices. It maintains a good 60 FPS on my Nexus 5 and iPad Mini 3. It's still quite smooth on a couple of three-year-old devices (Nexus 7 and Nexus 10 from 2012). For fun, I also tried it with the original Kindle Fire from 2011, but that was super slow. I suspect that this device's browser isn't capable of drawing canvas with GPU acceleration, though. I found that I needed to make one particular optimization to get the best performance. Most events dispatched by a Feathers component in this demo come from an object pool so that event objects can be reused. This boosted FPS on mobile devices a lot, in the same way that it helps in Starling. Garbage collection (and possibly allocation, to some degree) is a performance killer when it comes to UI. Scrolling is powered by the Zynga's "Scroller" JavaScript library. I simply made some externs for it. Being able to pull in existing JavaScript libraries is really nice. I put the source code for this experimental version of Feathers up on Github: https://github.com/joshtynjala/feathers-createjs You'll see that there are some workarounds for bugs in the transpiler (which I've reported), but overall, it looks like regular old AS3 that you'd write for the Flash runtimes. It felt really nice to bring my AS3 skills to a different environment. - Josh