Flash xfl format – A dirty secret

One of the new exciting features of Flash CS5 is the arrival of the new source file format : XFL – which is a non-compress, text(xml)/raw assets-based version of the fla format. What is this good for ? Version control to be the first ! As symbols are now xml files, once we making changes we can always tracking down by doing a diff comparison to find out what all the changes are. Secondly, all assets are now exposed and artist can change it any time to make an update.

The disappointed thing is it’s not just working that way. The more i used new XFL format, the more I got angry about how useless it is.

First fail :
I eagerly open up some of the new XFL format folder to see what’s inside, everything seems good, until i see a folder named bin. What should be inside, binary data of course, I guess it was temporary caching data to speed things up. OK, good, so i delete those files and try to open the XFL file again. It’s not working ! How should i use version control if the new XFL is still using binary data ? One more thing to mention is the binary data is very BIG ! much bigger than all asset plus the symbol xml files !

Second fail :
I created a new XFL file and import some images. Later on, I decided to update them so I copied some new images to overwrite them, then relaunch the Flash CS5 IDE, nothing happens (I supposed to see some kind of dialog telling me they are reimporting the assets caused it was changed). Try to compile to see that the old images are still there, though in the images folder I did replace them with the new ones. I end up to select all images and updated manually wondering why don’t they do a simple check to perform automatically updates for all changed items in the folder, is it that hard to track down if the assets are changed ?

Third fail :
I rename some symbol in the library and put them into folders. I expected to see the symbol names changes in the the explorer, but it’s not, still there. I open up the .xml files of the symbol to read, and there are some stupid mapping there (symbol names to file name), the real assets won’t be moved or renamed. Why they did this ? I want things to be named exactly what i named, and put where i put in the library. How can you find a symbol with some fancy name symbol234 or something like that in a big project ? And how can I know (by looking through the diff) which symbol is changing if the file name is not named after the symbol ? It’s nightmare !
Flash CS5.5 did changes the name and have a move to folder function that somewhat help us to have a way to work around, but this hasn’t solved the problem yet

Forth fail :
I have an old project that are using fla file, now i wanted to making changes to the images so I save the fla as XFL hopefully all images will be exposed so I can edit them. It’s not ! There are noway to tell them to expose these images. Copy images out one by one is time consuming and can not be considered a solution. I tried to save to other different fla versions then save back to XFL hopefully they do clean up somewhere but it’s not working still.
Later on I see that when right click onto an image in the library and choose Edit with … > Cancel, it did copy the image out (from the binary data in bin folder i guessed), so I chose to do it. The fact is you can not select multiple images to Edit with … > Cancel ! What a usability friendly workflow they has offered !

Ok, to sum things up :

  • XFL format put all assets it used in a bin folder where we can’t make version control works – useless for SVN or any other kind of source control
  • Assets (images / audio) are all binded to the binary files – stop hoping to simplify the workflow by edit images directly then get updated automatically !
  • The symbols won’t be placed where it should be or named what it should be – useless for outside manually editing (we don’t know which file a symbol belongs to right then) – there is no good exposing these file out as we can do nothing with them !
  • That’s it, can you think of a useful use case of the XFL format ? I know that continuously and automatically checking for changes might be performance intensive and your team is not very good about optimization anyway. But is it that hard to have a clean up button that force things to be synced ? File changes got update, files got renamed and moved to correct places just as we did with the symbols ? Won’t it be peace to all of us ?

    I’m really disappointed about the Flash IDE itself now, and I know there are a huge number of developers out there got so depressed on your tool that they don’t even care to complain. All the IDE features are broken, it keeps crashing a thousand times a day !

    Common guys, I know you can do it better !


    3 thoughts on “Flash xfl format – A dirty secret

    1. I have found XFL useful for finding and replacing font usage (the IDE supposedly has a tool for that but it’s always been entirely useless). With a tool like “Araxis Replace In Files” i can at least identify where the bad fonts are located so I can change them. But note, I have to change them in the IDE, not through editing the XML files — doing the later results in the changed field all showing up empty).

      I have also had instances here and there where I was able to find and fix a problem by editing the XML files.

      But on the whole I entirely agree that XFL is a major disappointment. It might give the the illusion of more control, but in the end it’s little more than a curiousity.

    2. .dat files are extremely annoying and go completely against the point of having a open format. if anyone knows any tricks on how to get around them id be very interested…

    3. In the case of Flash CS6,I think you can ignore the files in the bin directory…
      Without take the bin directory into version control, I still can edit file and compile swf.


    Leave a Reply

    Fill in your details below or click an icon to log in:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out /  Change )

    Google photo

    You are commenting using your Google account. Log Out /  Change )

    Twitter picture

    You are commenting using your Twitter account. Log Out /  Change )

    Facebook photo

    You are commenting using your Facebook account. Log Out /  Change )

    Connecting to %s