Greetings all. I've been working on an MXML bundle for the creation of Flex apps in Textmate. I know work is also going on to support Actionscript3, and I think that dovetails nicely with the bundle I've made (isn't that the magic of TM!?)

But with all these projects going on and Flex gaining popularity, it probably makes sense to have a Community Discussion™ about how we want to address Flex in TM down the road.

For those not up to speed on Flash/Flex/MXML/etc, here's the quick lay of the land:

Flash: a binary file format (.swf) read by a Flash Player (usually a web browser plugin). These files are most often used to present some sort of vector animation, but because of the scriptablility of Flash files and the Flash Player's ubiquity, there's also the possibility for using Flash as an application development platform.

Traditionally Flash binary files had to be created using the Flash authoring application sold by Macromedia (now Adobe). Textmate thus has little to do with the authoring of Flash files, per se. BUT...


Flex: is the name of a group of technologies that allow for the declarative construction of Flash files. Before Flex, you had to buy the Flash authoring application to construct Flash files. Unfortunately, the Flash authoring application was designed for animators, not programmers. Many developers found it bewildering and couldn't use it for application development.

To remedy this, Macromedia/Adobe created Flex. With Flex you can write source code that that describes what you want your Flash to look like, run it through the Flex compiler, and a Flash binary file comes out the other end. Flex lets programmers create Flash files in a way familiar to them: write source, compile, execute. Textmate has little to do with Flex itself, but it has everything to do with the "source" files used to create Flex applications. Namely:

o MXML -- an XML-based format used to define the structure and general appearance of the Flex app. o Actionscript -- an ECMAScript variant used to define behavior and provide interactivity to the Flex app.
o CSS -- used to style the Flex app.

These three formats work together just like HTML, Javascript, and CSS do in a web page. MXML provide the structure and is the "main" part of the Flex application. MXML files can include inline Actionscript and CSS code, or can import whole Actionscript/CSS files just like HTML can inline or import Javascript/CSS.

It seems to make sense, then that we develop Flex support in Textmate just as we have developed web support -- there's an HTML bundle, a Javascript bundle, and a CSS bundle, and control is passed between them depending on the scope.

This is the tactic I've adopted in my MXML bundle. It's based on the XML bundle, adds a bunch of MXML-specific things, and passes control off to the Actionscript bundle whenever it comes across a <script></ script> block. As soon as the AS3 bundle is ready, it will punt to that, instead. And I'm about to add the code that hands off to the CSS bundle tonight or tomorrow. In my humble opinion, this works really well.

But what do the rest of you think?

Cheers,
-Joshua Emmons

P.S. For those using MXML bundle, know that version 0.5 is now out. I've added the ability to look up MXML tags in Adobe's online documentation. Also, the Help command that was accidently left out of the last version (doh!) is now back in there. Just in case you were confused.

You can get the latest at http://www.skia.net/media/mxml-0.5.zip


_______________________________________________
textmate-dev mailing list
[email protected]
http://lists.macromates.com/mailman/listinfo/textmate-dev

Reply via email to