I also added a NET row down there so I can track how much money I've made (or lost) in this fiasco.
MBCG3AM update:
Envelopes out: 991
Envelopes in: 481
Current BB credit: $526
Cash out: $775 (envelopes and stamps)
Cash in: $135
Merchandise in: Wifi Media Player gizmo ($200), 802.11g wifi range extending repeater ($100)
Net: $186
In something actually game development related, Multidmedia is now beta testing Zinc 2.5. For the uninitiated, it's a gizmo that converts Flash games into standalone runtime-free EXE files. It's also got loads of functions to do stuff outside of the Flash "sandbox", like reading and writing files, talking to the registry, changing screen resolution, etc.
Basically it allows you to write something in Flash, then make it into something that doesn't look like a Flash movie.
Biggest thing 2.5 adds is in-line execution of their script commands. Macromedia never provided many hooks into its scripting, so adding functions to call outside the player was very kludgy. For example, you couldn't do something like this. . .
var x = getValueFromRegistry("registry\\path");
if (x == "howdy") do_something();
Since getValueFromRegistry() calls stuff outside the sandbox, Flash batches the command up at the end of the frame, so your code ultimately executes like this. . .
var x;
if (x == "howdy") do_something();
x = getValueFromRegistry("registry\\path");
Which is exactly what you don't want to do. If you want to actually check the value of x, you've gotta do it in the next frame.
And that was just a mess. There were some things I just couldn't do because I'd have to add a couple-dozen frames to my app. And I know that there are some things that just didn't work right because frames are synchronous things and they don't exactly nest. If you quit the game in certain places, who knows what would happen to your game progress (which is saved in the registry).
Thankfully, they've got better hooks now, so you can now write code that works the way you'd expect.