This site is now just an archive over the rise and fall of Flash. The domain is available for sale
Login | Register
Flash MX 2004 - (P)review

Flash MX 2004 - (P)review

Observe: This review/information is based on Beta software supplied by Macromedia. Beta software is not the same as the final product. Features may be added or withdrawn when the software becomes available in mid-september.

Flash MX 2004 is here. More accurately they're here! Macromedia have now split the Flash integrated development environment (IDE) into two products; a standard edition for web and multimedia designers and a professional edition aimed at application developers.

What is it? The 2004 edition of the Flash authoring environment
Platforms: Mac OS X, Windows 98SE, 2000 or XP
Manufacturer: Macromedia
Flash MX 2004: $499 ($199 upgrade)
Flash MX 2004 Professional: $699 ($299 upgrade)
Studio MX 2004: $899 ($399/499 upgrade)
Studio MX 2004 (w/Professional): $999

Standard vs Professional
Although there are two versions it is actually the same application running in one of two modes. If you are using the 30-day trial you can switch between the standard and professional versions at any time. You can even upgrade to the professional version online. The professional version incorporates everything the standard version does with the addition of application development features such as data components, web services and project management.

Flash Player 7
A few weeks ago Macromedia released a public beta of the new Flash player 7. This version boasted considerable performance improvements due in no small part to the register optimisations performed by the new Flash MX 2004 compiler. Among the new features to emerge were mouse-wheel support, context menu customisation and some impressive textbox features including in-line images, flexible hyperlinks, aliased small character rendering and CSS support. Other less visible features included the improved handling of shared libraries (which can now be multi-tiered) and a tightening up of the security model.

Previous versions of the Flash player permitted data to be accessed from any data source originating from within the same domain or sub-domain as the .SWF file. The Flash 7 security model will only consider a data source to be valid if it originates from within the same domain. Before you freak out I should explain that a data source within the same domain is the only location to be considered valid by default. Other locations can by made valid with the deployment of a new cross-domain policy file. This is a small XML file ( crossdomain.xml ) that lives in the root of the domain to be accessed. With this file deployed it is even possible to access cross-domain shared libraries.

This is an important development and necessary if Flash is to keep it's relatively clean security image. On the downside though it's going to kill the consumption of public web services until such times as the providers of those services can be educated and persuaded to put open crossdomain files onto their web server.

Another security aspect of the product is that software activation is now mandatory. Macromedia originally trailed the idea with Contribute 2 and it seems to have been successful enough to be incorporated into Flash. Activation is a one time only deal and can be done online or by telephone at any time within the first 30 days. As a sweetener the licence now allows you to install the product on up to two machines.

The authoring environment
The standing joke used to be that we get a new interface to learn with every new release. I'm glad to announce that MX 2004 has broken the curse. First impressions of the interface are good - it looks really cool. It's obviously had a makeover but the familiar MX panels are still there and it still feels like the same program. The Dreamweaver interface has been pilfered for some workflow improvements so we now have 'document tabs'. The other most obvious interface element is the start page. If you have no documents open this fills most of the screen. At first sight you might be tempted to switch it off but try living with it for a while and you'll find it really useful.

One of the big differentiators of Adobe's LiveMotion 2 was that you could extend the authoring environment. This is also one of the big new features of Flash MX 2004. The Flash JavaScript application programming interface ( JSAPI ) allows third parties (that means you) to develop scripts, commands and plug-ins to extend and improve the authoring environment.

Scripts can be written within the new script editor or any external text editor, then saved out as a .jsfl file. The script editor also supports the editing of ActionScript ( .as ) and Actionscript Communication ( .asc ) files. The simplest way to create a script is to highlight your recent actions in the new History panel and just save them as a JSAPI macro.

The new polystar drawing tool is a JSAPI creation, as are all the new behaviours and timeline effects. The functionality is implemented through a JSFL file, and an XUL (XML user interface language) file generates the user interface. It's simple and powerful so we can expect to see a lot of commercial third party extensions on the market very soon after the product ships.

Improvements to publish settings include the saving of publish profiles, and the ability to browse to an export path. There is a wealth of new templates including most of the new portable devices. The HTML template contains a checkbox for configuring Flash version detection. It's basically an implementation of the Dreamweaver detection behaviours but it's a really nice addition.

Testing metrics have also been beefed up with vastly improved compiler validation (see Actionscript 2), additional size report data and a bandwidth profiler that finally profiles streaming content. A project management tool within Flash MX Professional looks set to improve team working. Users can create a Flash project ( .flp ) and hook this into an external source control system.

File import
Two new Adobe formats ( Illustrator 10 and PDF ) can now be imported into Flash. The PDF import is particularly impressive even on long and complex documents. MP3 ID3 tags are now supported giving access to a bewildering array of obscure metadata. Another sound feature, for use on mobile phones and PDAs, is the ability to map MIDI device sounds to flash content.

The big news in Flash MX was the native video support within the player. Video makes the news again with the ability to stream a Flash video ( .flv ) file over HTTP. The new video import wizard makes it very easy to tweak the file quality for export, and improved encoding allows video at larger frame sizes and higher frame rates than before.

A number of new features go towards improving localisation and internationalisation. There is now full support for Unicode throughout the IDE, and the Text menu sports a brand new spell-checker with 13 language dictionaries. Multi-language development will become easier with the help of the new Strings panel. This unifies the storage of localized text field data across multiple languages. The copy is then stored in language-specific XML files in directories alongside the document.

Another long awaited feature, find and replace does what it says across scenes or documents and will replace text, fonts, colours, symbols, sounds, videos and bitmaps. The ability to search on colour will bring a smile to the face of web designers everywhere. Accessibility gets a boost with more support for Microsoft Active Accessibility ( MSAA ) screen readers.

Firstly the bad news: Flash MX 2004 Components are different from MX components (which of course are different from Flash 5 smartclips). But in this case change is good. Firstly, the standard components are now compiled ( .swc ) files. This makes them faster to work with and greatly reduces clutter, as dragging a component to your library does not add a pile of subclasses with it. Compiled clips are not editable but the source files are included with the installation, which is useful for examining inheritance prior to writing your own components.

Although it's possible to mix AS1 and AS2 components it is discouraged as all the new components have been written from the ground up in Actionscript 2. Not all them are available in the standard version either as Professional users have a number of specialised data access components.

There is a new style of data integration when working with components on the stage. Examining the component inspector panel reveals two new features: a bindings tab and an XML Schema tab. Application data can now be bound to one or more components. Interacting with the component may change the data or reflect changes if the data changes elsewhere. It's a new way of working but after a little bit of perseverance it becomes second nature. The data need not be limited to movie variables either as the new integrated web services panel allows bindings to be made to data sources out with the application (subject of course to the new security model).

Another feature available only to the Professional user is a quick way to develop slideshows and form based applications. These can be created visually using a special timeline and should become a great way of rapidly prototyping an application or experience.

Actionscript 1
MX Actionscript ( AS1 ) is still available (in both versions) and is applied and edited in the Actions window in the usual way. The only real change here is the removal of 'Normal mode'.

We have a few new classes to play with and some of the older classes gain new methods and properties. In addition to the previously mentioned ContextMenu and TextField.StyleSheet classes we have a dedicated MovieClipLoader class and a brand new PrintJob class. NetConnection, Netstream and Video are now native as are the Camera and Microphone objects.

TextFormat.getTextExtent has been enhanced to provide better text wrapping, and we gain two new methods for Array sorting. MovieClip gets a couple of depth handling methods and a new property called _lockroot. This locks the _root property to the root of the current SWF file even if it is loaded into another container. It's going to be a lifesaver after the introduction of Central. And finally System.capabilities gains a pile of new properties.

Actionscript 2
The biggest new feature by far is the introduction of Actionscript 2 (AS2). AS2 is Macromedia's attempt to have Flash taken seriously as an application development tool. Only the Professional version can edit these files, but both versions supports it. For the most part you can't use AS2 in the AS1 Actions window.

Although it uses all of the same classes and methods of AS1 it is structured and written differently. AS2 is entirely class based. Applications are built up in OOP style through the use of inheritance. Classes and interfaces are created in a dedicated Actionscript editor and are stored in separate external ( .as ) files - one file per class. The structure and language is extremely similar to Java and in fact you could learn a lot about AS2 by reading books on Java.

Actionscript 2 is strongly typed and ECMA-262 strict mode compliant. This means it's case sensitive, and supports public and private variables. The existing Flash classes are said to be intrinsic but can be extended by the user to inherit their functionality. Static class and variable declarations are supported (as are dynamic) and inheritance is built up through the use of the new implements (for interfaces) and extends (for classes) keywords.

The import keyword allows reference to other classes and objects within your own classes. Property hiding is implemented through the use of public and private variables and the use of declared get and set accessors.

Variables can (and should) have a defined datatype, as should the input and output of functions. A function that does not return a value can be defined as void. This tight framework allows the compiler to perform far more rigorous error checking than is possible in AS1. Java developers will be very familiar with this form of exception handling - if the compiler encounters a problem then it throws an Error. Error prone sections of code can also be wrapped in try, catch, finally statements.

Although the two languages are now closer than ever, not all Java conventions have been implemented. There is no formal declaration of abstract or final classes, and although method overriding is supported, overloading is not. None of these will cause any problems but it's worth being aware of. Both communities will have a lot to learn from each other over the next few years.

In brief, AS1 is to Javascript what AS2 is to Java. AS1 is a scripting language that plays it fast and loose and AS2 is a formal structured programming language designed to be robust enough for application development.

If none of that made any sense then you probably don't need it - AS1 should do you fine. But 'real programmers' are gonna love it!

Splitting Flash into two versions is a controversial choice and we'll have to wait and see how successful it proves to be. Macromedia have already tried this tactic with Dreamweaver / Ultradev, and since then they have been re-unified, so I guess only time will tell.

There are lots of great workflow enhancements in Flash MX 2004 but Macromedia have clearly focused their efforts on luring enterprise web developers over to the product. Most of the key issues raised by professional application developers have been addressed with the introduction of AS2.


Get new stories first

Click to follow us on Twitter!



No comments for this page.

Submit a comment

Only registered members can comment. Click here to login or here to register