This site is now just an archive over the rise and fall of Flash. The domain flashmagazine.com is available for sale
Login | Register
The Ying and Yang of Flash

The Ying and Yang of Flash

Tucked away in the Pavilion this session from Adobe's 'Senior Director of Engineering' Paul Betlem and 'Technical Product Manager for Flash' Richard Galvan, was always destined to be packed out. Whilst the keynote on day one covered the big features of CS4, this talk focused on the smaller features and workflow improvements that go with them. Surprisingly, it proved just as full of insights into the workings of Adobe as it was of their new products.

Richard Galvan and Paul Betlem

The Ying and Yang of Flash

Richard Galvan opened with a look at how the new Adobe standard UI (or OS Widget Library "OWL") has improved workflow in Flash CS4. For example the new coloured numerical property values in the UI are known as "hot text". Their values can be updated quickly by clicking and dragging, re-typing the value, or even by entering calculations such "+10" which would add 10 to the current value of the property.

 

image

 

A Kuler panel is now standard in most products in the CS4 suite. A few new library features also caught our attention. Library symbols can now be created directly into the library, and a new multi-select feature allows you to update the properties of multiple library items at the same time.

There are a couple of additions to Publish Settings, namely compilation constants and path settings for SWC libraries. We're told the SWC support will include support for AS3 Flex SWCs. The (Boolean) constants will allow conditional compilation based on config variables in the FLA using the syntax CONFIG::MYBLOCK{}.

 

image

 

Moving on to the big guns Richard explained the difference between local and global 3D translations. Any translation performed in global mode will be applied relative to the stage, and translations in local mode are performed relative to the MovieClip or the "local object space".

 

image

 

Looking at Inverse Kinematics features we were shown how a single symbol can be deformed using a series of IK bones, and how the Bind tool can be used to control individual points within a bone. When editing with the bind tool a square icon indicates the control point is connected to single bone and a triangle indicates it is connected to multiple bones.

Richard finished by looking at the new motion tween model and how it makes animation simpler and quicker. Path transforms and the motion editor were largely a repetition of the keynote but then he dug deeper into how you add and move and remove frames, and how you can split animations in two.

Paul Betlem's presentation looked not only at the features in Flash Player 10 but also at the culture and philosophy of the Flash Player development team. He started off with the expected news that Flash Player 10 will ship alongside CS4 but with an accompanying dot release online. He also noted that Flash Player 9 Update 3 (9,0,115,0) aka "MovieStar" was already at 90%.

 

image

 

Looking at the philosophy of the Flash Player team Paul elaborated on how they approach their releases. Key considerations for them are cross platform compatibility, backward compatibility forever (except where that would compromise security), code size and simplicity.

He also revealed the rationale that guides whether a feature request makes it into the player. The team have an overall 3 year strategic plan and within that they consider whether a feature will be compelling with broad appeal, robust and extensible, and aligned with the platform. In terms of the language, if a feature can be implemented in Actionscript then it will probably be left out of the player.

This attention to detail is what makes the Flash Player a minor miracle. "Vellum" the new text engine fits in around 30K, in fact the entire feature set can still be crammed into under 2Mb. It's this kind of achievement that has built the teams reputation within Adobe. When Paul asked senior management for some feedback on the Flash Player dev team, he received comments ranging from high praise and admiration to the hilarious, "a bit secretive" and "they also drink a lot". Dev team, we salute you.

 

image

 

Moving on to Flash Player 10 aka "Astro" (almost aka "Bacon") Paul ran through the new features and related a few stories from the engineers that had worked on them. Pixel Bender integration for example was the work of Kevin Goldsmith and Tinic Uro, and the idea originally came from an initial post-merger meeting the Photoshop team. Paul related how Tinic had made three attempts to get the best performance out of the new AVM2 JIT and how he eventually managed to get it to out-perform the native C++ LLVM!

 

image

 

The Drawing API was the work of Lee Thomason and again the desire for simplicity was the biggest challenge: he wanted it "fast clean and elegant". As an example he showed the amazing cloth demo produced by Sr. Product Manager for Adobe Flash Player, Justin Everett-Church.

 

image

 

Scott Peterson of the Adobe Advanced Technology Group is the brains behind FlaCC, a C and C++ compiler that produces ActionScript bytecode. You may have seen the Quake demo that runs inside the Flash player. His greatest achievement has been getting the compiler to produce bytecode that is ten times faster than AS3, and only two times slower than native code. He cited the Nintendo emulator as his favourite demo which Paul pointed out goes through all of these stages but still runs at a decent speed: 6502 > CNES emulator > LLVM > AS3 > AS byte code > Tamarin Central IR (JITed to) > Flash player.

 

image

 

Every story was a one of true geek heroism. Tinic's work on dynamic audio, Abanov's on dynamic streaming and Chris's work on the 3D API.

 

image

 

Dev team again, we salute you!

 

Get new stories first

Click to follow us on Twitter!

 

Comments

No comments for this page.

Submit a comment

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