FlexJS: Flex for HTML/JS/CSS

In case you haven’t been following the activity over at Apache Flex, several of us have been working on something we’re calling FlexJS, which is a version of Flex that will cross-compile MXML and ActionScript 3 to HTML/JS/CSS so it can run natively in the browser without Flash and potentially as PhoneGap/Cordova mobile applications.

The latest writeup is here.

You can follow progress on FlexJS by subscribing to the Apache Flex “Development” mailing list by following these instructions or by monitoring the Nabble forum.  There’s a lot of traffic on this list or forum, but FlexJS-related emails will be prefixed with “[FlexJS]” if you want to filter for it.


2 thoughts on “FlexJS: Flex for HTML/JS/CSS

  1. Aaron Beall

    Sounds interesting! If my memory serves me there have been a few attempts (including more than one by Adobe?) to get Flash/Flex projects compiled/translated to HTML/JS that have never been completed, hopefully this one will get some real Apache traction and go somewhere awesome. I think the idea of having parallel target frameworks from a single source code base like you described is the right direction!

    However, the skeptic in me really wonders about the potential results…

    1. How will you deal with features that HTML simply doesn’t support? Some things can be faked even if rather obtusely, like 9-slice scaling, but others not so much, like DOM level blend modes and filters, alpha jpgs, [real] masking, or the various audio/video features not supported by HTML and tags today… not to mention huge differences in text support (SWFs can embed any font you want!) — the list of disparities gets pretty long. Will such features be allowed in Flex but simply not work in HTML, or will they be disallowed across the board to make it truly cross-platform?

    2. Will the HTML target have configurable levels of browser support? Say you want to target 90% of browsers, you can’t use the bleeding edge HTML/CSS features that are supported by few browsers in the wild. Or will the HTML framework be hard-coded against a certain expectation of browser support? At what point is the HTML framework not supported in a browser (for example, IE 6 is often not supported today) and how is that handled (messaging, etc)?

    3. One of the strong points of the Flash Player is the incredible power over visual presentation. In Flex you have extensive skinning features that make use of this. You can really get every pixel perfect. Is it a goal to maintain this level of fidelity in the HTML framework, or will components potentially look completely different in HTML?

    4. What is the mobile strategy? In my opinion, the need for HTML output is 1:1 linked to mobile browser support. Desktop browsers have the luxury of the Flash Player, so HTML isn’t necessary, and mobile apps are covered by AIR, so PhoneGap/etc is not really appealing to me. And because you’ll be writing all source code in MXML/AS3 regardless of the output, it would make even less sense to me to output HTML where you don’t have to in cases where you would normally have to because the source code is in HTML and you have no choice. So, what I would want, is a way to build mobile browser apps (the one hole in the Flash Player platform) that re-uses AS3/MXML from my desktop browser app via HTML output, rather than needing to start over with HTML source code. That’s the major pain-point today that a project like FlexJS could really blow away. I’d love to hear the specific goals in regards to mobile browser support.

    I have more thoughts but this is already rather long! More power to you guys, I do not envy this task you’ve undertaken but I hope that it goes well and will be watching! Cheers.


    1. aharui Post author

      Good questions. My answers:
      1) The goal isn’t to create Flash-like experiences per-se, only the application-like experiences that are do-able. So yeah, if you’re app relies heavily on 9-slice scaling, blend-modes, etc., then it won’t work well on FlexJS. Hopefully, you will be able to use those features on the AS side and not the JS side by setting up different configurations in your CSS.
      2) There will be different component sets that have different browser requirements. Right now, the main focus is on IE8 and newer, and an HTML5-dependent set. No plans for older browsers at this time.
      3) Not sure how pixel perfect we’ll be, certainly not in early releases. But we’re using a lot of absolute positioning which seems to have pretty good consistency between browsers. Again, the goal isn’t to replicate Flash, just to make application-like experiences work.
      4) So yes, the demo works on mobile browsers today. AIR has some limitations in mobile, so PhoneGap covers some of those so you’ll have choices to make. I’m not sure what more you want to know about mobile browsers, but yes, once you have HTML output, it should “just work”.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s