The latest update to the Flash Player from Adobe Systems has been released for general availability. To take full advantage of many of the new features, developers will have to wait for the release of Flex 4 sometime next year. However, Flash 10 does bring four main improvements that should interest developers: Pixel Bender, 3D Effects, Advanced Text Layout, and changes to File Reference API.
Pixel Bender has been added to allow for creating advanced effects:
The Pixel Bender technology delivers a common image and video processing infrastructure which provides automatic runtime optimization on heterogeneous hardware. It currently ships in After Effects CS3 and will be used in other Adobe products in the future. Flash Player 10 will leverage Pixel Bender to enable developers to create custom filters, effects and blend modes. To see Pixel Bender in action, go to the Flash Player 10 feature demos (Flash Player 10 Beta required).
Pixel Bender is a programming language used to implement image processing algorithms in a hardware-independent manner. Some benefits of Pixel Bender include:
- Familiar syntax that is based on GLSL, which is C-based
- Allows the same filter to run efficiently on different GPU and CPU architectures, including multi-core and multiprocessor systems
- Abstraction of the complexity of executing on heterogeneous hardware
- Supports 3rd party creation and sharing of filters and effects
- Delivers excellent image processing performance in Adobe products
Built in support for 3D Effects will make it easier to build advanced components, like the frequently implemented CoverFlow component.
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. Fast, extremely lightweight, and native 3D effects make motion that was previously reserved for expert users via ActionScript or Open Source libraries such as PaperVision3D, Sandy and Away3D available to everyone. Create complex effects with simple code by nesting 3D-transformed objects inside each other. Inheritance makes it easy to rapidly apply changes across objects.
Relief for what has traditionally been a challenge in Flash applications comes with the Advanced Text support in Flash Player 10. Adobe Product Managers Justin Everett-Church and Tom Barclay discussed this update with flashmagazine.com:
"The new player offers low level APIs so that developers can create their own text controls and text layout components" Tom says, "If they want to do something sophisticated like create text on a path, they'd be able to do that using the new APIs of the text engine. It also allows you to treat Device Fonts as first class citizens now. Just like embedded fonts, you can stylize them, antialias and apply effects." The new API will also allow Adobe to build text layout components that will be provided later this year, that Flash and Flex developers can use to create things such as multi-column scrollable text that flows around inline images. "We'll have text orientation, vertical text layouts, bidirectional text layouts for Chinese / Hebrew / Arabic [languages] and support for complex script and ligatures". Tom says and Justin adds "on top of that we have the ability to add tables, inline images and that sort of things, so you'll get a lot more control than you were previously able to do using the textfield."
The File Reference API has been updated to allow for managing files client side (i.e. without sending them to the server). Adobe's Justin Everett-Church also discussed the File Reference updates with flashmagazine.com:
"In the past we have the ability to load the file that a user choses and then send it directly on to the server, but now in Flash Player 10, we're granting access to files at runtime" Justin says. When asked if this applied to any file, he replied "Sure. Once it's been loaded in, it can be accessed either as a bytearray or a string. And the other side of that is that you can take content from the runtime and save it back down. So [in this app] I'm using an Actionscript library for doing PNG encoding of bitmapdata and I'm passing that in and through the FileReference object to save a PNG image to my desktop."
Read more in the Adobe Press Release.