I just uploaded an update to my personal web site after 3 years “I’ll do it later.”

Creating this version was a bit of a struggle for me – not only as a fight against procrastination but trying to figure out what I wanted to “say,” if anything, about myself. The result is something simple and subdued overall with a strong grid layout and a little flair. I’m not really sure what that “says” about me – but I think that it’s fitting for where I am at this point. I also wrote my first bio in over 7 years and took out a lot of old crap from my portfolio. So much of what I’ve done these past 5 years has been code – I have little to show visually.

I created it using my ramen player. There are a few things that I still want to add – like sound effects – but I’ll get around to it later.

Chalk board effect

Saw this post on StudioBanks’ blog referring to the chalk board effect on the Starbucks Coffee At Home site. I thought it was pretty cool too, and that I can see using something like this in a future e-learning app. So, I spent a little time creating a demo of it. It’s pretty straightforward, and could be modified to show an external SWF instead of the circles – which would make it actually useful.

Chalk Board Effect Demo

Chalk Board Effect Source

Mouse Positioning debugger

Little utility of the month (I swear I want to to more of these to post): Mouse positioning debugger. This is a little utility script that will be part of ramen to help position items on the screen. Turn it on and it displays cross hairs showing the current position relative to the stage and a child MC of your choosing. Can also draw boxes and it’ll track the width and height.

Mouse Position Debug Demo

Mouse Position Debug Source

Flash Player 9’s Biggest Problem – Failure to Unload

Ryan Taylor point’s to an article on Grant Skinner’s blog about a bug in FP9 where loaded SWFs are not removed from memory when you tell Flash to.

This is a problem that I’m seeing with ramen just as Ryan is seeing with his PGA app. I was watching the memory usage of a current project and it was taking up  >90mb of ram, GC ran and then it went down to 60mb. Still to high, but damn! I was pretty careful when I was coding it null out references and stop listeners/timers – but I think that I need to make another pass as it.

Wii’re done

The BAC Wii project has come to an end for now – we delivered our final report yesterday. Hopefully word of what we’ve done will spread and we’ll be ask to share it with more groups. It was a really cool project to be on – the potential of the Wii and kinesthetic learning is an interesting area – and I don’t think that many people are doing much with it yet. Replacing the mouse with a Wii remote is a great way to increase engagement – I wonder if I could find a way to apply to compliance training? Would make for an interesting course assessment.

Anyway, I’m posting my outline of the Wii controller class that I spent all of January developing. It makes programming for WiiFlash super simple – just instantiate it and boom – Wii support in any Flash app. Works with all typical mouse events.

Wii Controller Engine

  • Is an interface between Wii controllers (Remote and Nunchuk) WiiFlash and the application or game
  • Enables quick ramp up for a developer without having to learn the intricacies of the Wii controllers or their data
    • Can add simple Wii controller to an app in as little as 3 lines of code
    • Contains about 1000 lines of code (not including virtual mouse or WiiFlash itself)
    • WiiFlash returns raw data – engine normalizes it up to make it useful for a developer
    • The Wii controllers return small, but long numbers – 0.000000007199879823173
    • “Smoothing” out the data – eliminates the hand jitter by throwing out small changes and/or averaging data over time
    • Accesses the cursor’s X and Y position – WiiFlash gives you the location of the IR points (prefers 2 of them) as the Remote sees them on a scale from 0-1 – not in relation to your screen area.  Engine handles switching from 2 IR points visible to 1 IR point and convert the data to exact X and Y coordinates of where you’re pointing
  • Creates a secondary “virtual mouse” that allows the Wii mote to act as your normal mouse (separate from WiiFlash’s built-in “mouse control” mode) within the boundaries of your Flash movie
    • Uses Senocluar’s VirtualMouse class
    • A button is single click, B is double click
    • Makes it simple to add Wii capabilities to your app since it works with the mouse controls that you’re used to developing for
    • Allows for custom mouse cursors and the ability to switch between them with 1 line of code
    • Mouse cursors are contained in an external SWF
  • Creates a standard way to getbutton press and release state information for the Remote and the Nunchuk.Provides “isDown” data for major buttons on the Remote and Nunchuk: A, B,C and Z
  • Controls rumble – set the duration
  • Provides Nunchuk data in the same way as the Remote: rotation, acceleration, etc.
  • Nunchuk thumb stick – returns the position of the nub from -100 to +100
    • Also can use the 8 corners as buttons, names represent a compass: N, E, S and W
  • Created (but not tested) with multiple Wii motes in mind – should easily scale to up to 4 Wii motes

WiiFlash 0.4 released!

WiiFlash 0.4 has been released today! New features include: 4 IR points on the sensor bar, tracking the size of the IR points (for determining depth), and battery information from the Wii remote.

Since Jason has been busy trying to get a good depth (z-axis) reading with the 0.3.2 release – this is very welcome news. I’d wondered how Nintendo managed to get this information and it never occured to me that the size of the IR point would be it – but it makes perfect sense.

Sadly our Wii research project ends tomorrow – we give our final presentation to the sponsors at 1pm. I hope that we get to keep the Wii motes and sensor bars – there are a few minigames that I’d like to make. It would be cool to make some WiiFlash games that Sophie could play.

Short deck on AS3 events and bubbling

This is a short presentation that I gave to the Bank’s Flash Platform Developer Community group 2 weeks about. Its about the event bubbling system in AS3 and includes an example of how I’m using it to trigger events in ramen Player. Also includes a screen shot of my current project at work – a demo for the new LMS system using an avatar character.

AS3 Event Bubbling Deck

The more I learn about events the better they get and more possibilities appear. I’ve added an audio player page object type that can control the avatar SWF by events. The whole thing is setup using XML – so it’s completely customizable.  You can do so much more than was ever possible in AS2 and with much less code. Probably doesn’t sound impressive, but they fact that they are all separate SWFs running though a player SWF with XML defined event data responding to custom events being passed from SWF to SWF, blah, blah, blah makes it sound more way more exciting. :)

AS Driven Tweens

Greensock has released TweenMax. Looks really sweet – I don’t do many bezier tweens, but having the ability to do that, filter and color tweens in one class is appealing. I’m going to try to integrate it in to Ramen so that I can use it for my rebooted Nudoru site.

Draw Logic has a good list of the availble animation packages. Matt Przybylski comments and links to an article on his blog on getting started with animation packages.