Idoru


It took 8 months of working in fits and starts, but I've finally converted the code behind danielboyle.net to Actionscript 3, from a mix of Actionscript 1 and 2. Why? As of Flash CS3, Actionscript 3 became available. It's essentially a complete rewrite of AS1 and 2 as a strictly object-oriented language. Practically speaking, as newer versions of the Flash player become universal, and Flash itself is upgraded, the older styles of Actionscript will fall away, and if you don't know AS3, you'll be in trouble. This particular project was probably the easiest way to learn. I had no real deadline, my math worked, my assets already existed, the logic was already there, and I had a working target to shoot for. For help, I turned to Google, Kirupa.com, and Actionscript.org. I also used Colin Moock's excellent Essential Actionscipt 3.0.
This is NOT a tutorial. This is a port-mortem of my thought process, lessons learned, and results of the re-engineering of my site.
I've finally published a new version of the portfolio on Danielboyle.net – and you shouldn't be able to notice a difference.
The design is exactly the same as the previous version except for a few animation tweaks. In fact, I was, and continue to be, happy with the existing design, but the inevitable march of progress has kicked me in the ass and forced me to learn AS3.
What is AS3? Actionscript 3.0 (Flash's internal scripting language) received a massive overhaul in version 3 (which was released as part of the Flash CS3 package. Essentially, it's a rewrite from the ground up of Actionscript as an object-oriented language. What does object-oriented mean? What are the differences between AS1/2 and AS3? Is one better than the other? How did I do this, and is there an easier way to do it?
There will be a longer blog post in the next day or two detailing going over these answer, but for now, let's leave it at, it wasn't hard, but some things could have been much, much easier. Also, over the next few days, I'll be taking some time to tweak animations and fix any bugs that have popped up, as well as generally cleaning up and commenting my code.