Tuesday, January 15, 2008

Sandy and Blender

Click on the above image to see a Flash animation. I modeled figure above in Blender, exported to ActionScript 3 using Dennis Ippel's Python script, and then rendered it in Flash using Sandy. It was coded using FlashDevelop. All done with open source!

Tuesday, January 01, 2008

Movies as Backgrounds in Blender

When modeling in 3d, typically you'll use an image as a template. But what about animating in 3d? Blender can use a movie as a background. Just import the movie in the same manner as a background image:
  1. Select View->Background Image...
  2. Click Use Background Image
  3. Click Load
  4. Select your movie from the File Browser
  5. When it loads, click Auto Refresh. I had to move my Background Image window to get it to show the loaded movie.
Clicking Auto Refresh is important as that advances the movie when you advance frames in Blender's Timeline.

Flash Mouse Wheel Shortcuts

Here's some Flash CS 3 shortcuts I just discovered while exercising my curiosity, they are pretty useful:

Shift-MW moves the playback head to the next/prev
Ctrl-MW move the playback head to the first/last frame
Ctrl-Shift-MW zooms the view

Monday, December 31, 2007

Buttons, Symbols, and Filters

I just spent another couple hours of my life tracking down a bug in Flash CS3 that turned out to be... drum roll...

If you put a drop shadow on a symbol that is inside of a Button, the movie will freak out without giving any sort of error messages.

Well, at least it wasn't as bad as Friday's LoaderContext problem. Right now I'm also investigating some bizarre behavior with embedded fonts on dynamic fields, more on that when I know more.

Saturday, December 29, 2007

Favorite ActionScript 3 and Flash 9 Books

I was just writing someone about my favorite ActionScript 3 and Flash 9 books and thought it might be worth elaborating on in the blog. These are not all my AS3 books by any means, but they are my favorites. You may also be interested in these if you're doing Flex development. I do have opinions on Flex books, but that's another blog.
  • ActionScript 3.0 Game Programming University - This may be the most fun way to get your feet wet in AS3 and Flash 9 if you're already experienced with Flash. Especially if you prefer to look at complete examples to learn from. You can also use the numerous examples to build upon instead of starting from scratch. Plus, it is Flash-oriented where many of the ActionScript books are Flash-neutral. The book has great support with an accompanying website with demos of the games you can play, as well as a forum to interact with the author and other readers.
  • Foundation Actionscript 3.0 Animation: Making Things Move! - Another fun and great way to learn AS3 programming. This book is Flash neutral, so you can do it from a text editor with the Flex SDK compiler, FlashDevelop, FlexBuilder, or Flash. While his examples are not complete games like the above, they are small, useful examples. He also gives a good intro to AS3.
  • Essential ActionScript 3.0 - If you plan to write AS3 code, this book is a must to have.
  • Flash CS3 Professional Advanced - This is a great intro to Flash 9 with AS3, probably my favorite all-purpose Flash book, I review it here. This book will effectively bridge your Flash 8 and AS2 knowledge to Flash 9 and AS3. It has very clear explanations and illustrations.

Do you use the LoaderContext class?

Last night I spent several grueling hours trying to track down a bug in an Flash ActionScript 3 program I'm writing. I was getting an error when I would try to call a static method when the movie is loaded into another movie. I wouldn't get the error when I play the movie itself. The error was that the class name is an undeclared variable. Finally, I found a post on kirupa.com that led me to the answer.

The problem was relying on the default LoaderContext parameter to the Loader.load() method. You may not be familiar with this parameter, but it is important in how the Flash Player deals with an additional application being loaded in and how it prevents possible name collisions (see the thread I linked to above).

After solving the problem, I decided to look further into the books I have. Out of six books I looked in, all of them mentioned the Loader class but only one mentioned LoaderContext. Ironically, that was the last one I looked in because it is a Flex book, Programming Flex 2. It has a good explanation of the issues.

Tuesday, December 25, 2007

How I spent my Christmas vacation


It was only a four day weekend this year, but I still managed to slip in some productive fun. Over the weekend I:
  • Wrote my first productive Python script from scratch
  • Created a game in Blender using Blender's game engine
  • Painted in ArtRage (the picture above, you didn't think I was in that did you?)
  • Spent time in Alice
  • Opened a Twitter account
I also did a lot of last minute shopping, visited family, and shoveled snow (lots of snow!). And of course, thanking the Lord for sending his son, Jesus.