by Justin Everett-Church
As senior product manager for Adobe Flash Player, I am really excited to tell you about Flash Player 10 beta. But before I drill into new features and improvements, I want to encourage you to download the prerelease version of Flash Player 10, code-named Astro, from Adobe Labs.
Now that you've downloaded Astro, I am ready to deliver the inside scoop. As you can imagine, we receive a lot of feature requests from designers and developers and from Adobe employees. My favorite part is selecting features to include. And of course, my least favorite task is identifying features that will be delayed until the next release. With all the great ideas for Flash, both the in and out lists get pretty long. One of the best ways for a feature to make the cut, however, is for it to open up new possibilities.
As an example, we get plenty of requests from customers for new gradients, new filters, and new blend modes. Each user had specific goals in mind and would champion a conical fill or the need for a directional blur. Honestly, we could have made Flash Player 10 all about filters if we had tackled each request individually. Luckily, a centralized team at Adobe created a fantastic technology, Adobe Pixel Bender, which lets us incorporate the ability for designers to add their own fills, blend modes, and filters to their SWF files instead of having to bake them into Flash Player.
This is exciting because with one feature we have essentially added an infinite number of filters without making users wait for another release or making Flash Player bigger. We can now concentrate on making the underlying technology better so creative people can make more and better filters without being tied to a Flash Player release. This feature gets even better, though, because Pixel Bender can do more than just image manipulation. It can do math computation, and when combined with other features, it can also do audio filters. It can do all this before the community has even touched the technology and extends it in ways we haven't even thought of.
As you read about all the new features in Flash Player 10, keep in mind that each one has been designed to be a flexible multitasker in your arsenal of creative tools. I can't wait to see how you use them.
Creative expression has been the cornerstone of Flash since its creation. As its focus has been expanded to include application development, games, and video, we haven't lost sight of the fact that whatever type of content you are working on, design and experience are important. The features below are new capabilities of Flash Player that will help you make exciting and intuitive interactions.
You can create your own portable filters, blend modes, and fills using Adobe Pixel Bender, the same technology used to power filters and effects in Adobe After Effects CS3 software. Custom filters and effects can be combined with existing native Flash Player filters and applied to all display objects, including vectors, bitmaps, and video, while retaining full interactivity. Custom effects can be parameterized to animate and change the effect at runtime. Even for big effects, the code will be small; most filters are smaller than 1K, meaning you can use them with even the most stingy file budgets without bloating your application.
In addition to image filters and effects, Pixel Bender can be used to process other types of information. With new capabilities in sound, you can write live audio filters or just use the power of Pixel Bender's number crunching engine to process data asynchronously in a separate thread.
Add a new dimension to your applications and extend the creative possibilities by easily transforming and animating any 2D display object through 3D space, while retaining all of the interactivity that exists in 2D space. Create complex effects with simple code by nesting 3D-transformed objects inside each other. Inheritance makes it easy to rapidly apply changes across objects in intuitive ways.
For users who are looking to work with 3D on a lower level or for those that use community 3D engines, Flash Player 10 includes new capabilities in the drawing API to draw a complex shape out of a series of triangles, mapping textures through the use of UV coordinates.
A new, highly flexible text layout engine, co-existing with TextField, enables innovation in creating new text controls by providing low-level access to text layout and interactivity APIs to create component-level text objects. The new text engine expands creative freedom by treating device fonts as first-class citizens that can be anti-aliased, rotated, and styled and have filters applied as if they were embedded. The new text engine also offers right-to-left and vertical text layout as well as support for typographic elements like ligatures.
With new features like triangle support and the ability to work with Pixel Bender, the drawing API has a lot more power. In addition, we have added APIs to make calls to the drawing API more efficient, meaning a lot less code and a much faster drawing engine.
Flash Player 10 builds on the dramatic script execution performance improvements introduced in Flash Player 9 with the new ActionScript 3.0 Virtual Machine (AVM) by enhancing the equally important visual performance of your RIAs and rich media experiences. Leveraging the power of the GPU for blitting and compositing reduces the load on the CPU and can provide a performance boost to many graphically intense applications, resulting in more fluid, realistic, and responsive user experiences.
In Flash Player 9 Update 3, the first hardware acceleration capabilities were added to Flash Player through hardware-scaled full screen. In Flash Player 10, the same performance gains will be delivered to the browser window through new hardware-based WMODE HTML parameters. The direct WMODE will use your video card to paint pixels to the screen as fast as possible while freeing up your CPU to work on other tasks. The GPU mode works with newer video cards to do much more of the work of transformation and compositing on the video card.
An update to the Saffron anti-aliasing text engine increases performance and quality of anti-aliased text, particularly for Asian character rendering. Support for stroke fonts reduces memory requirements.
Flash Player 10 and ActionScript 3.0 add support for a new data type called Vector that is an ECMAScript 4 proposed language addition. It is similar to an Array but requires that all elements be of the same type. By having a consistent type, performance on Vectors is significantly higher than Arrays.
Flash Player 10 introduces new audio and video features, some of which will be available with intended future releases of Adobe Flash Media Server or other Adobe server products to optimize the delivery of rich media and enhance end-user experiences.
Work with loaded MP3 audio at a lower level in Flash Player 10 by extracting audio data as a byteArray and supplying it to the sound buffer. The new audio APIs enable you to do application-level audio compositing and even audio filtering with Adobe Pixel Bender.
Always show the best video possible with streams that can automatically adjust to changing network conditions. By changing bitrates, you can keep users engaged and avoid start-and-stop video. Dynamic streaming provides the best possible experience to video consumers based on their bandwidth environment. Video streams over RTMP from intended future releases of Flash Media Server and can dynamically change bitrate as network conditions change.
RTMFP provides a UDP-based secure network transport alternative to RTMP-over-TCP. To take advantage of the feature, you will need to establish a NetConnection via future releases of Flash Media Server or other Adobe server products. See the RTMFP FAQ (PDF, 166K) for more information about the new Real Time Media Flow Protocol feature in Flash Player 10.
The new, higher fidelity Speex voice codec offers an alternative to Nellymoser for audio that delivers the lowest-latency audio experience possible. When RTMP or RTMFP is used with future releases of Flash Media Server, live and unbuffered Speex transmissions will take advantage of RTMFP's partial reliability feature to reduce network latency.
In addition to the new creative expression, visual performance, and rich media features, Flash Player 10 includes several new features and enhancements that have been frequently requested by the community.
This new ActionScript 3.0 API adds unload functionality similar to the unload behavior in ActionScript 2.0. After calling unloadAndStop on loaded content, it will be immediately removed stopping all audio, removing eventListeners, and becoming inaccessible through ActionScript.
In Flash Player 10, key events are supported for nonprinting keys such as arrows, Shift, Tab, Space, and so forth. Limited access to the keyboard will allow full-screen games and video controls with keyboard access in a secure way.
Bring users into the experience by letting them load files into your RIA. You can work with the content at runtime and even save it back when you are finished through the Browse dialog box. Files can be accessed as a byteArray or text using a convenient API in ActionScript without roundtripping to the server. You no longer have to know a server language or have access to a server to load or save files at runtime.
Flash Player 10 now provides the ability to manipulate larger bitmaps, up to 16,777,216 pixels (4,096×4,096) with a maximum length of 8,191 pixels per side.
We'd like your help in making this the best Flash Player release ever. Simply download the beta and visit all of your favorite sites, as you normally would, to make sure SWF files work correctly — and, if not, report issues to us via the Astro page on Adobe Labs.
Note: Flash Player 10 beta is available in all supported languages; however, the prerelease installers are only in English and we can accept feedback only in English at this time.
We appreciate and look forward to receiving your feedback.
Justin Everett-Church is Sr. Product Manager for Adobe Flash Player.