Wednesday, July 30, 2008

Painter Moment

Instead of paper, I was using Painter to write some notes on an ActionScript 3 program I am going to code. As I wrote, I would change colors. Then I realized I wanted to highlight some things. So I figured I'd switch to the felt pen.

When I did, I noticed it was one that would work with the 6d pen's rotation, so I switched to the Wacom 6d Art Pen and highlited rotating as I drew.

Then I switched back to my normal pen, selected the scratchboard tool for writing and continued to write.

Then I wanted to highlight again so I grabbed the 6d, and of course it remembered that the 6d had the felt pen AND the color it was using.

I know, it seems like a little thing but it was very natural... having the pens remember the color and brush, having the ability to rotate my felt pen as I drew... I have been aware of all these features in Painter and played with them. Most of the time when I've been painting, I use one pen. But this was using them in a rather mundane way, thinking more of my work as I switched between pens than the cool features.

Wednesday, July 23, 2008


I decided to go ahead an release my two latest Bits of Blender. YouTube is still not accepting FLVs since last week so I rendered these video in a variety of different formats and sizes, trying to get the quality as close to the FLVs as I could. They look okay, but I'm a bit frustrated with YouTube that I have to settle. FLV as the raw format seems to be the nicest quality for screen capture work displayed on YouTube.

I've got threads going in both the Adobe and YouTube forums on the issue, but so far no luck. You'd think Adobe would be a little put out as export to YouTube is one of the selling points of Premiere Elements 4. They certainly have more clout than I.

Monday, July 21, 2008

Being Cool

I can't seem to get into my YouTube account this evening. Hopefully they are working on the problem I posted about yesterday. When I try to access my account, I get two messages:
"This functionality is not available right now. Please try again later."
"We are currently performing site maintenance. Be cool - we'll be back 100% in a bit."

Sunday, July 20, 2008

Broadcast Yourself... but not with FLV

Richard and I have uploaded 29 Bits of Blender. This weekend we did two more and tried to upload them. Using the same preset I've use for all of them, I found that YouTube was giving me an error "Failed (unable to convert video file)". After some trial and error, I found out it was the FLV format that YouTube is choking on. This is the format Adobe Premiere Elements 4 uses to upload to YouTube and what we've used for all our previous Bits. Why it stopped working, I've no clue. But YouTube will not accept a FLV today whether from Premiere or through the browser(I tried it both ways). I exported a WMV from Premiere and then uploaded through the browser and that worked, but is lower quality. I exported a MOV using H.264 at best quality it also worked, but it too was lower quality. I hope YouTube fixes this problem in short order.

Saturday, July 19, 2008

AS3 vs Java Local Variable Scope

In some languages, you can scope variables within blocks of code, like in different compound statements. For example, the following is legal in Java:
int i = 0;
int i = 1; //Legal in Java
But adding those {} to make a compound statement does NOT work in
ActionScript 3 because the AS3 compiler takes all the local variables
(regardless of depth) and declares that right at the beginning of the
function. For example, this is legal in AS3:
    trace(i); // Legal in AS3, default value of int (zero) is output
var i:int = 1;
It appears we're accessing a variable before it is declared. But since the compiler moved our declaration to the beginning of the function, there is no error. The assignment is not moved, the the value of i at that point is zero. This behavior is similar to the way Flash deals with variables
declared later on the timeline, you can reference them before earlier
than the declaration because the compiler moves that declaration to
the beginning.

Friday, July 18, 2008


I received notice today that I am officially a Blender Foundation Certified Trainer (BFCT)! Blender is the number one animation program. It is an honor to be among only seven BFCTs as of this writing (six at that link, my info is not up yet) and the second BFCT in the United States.

Blender is a great program, I enjoy using it professionally and teaching it through my videos as well as the Bits of Blender series I've been doing on YouTube with my son.

If you haven't tried it yet, click on the logo above to go to the website. Blender is free and open source. You can model, texture, rig, animate, light, render all in one package (as well as a game end and video editing). It is a small download and available on Solaris, Window, and Macintosh (to name a few). The requirements for running it are modest and it is an extremely stable program. There is a large, active, user community at News about Blender-related topics can be found at

Friday, July 11, 2008

SWCs and FlashDevelop

I'm thinking my Bits of Blender episodes are really cutting into my blogging time! But I thought I'd put a note out on my latest development approach in FlashDevelop for Flash/ActionScript 3 projects.

Previously, I'd set the main class as the Document class. Then I would set the parent class of Symbols to a corresponding ActionScript 3 class. I'd turn off the automatic declaration of variables so that it would force me to declare them in the class. This was nice because I would have a reminder at the top of the class that there were named instances in the symbol. I'd also add a "//MC" after the declaration as another reminder why I had those members set to "public" (I'd also set "//MC" as one of the tasks so I could quickly find all the named instances on the stage).

But for a recent project, I decided to go with compiling in FlashDevelop instead of Flash. When I'd used FlashDevelop for some Flex work last year, I was always impress with how quickly it compiled. Flash seems to take much longer. I think it may be because FlashDevelop uses the Flex compiler which is doing incremental compiles and Flash is always compiling everything (I'm guessing). So instead of working in Flash, my main Flash class is not running in Flash. Instead, I'm bringing all of my Flash assets in via an SWC. This gives me the advantage of compiling straight in FlashDevelop (and not having it switch to Flash, in fact Flash does not even have to be running). Plus, my compiles are faster. But there is one downside, now instead of my Flash symbol extending an AS3 class, I'm having my AS3 class extend the symbol. This means any named instances in the class are in the symbol instead of in the AS3 class, so I no longer have that reminder of the declaration at the top of the class. The instance is still declared and still appears in the code completion, but it just does not feel quite as good. Overall, though, this approach weighs in feeling like a better way to go.