Degrafa for Flex Looking Pretty Sweet (AS3 and Commonizing Paths Graphics Pipeline for Silverlight and Flex)

Just recently through the holidays Degrafa has made some great strides as a very cool SVG pathing and designers toolkit for Flex. I have to say some recent Flex apps have really looked good like Picnik and Buzzword but this kit looks to clean up the lack of design and default style-itis that has plagued most common Flex Apps.

This so far looking like a pretty strong kit for bringing the designer pipeline into Flex to provide some really nice looking web styled apps. It has a direct crossover to Silverlight and Path objects that are largely just a series of data created in Expression or exported from Illustrator into XAML. The one benefit of Flex/Flash is it compiles to a very small SWF where with Silverlight you have to package the XAML in a zip and use the downloader object to extract it out. These XAML files and Paths can get massive as I am sure the ones for Degrafa will for Flex but the compile option is nice as it is compressed heavily.

All about Degrafa

Yes the launch includes shiny buttons…

Sphere Sample (right click for source)

Also, it appears it is a way to bridge the pathing and pipeline for flash or Silverlight. At one of the contributors blogs they mention this:

We have lot of interesting features planned for the coming releases. There is also a converter app that will be made available for converting the juicy Degrafa graphics to XAML.

Degrafa has gone live.


Good Usable RIA Applications in Flash and Silverlight

Flash and Silverlight allow developers to make amazing tools, they allow creative expression and they also are usually a bad user experience many times.

Lots of that is changing as more applications are made and frameworks like Flex and Silverlight progress. Much of the needed performance is now available for Flash/Flex in AS3 and the AVM2 virtual machine that runs it, making full applications much faster for all actions that might have been a drag in AS2 and vector based application’s of the past. Some great tools were made with this still that were usable like gModeler a flash based UML modeling tool but the performance boost will make these applications even more usable for mainstream.

Some great examples of user friendly apps where the flash or the silverlight element doesn’t blind the developer from usability. These applications might really have a market for general users of applications from advanced depending on feature set as long as they are usable.

buzzword (Flash/Flex/AS3)

Is a word processor that is really well done. This is made with Flex and everything from validation to the toolset is very usable and clean. I use Google Docs and haven’t looked back for about a year but this application is a nice change to web editors for documents at the current state. It included all the usual basic functionality and great new zoom, revision history and sharing tools that web office tools like word processors has come to expect. Be sure to try this one.

scrapblog (Flash/Flex/AS3)
scapblog is a bloggy/presentation that is a great template editor and the tools are broad and expected from users including great integration with the web for photos and video at major sites such as photobucket, flickr, etc.

Google SearchMash (Flex/Flash/AS3)

This is a Flex 2 (actionscript 3) application that is very fast and usable in vector.

Sample Textured 3d Vista demo(Silverlight 1.0)

This demo showcases the speed of Silverlight and a usable OS like interface that performs well. It showcases Silverlight but also has great usability in expected user actions and results.

tafiti (Silverlight 1.0 demo)

Tafiti is a search tool that uses SIlverlight and live search to represent search results in a rich way. They did a pretty good job with usability and especially considering the Silverlight 1.0 lack of good input controls. Little bit laggy.

The point is solution developers should use technology but most importantly make it functional and usable to what users expect. RIAs will succeed very well as long as you can select text, hit back buttons, deep linking, use menu systems, integrate services, have all the features of apps not in vector engines like Flash or Silverlight and to make it mainstream friendly they need to have a low bar of entry and just work. RIAs have an advantage right now as office apps move to the web and photo apps as well, many of these apps above would appeal to general computer users in addition to advanced users.

Vector Wars Update: HD Video for Flash9 and Silverlight

Flash Performance and HD (H.264) Video Progress

Fast performance is needed for good video combined with interactivity especially. Quickly comparing AS2 to AS3 shows that AS3 and the AVM2 virtual machine in Flash9 is much faster. If you are combining Flash and video especially when it is time to go HD, you will need performance.

Compare AS2 to AS3 rendering: AS2 & AS3 Note the as2 item only has 10000 pixel operations, the as3 item has 50,000 and is considerably more usable, in fact the AS2 version isn’t usable since it is slow. [source] This is a good test because it checks the movement of every pixel on the screen which leads me to video performance.

Flash HD in the FLV format is pretty nice looking today in Flash9 with AS3. But to keep up there are more formats and a move to support H.264/MPEG-4 AVC I am sure for online TV/Movie market.

The reason to bring up performance and video is because the video battle on the web is heating up even more between Adobe and Microsoft with Flash Video and Silverlight Video. The recent released info regarding HD on Flash is to combat Silverlight HD video that is looking pretty good.

Silverlight Performance and HD Video VC-1

View this Halo 3 video in Silverlight HD:

View it->

Recently Silverlight came out last week officially on Wednesday, really the 1.0 release is just a video and javascript release but when you view the videos below you will see that they have a short coup de tat on Flash video at the moment in terms of HD quality video.

Silverlight also has been pushing TV on the internet. See these samples that are actual TV on web pages already using Silverlight.

  1. Home Shopping Network Online
  2. ET Emmy’s coverage
  3. They also have WWE and baseball already using Silverlight video.
  4. Netflix online video uses Silverlight

Flash video is cool and you can do great fun things like (flash 8) and high definition FLV video in flash9 with AS3 and on occasion AS2 if it is just video with full screen flash but when you are talking TV and movie quality, it is still up for grabs but both are looking good especially Silverlight and that Halo 3 video.

Flash video is updating to H.264

Tinic Uro reports the beta player of flash that has HD now. Currently the FLV format is the web leader (you tube, Google video) but is not as good quality as Silverlight until they update to H.264 at least in terms of standards video. This is probably 6 months off?

Video literally changed in the internet in the last two weeks with the Flash announcements and Silverlight launching. I am surprised at Silverlight’s adoption rate and partnerships so far with the 1.0 offering which lacks many programming tools, but I see why on the video front why they did it. When 1.1 comes out it has all the programmer toys, and it will attract a lot of attention I think. It is all about performance and HD video right now.

Yes yes… Quicktime has done HD/H.264 video for a while but Quicktime is just a video format really, it will be able to be used in the new flash video as well as other formats but it doesn’t have the interactive platform behind it like Flash and Silverlight have.

The difference is the choice of format and standards. Silverlight with VC-1 and Flash going to H.264 codec. They are largely competing standards that are both “HD”.

The good news is we have competition to bring really high quality video to the web, the mashups with HD video in interactive games, demos, advertising etc will be very fun.

AS3 PDF Creator AlivePDF Released

Thibault Imbert from ByteArray released the first PDF Creator for AS3 / Flash 9 called AlivePDF.

The new BinarySocket and ByteArray handling adds essentially no limit to the imagination of what is implemented in AS3. Non programmers might not understand the immense power that brings to this language and platform in AS3. Essentially it allows creating and reading binary to manipulate any file type.

AS3 Geom Class Exporter for 3ds max to PV3D, Sandy and Away3D

shirotokoro has created something interesting in the view of a pipeline for getting assets from 3d into the new Flash 3D engines with a Geom Class Exporter for 3ds max for PV3D, Sandy and Away3D.

One of the difficulties is the DAE/COLLADA and ASE imports dynamically at runtime in Flash 3d Engines sometimes takes some work to clean up the 3d objects in COLLADA xml or the ASE or 3ds if you are Sandy. But this takes that step out of the process and exports 3d models straight to flash 3d engine object scenes.

This is great for models that don’t’ need to be dynamically imported/parsed (which takes lots of time usually to parse the DAE in flash). I am not sure how detailed or elaborate the models can get as I haven’t had a chance to play with it yet but it is an interesting idea and development but the cat samples he has are fairly complex for a flash 3d engine and they look great. I think this can be used elsewhere preparing objects for 3d in flash as precompiled movieclips already. Maybe even a turbosquid like market for flash 3d. This could be fun.

from shirotokoro via pv3d list:

AS3 Geom Class Exporter is a 3DS Max designed script that allows you to directly export 3D models to AS3 classes.

he benefit is that you don’t need anymore to load and parse a texte file (ase, obj, 3ds).
You just have to import the class and to create an instance, like you do with usual objects like plan, sphere and box classes.

This script is compatible with the following AS3-3D engines :

Sandy 3.0
Papervision 1.5

Installation :

Download zip file and unzip in any folder.
In 3DS Max, tools tab, open the maxscript panel and click the “execute script” button.
Select the script. It is now displayed in the available scripts list.
Select it, a new AS3 panel “AS3 geom Exporter” appears.

Options :

- Package : the exported class package
- ClassName : the class name
- Engine : the 3D engine you want to use
- Scale : scale the 3D object
- Swap face normal : with some 3D models, the faces export is swapped, you can fix this by selecting this box.

Here are rendering examples of an object in the following 3D engines :

Download demo sources and 3ds max script


Thanks shirotokoro !

Comparison of Papervision3D and Away3D and Current Flash 3D Engines

mr doob has posted a first away3d verses papervision3D test for the same model and found pv3d to be faster than away3D. Who wants to take the source and test it on Sandy?

Disclaimer: Test can vary on types of content and different systems or browsers to it is not a definitive test just one test, more will be coming and the faster it makes engines the better for adding more content to each project.

Papervision3D (src): 14FPS, Memory: ~8,5Mbytes
Away3D (src): 10FPS, Memory: OPS!
Away3D (CORRECT_Z_ORDER) (src): 5FPS, Memory: OPS!

So far there are a few good flash 3d engines But it will all come down to performance for the best.

The top three are the only ones viable for full screen and projects that can cross into the commercial realm, other pixel level systems like scanline z-buffers in flash are really just tech showcases right now.  The fast and dirty Painter’s Algorithm of Papervision and drawing things the fastest wins out when dealing with software rendering and processor based graphics.  When and if 3d acceleration is added, that will change the game immensly.

3D Materials, Texturing and Mapping in AS3 and the Limits of Flash and Software Rendering

Who’s got the textures and cool chrome shiny 3d objects in Flash? There have been lots of materials work recently from papervision list developers and away3d developers (away3d is a branch of Papervision3D) and recently it is heating up a bit.

Early on on the papervision3D excitement, flash possibilities in 3d with AS3 specifically, much of that was due to 3d in flash but also the ability to texture and have bump mapping, toon rendering/cell shading and other neat effects like baked lighting, faked real-time lighting, video and movieclips on flash 3d objects and animated textures.

But when it comes to environmental mapping and true 3d reflection that might be simply stretching Flash to a limit that might require hardware acceleration but that isn’t stopping some.

I am not sure if environmental mapping will every be possible on a large scale without hardware acceleration. Pushing the limits could help influence Adobe to the market direction. But then again I never thought I would see the level of 3d in flash that we have and maybe in 2-3 years with multi-core processors it will be possible.

Here’s a snapshot of the current materials and environmental mapping (fake and real attempts).

UnitZeroOne first environment mapping /bump mapping:

Some toon renderings from UnitZeroOne

Recent work by mr doob




Weird 2

Recent work by actionscript architect

Perlin noise algorithm to animate texture real-time into water effect

More environmental mapping effects by the away3d materials developer Fabrice. Fabrice and the away3d developers are really taking off with the papervision3d core. I am seeing lots of engine limits tested and some great work at away3d.

Bumpy Meteor

Flat Lighting on bitmapMaterial

Chrome Ball (dont’ zoom in too far :) )

Did your processor melt yet?

I think that for games and flash effects faking it or real environmental mapping will have to be judged by what is needed for your purpose. I think that Flash player on software rendering can only go so far. So if you have real-time environmental reflections and surroundings it doesn’t always make your gameplay better and it won’t make your demo better if it means removing assets in other areas to make up for the performance drain of software rendering and the pressures it puts on the processor or browser plug-in.

You can still make really killer effects with baked animations, fake environmental mapping, faked dynamic real-time lighting and other effects. Flash, nor silverlight, will not be able to match hardware rendered shaders, per pixel lighting and physics anytime soon. But people are making good progress on this. I think it would be great if hardware acceleration were added to both Silverlight and Flash, with that, a brand new massive game market online, and it will be game on!

Best Of Commercial Flash Papervision3D (yet)

Here’s some of the best commercial Papervision3d projects so far
(all commercial papervision I have seen so far has made theFWA):

1)  The Brahma Bus interactive project
       by Russian firm PARK Studios.

Customize your own VW Bus, received theFWA recognition.

2) Eye Project
Takayuki Fukatsu aka fladdict

This is a killer use of pixel color mapping to video overall color.  It has papervision in the archives where it uses some more really well done pixel manipulation effects, received theFWA recognition.

3) The Net Eye interface (based on pv3d sample PaperCloud)
      by Neteye

Nice interface based on a pv3d sample project, received theFWA recognition.

*** The authors of papervision3D also have some of the coolest demos with it as well listed here.

Carlo Ulloa (based on pv3d sample Focus – by far the best)
      by Carlo Ulloa

Papervision3d homepage Shark Demo (wait for it, wait for it…)

Very First Papervision3D Star Wars Game by John Grden.

Also the original shader demos by Ralph Hauwert were killer.

About Vector/Web 3d

Papervision3d created by Carlos Ulloa Matesanz, Ralph Hauwert, and last but not least John Grden has really hit a development and design nerve, along with AS3 finally being ready for primetime. People are really excited about projects like this and it just goes back to my point that in the Vector Wars (Adobe vs Microsoft (haxe making a little noise in dev circles as well)) whoever rolls out cross platform 3d harware rendering in their plug in they will pwn.

Whos the Next Leader of 3d on the Web?

Director has been abandoned for new released until 2008 at least for any 3d updates (if we ever see another version).  But Flash could implement OpenGL (which would lead to it maybe being open one day) and Silverlight would implement DirectX but woudl probably stop at implementing OpenGL.  Flash *could* own with hardware rendering but it opens it up to many more plugins which lead to Director being maxed out at 50% market saturation. 

Anyways, it probably won’t happen but today we have some nice 3d engines in Flash that are fast enough in AS3 with its new shiny VM and there have been some nice commercial successes of the wise early adopters of this technology. Papervision3D, Away 3d (possible merging of code), and Sandy have all helped to add to the buzz around AS3.

UPDATE: Check out this Mech Demo that is making the rounds.  The demo has working hit detection and projectiles from the mech as well as animation on the 3d model.

AS3 Mouse Events and Mouse Related User Actions

Flash is great for monitoring all actions by a user from what they type to what their mouse is doing and for how long. We have many tracking systems that rely on script in Flash and HTML when not using flash that can detect user interaction with our applications. Many tracking companies also use this info for hotspot or heat maps to see what your users are messing with.

To do all this interaction logging and tracking you need mouse events. Mouse events drive games, applications, cool user controlled interfaces, expected user direction and simplify your application. Understanding all the mouse events possible is important.

Here is a list of all the events that are clearly implemented in AS3:

CLICK : String = “click” MouseEvent
Used to detect mouse clicks.

DOUBLE_CLICK : String = “doubleClick” MouseEvent
Used to detect double clicks.

MOUSE_DOWN : String = “mouseDown” MouseEvent
Checks when mouse is pressed down.

MOUSE_LEAVE : String = “mouseLeave” Event
Monitors when the mouse leaves the stage.

MOUSE_MOVE : String = “mouseMove”
Monitors when the mouse moves.

MOUSE_OUT : String = “mouseOut”
Monitors when the mouse moves out of the attached to object of the event.

MOUSE_OVER : String = “mouseOver”
Monitors when the mouse moves over the attached to object of the event.

MOUSE_UP : String = “mouseUp”
Monitors when the mouse moves up the attached to object of the event from a click.

MOUSE_WHEEL : String = “mouseWheel”
Monitors when the mouse wheel moves, detect the positive or negative delta property for distance and direction moved.

Wiring up Events in AS3 is easier than its ever been.

// attach the event listener to this object, if you want a global event outside
// the current class attach to stage.addEventListener([event],[callback])
this.addEventListener(MouseEvent.CLICK, onMouseClickEvent);

// then make the callback
public function onMouseClickEvent(event:Event)
if(event.buttonDown) // if primary button down, left mouse button
trace("left button was down");
trace("left button was not down");

What about right clicks?

Well not all mouse equipment has right click so its not always best to implement but for the ones that have right click capabilities and other buttons there is both mouse wheel and right click support in Flash mouse events.

To detect right click:

In the MouseClick event there is a buttonDown property on the event that returns true if its a left click, false if its any other mouse button. So you could have a menu drop down on a mousewheel click, right mouse click or other mouse button clicks.

Detecting right clicks or other mouse clicks is impossible in Flash AS3. I got excited and error in testing and thought the buttonDown helped to determine the button pressed but it only listens to the left click.

What about drag over and drag out?

The buttonDown property is mainly used for drag over or drag out events (which are not an actual event) but you could do something like:

function onMouseOver(event:MouseEvent):void
// mouse is down and dragged over.
function onMouseOut(event:MouseEvent):void
// mouse is down and dragged over.

To detect when the mouse leaves the screen:

Use the MouseEvent.MOUSE_LEAVE event on your main document class or a class instantiated that assigns this event to the stage. This can be used for high intensity flash sites where performance is preserved when the user is not interacting with certain elements.

More on mouse events and timers shortly. Here’s a sample from the docs:

package {
import flash.display.Sprite;

public class MouseEventExample extends Sprite {
private var size:uint = 100;
private var bgColor:uint = 0xFFCC00;

public function MouseEventExample() {
var child:ChildSprite = new ChildSprite();

import flash.display.Sprite;

class ChildSprite extends Sprite {
private var size:uint = 50;
private var overSize:uint = 60;
private var backgroundColor:uint = 0xFFCC00;
private var overColor:uint = 0xCCFF00;
private var downColor:uint = 0x00CCFF;

public function ChildSprite() {
draw(size, size, backgroundColor);
addEventListener(MouseEvent.CLICK, clickHandler);
addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);

private function draw(w:uint, h:uint, bgColor:uint):void {
graphics.drawRect(0, 0, w, h);

private function clickHandler(event:MouseEvent):void {

private function doubleClickHandler(event:MouseEvent):void {

private function mouseDownHandler(event:MouseEvent):void {
draw(overSize, overSize, downColor);

var sprite:Sprite = Sprite(;
sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);

private function mouseMoveHandler(event:MouseEvent):void {

private function mouseOutHandler(event:MouseEvent):void {
draw(size, size, backgroundColor);

private function mouseOverHandler(event:MouseEvent):void {
draw(overSize, overSize, overColor);

private function mouseWheelHandler(event:MouseEvent):void {
trace("mouseWheelHandler delta: " +;

private function mouseUpHandler(event:MouseEvent):void {
var sprite:Sprite = Sprite(;
sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
draw(overSize, overSize, overColor);

SWF to XAML Converter SWF2XAML (Flash to WPF/Silverlight)

Photo Sharing and Video Hosting at PhotobucketMichael Swanson has created a SWF2XAML converter that you should check out.  It has quite a few features and fixes that would seem like conversion from SWF to XAML might not be worth the time.  This might change that.  I think that it is important to stay up on all vector technologies as a RIA solution provider and we do not treat platforms like religions rather tools to use at our disposal.

The conversion at least for the vector art looks pretty on target.

Photo Sharing and Video Hosting at Photobucket


The following table contains a list of features that are supported by the current version of the SWF2XAML tool or are planned for a future release. Where there are issues, I’ve tried to address them in the Comments column. If you’d like to see some visual illustrations, take a look at the Eye Candy.

Support Feature Comments
Yes  Frame by Frame Advance Use the horizontal scroll bar at the bottom of the window to navigate frames in the SWF file. Because frames in a SWF file must be processed sequentially, later frames will need to calculate intermediate frames, so jumping forward may take some time.

* The current version of the SWF2XAML tool does not cache prior frames (and that feature in Edit/Preferences is permanently disabled). So, when navigating backwards, the file will be re-calculated from the beginning. Depending on the file complexity, this may take some time.
Yes Explore Project Folder Choose File/Explore Project Folder to view the folder that contains any exported assets (like XAML files and bitmap images).
Yes XAML Export Choose File/Export… to export the current frame to a XAML file.
Yes Save Frame as Bitmap To save the current frame as a bitmap image (.PNG), choose File/Save Bitmap. The image will be named frame####.png where #### is replaced by the current frame number. The file will be saved to the subfolder identified in the application preferences.
Yes Launch XAML File Choose File/Launch XAML to automatically export the current frame to a XAML file and launch it in your default browser (normally Internet Explorer). 
Yes Launch Original SWF File Choose File/Launch Original to launch the current SWF file. If you have the Flash Player installed, this will open the player and begin the animation.
Yes Copy XAML to Clipboard Choose Edit/Copy XAML to copy the XAML for the current frame to the system clipboard.
Yes Copy ResourceDictionary Choose Edit/Copy ResourceDictionary to copy a XAML ResourceDictionary element that represents the shapes that have been defined up to the current frame. The XAML is copied to the system clipboard. Note that any shapes that are defined after the current frame will not be included (so, to include everything, first navigate to the last frame of the SWF file).
Yes Go To Specified Frame Choose Edit/Go To… and enter a frame number to jump to that frame. Because Flash files must be processed sequentially, all interim frames will also need to be calculated, so this may take some time.
Yes Preferences Choose Edit/Preferences… to configure various aspects of the tool:

  • The Display tab contains settings that determine the opacity of the Onion Skin mode and the stroke color and fill opacity for Wireframe Mode.
  • The XAML tab contains settings to export to WPF/E-compliant XAML and to control its formatting.
  • The Files tab controls where the various file types are saved on your system. By default, each SWF file will have its own subfolder created.
  • The Advanced tab contains settings that control how the tool caches various assets. Although caching of assets can improve performance, there may be a significant memory cost involved.
Yes Stage Clipping Choose View/Clip Stage to toggle clipping of the frame on and off. Often times, frames in a Flash file contain elements that can’t be seen with clipping turned on.
Yes File Information Choose View/File Information to enable the File Information pane. This pane displays information about the SWF file, including: file name, file signature, version, file length, frame width, frame height, frame rate (in fps), and the total frame count.
Yes Display List Choose View/Display List to enable the Display List pane. Think of the Display List as a stack of layers that make-up the current scene. You can use the checkboxes to selectively hide/unhide elements until the frame content looks the way you’d like. Note that not all checkboxes will change the visual display (only Shapes, MorphShapes, Sprites, Buttons, and Text).
Yes Advance Sprite Frames Many Flash files contains movie clips (or Sprites) that are sub-elements that have their own animation frames. Although these animations will automatically progress with each frame in the main scene, choosing View/Advance Sprites will manually advance each sprite in the scene by a single frame.

** If you run across a single frame Flash file and it doesn’t appear to animate properly, it may be because you need to manually advance the sprites in the scene.
Yes Wireframe Mode Choose View/Wireframe Mode to display the outlines of the elements in each frame. The wireframe stroke color and fill opacity can be configured under Edit/Preferences. Note that XAML exported or copied to the clipboard in this mode will represent the wireframe version of the frame (i.e. what you see).
Yes Onion Skin Mode Choose View/Onion Skin Mode to toggle opacity of the entire tool window. When Onion Skin Mode is enabled, the tool window becomes semi-transparent so that it can be moved over the top of a comparison window (like the Flash Player). This is useful to visually compare the converted geometry. The opacity of the window can be configured under Edit/Preferences.
Yes Tag Statistics Choose View/Tag Statistics to view a table of the Flash tags that have been encountered up until the current frame in the current file. To get statistics for the entire SWF file, choose Edit/Go To… to jump to the last frame of the file, then view the tag statistics.
Yes View Original Size Choose View/Original Size to size the frame to the height and width that is specified in the Flash file. When using Onion Skin Mode, this makes it easier to do a visual comparison with the Flash Player.
Yes Shape Morphs Shapes that were authored to morph over a specific number of frames are supported in the conversion. This includes geometry, fills, strokes, gradients, matrix transformations, etc.
Yes Clipping Layers Layers in the Display List that are set to clip lower layers are supported. Although these layers don’t have any visual strokes or fills, toggling these layers in the Display List pane will affect the display.
Yes Bitmaps All JPG, indexed color, and full color bitmap types are supported. Note that indexed color modes are simply converted to 32-bit RGBA PNG files (as are JPG files with an alpha layer, unique to Flash files).
Yes Color Transformations Simple color transformations (multiply and add) are supported per-layer in the Display List.
Yes/No Shape Fill Types  All fill types are supported to varying degrees:

  • Solid fills are fully supported
  • Both radial and linear gradient fills are supported. However, the new radial gradient settings in later Flash versions are not supported.
  • Bitmap fills are supported, but non-repeating clipped fills currently have some issues.
Yes/No  Buttons Only the button “up” state is currently converted and displayed. Also, there is no interactivity. 
No Frame Blend Modes No current support for various frame blend modes that were introduced in later versions of Flash.
No Dynamic Text Although static glyph text is supported, there is currently no support for text that uses locally-installed fonts.
No ActionScript All ActionScript code is currently ignored. As such, no interactivity is converted. 
No Sound No sounds are currently exported or played; they are simply skipped.
No Video All video is skipped. 


To get the SWF2XAML tool up-and-running on your system, follow these steps:

  • Make sure that you have the .NET Framework 3.0 installed on your machine. If you’re running Windows Vista, you can skip this step, because the Framework is automatically installed with the operating system.
  • Download (521KB).
  • Extract all of the files to a folder of your choice.
  • Double-click SWF2XAML.exe to run the tool.

Adobe Apollo and $100 Million

Adobe is throwing down $100 million in venture funding to companies developing tools with Apollo. Or more specifically the “Engagement Platform” Is Adobe serious about making Apollo successful? I would say yes.  It is both an excellent PR move and it shows their dedication to making desktop as proliferated at Flash on the web.

Microsoft is already using companies to push the Silverlight technology who are known partners and to direct competition with Flash and Apollo with WPF/Silverlight. Although Apollo is a cross platform desktop application wrapper for Flash its more than Microsoft currently has and blows away widget libraries of today.

Here’s a snippet from Niall Kennedy 

Adobe has allocated $100 million towards investing in companies that enhance its engagement platform and is especially interested in funding Apollo companies. As of last month Adobe had invested in 6 companies, including word processing company Virtual Ubiquity. Companies might develop for Apollo to take advantage a strategic investment from Adobe at reasonable terms.

Apollo in its current form seems overhyped, but the cross platform development space will definitely look different in a year as we see new toolkits from big companies executed inside and outside of the browser. It’s not too difficult for a web application to pop out of the web browser and into a standalone web technology, and the marketing and investment dollars being spent by large companies such as Adobe and Microsoft should help boost the visibility of cutting edge web apps.

This was announced at MAX the Apollo/Flash9/AS3 funding effort.  There were lots of interesting things going on in the vector app space and direct to browser desktop apps.  Ray Ozzie added his points about the future of desktop apps in that winforms apps are dead…

Tweening Bezier Curves with Tweener AS3

Zeh has posted a great article on using Tweener to animate along a Bezier.  There is even a papervision3d sample.  Tweener has been a good choice for papervision3d animation due to its flexibility to be able to easily handle z and custom params.Photo Sharing and Video Hosting at Photobucket

This is excellent for game development or pathing in game systems.  The sample in papervision is a set of cones that the path can be set around.  For custom scripted sequences and triggered events this is exactly what is needed. Things like flying through cities, vehicles, transitions, recording replays etc.

I am blown away by this as its probably the most useful and cool demo I have seen yet. Check it out Download the source here (Flash CS3, AS3). 

I will give this project 6-8months before its a full blown papervision3D scene editor in flash. 

Pageturn in Papervision3D

Photo Sharing and Video Hosting at PhotobucketWell it is “pageturn” week here at { drawlogic } but this is worthy.  Its the first papervision pageturn zero point nine is now famous.

source code

I have a feeling papervision3D is responsible for a surge in new blogs.  It is an exciting technology but our processors are probably not too happy about all the extra work. 

Hardware Rendering for 3D in Silverlight or Flash? And, Anyone Seen Our Director?

Hardware 3D rendering…

One thing that might be interesting in the heating up battle of Flash vs Silverlight is rendering.  Will Silverlight down the road provide hardware rendering support for 3d in Silverlight?  If so Microsoft will have a compelling offering.  Would Microsoft really want this with strong 3d capabilities built into a browser (goes against their console offerings, or maybe not in the end).

Photo Sharing and Video Hosting at PhotobucketWith 3d in the browser on two competing platforms that use hardware rendering we can make Raycasted donuts (yummy) oh and there could be a massive surge in the online 3d gaming market (especially the indie market).

It is up for grabs 

But the problem is that Silverlight will also need to support OpenGL for other platforms (that do not run DirectX).  If Adobe wants to win this maybe OpenGL 3d integration into flash will make it more cross platform.  I know the developers on the papervision3d lists are all looking forward to better than software rendering in flash.

Who’s Directing Director? 

But then this leads to another question, where does Director fit in all this, is it even part of the plan? Will Director and Flash merge to support this? Then what happens to the saturation of Flash in the market when it has more third party issues like Director? (and possibly less adoption director usually gets up to 50% to 60% saturation) 

What exactly happened to Director in the plans?

Director is still the de facto standard in 3d web games, more on this soon.  Director has been noticeably absent from all versions of Creative Suite (they are up to CS3 now without it).  Buzz about it was happening in 2004-2005 but last anyone heard is it is still planned for released. The one problem with the Director development environment and community is that the IDE is clunky, the libraries and script (Lingo) is not as advanced as AS3 (the addition of Javascript to the capabilities was great but much of the community was Lingo) and the community is a ghost town (loads of broken links and pay xtras, its stuck in 2003-4).  It was a great market before that, I think Adobe is letting it slip further and further away.  If they wait too long Microsoft might add hardware rendering to Silverlight and then game over in owning 3d gaming on the web. 

“Halleys Comet”

Here is a posting to macromedia.director.3d from Ritesh Banglani, Product Manager for Director and Shockwave. It was in response to a joke about him coming and going from the forum like Halley’s Comet…

Still here, guys. I cannot give an exact release date for the next version, but it will likely be towards the end of the year rather than the middle. The Shockwave Vista release (with DirectX 7) will be out sooner – in 6 weeks or so.

We will NOT upgrade the 3D feature set in the forthcoming Director release. Requirements like new platform support, performance and text engine enhancements are very urgent, and we don’t want to delay this release beyond 2007. However, we are committed to maintaining Shockwave as the leading 3D format on the web, and you WILL see 3D enhancements in a subsequent release. The move to DirectX 9 is a signal of our long term commitment to Shockwave 3D.

I know this is not the answer many of you are looking for. I appreciate your patience, and hope to keep the channels of communications open!

Currently this is the status of hardware supported 3d in WPF/E Silverlight. 

WPF fully supports hardware rendering but Silverlight (cross browser) does not.

What features are missing from Silverlight presentation markup that will be supported in WPF?

Some high-end, Windows-specific features of WPF, such as real 3D, hardware-based video acceleration, and full document support, will not be supported in Silverlight. This is done on purpose in order to serve the Silverlight cross-browser, cross-platform reach requirements that demand a light-weight plug-in. However, Silverlight will offer a uniform runtime that can render identical experiences across browsers on both Macintosh computers and on Windows-based computers.

Pageturn in Silverlight

Photo Sharing and Video Hosting at PhotobucketHere’s the first pageturn in silverlight.  It runs pretty smooth. 


Get every new post delivered to your Inbox.