As those of you that have been reading along with the series might extrapolate, this post is supposed to be Part 5. However, given some things that I've discovered in the Fwiidom AS3 implementation as well as some issues in the MakingThings AS2 classes, which I then ported to AS3 and in the process propogated those bugs, this is now an update on some progress made with some collaboration and refactoring.
A couple weeks back I received some updates to the Fwiidom classes and the FLOSC server that a guy name Nacho (that's all I know about him or her) did via Adam at Dusty Pixels (who created Fwiidom). I was super busy and didn't have time to put them through their paces until over the weekend. When I did, I started noticing some really strange bugs where certain OSC commands would work (using the original FLOSC server - version 0.3.1), then by simply inserting a trace statement, they would cease working and other OSC commands that were previously broken miraculously started working.
This drove me to the brink of insanity for about 4 hours during which I tested the Fwiidom classes, my ported MakingThings AS3 classes and the original MakingThings AS2 classes. Then it dawned on me that the order of the
value attributes in the XML that was being sent from the Flash Player to the FLOSC server was getting reversed and this was causing the issues. After that, I remembered the update to the FLOSC server and referred back to the email from Adam. Looking at that email again, I see the forwarded message from Nacho where he mentions that the FLOSC server was updated to parse the XML using the DOM, so that the order of attributes in the XML-formatted OSC messages sent to FLOSC didn't matter. Doh! Apparently he encountered the same problem as I and corrected it at the server level, rather than in ActionScript, as I had been attempting to do.
So, I'm going to work a bit more on some testing of the updated classes and refactoring of my ported AS3 classes and release mine and then work to coordinate with Adam and the mysterious Nacho to figure out the best way to share these updates. From there, I'll continue on with Part 5 and go back to update some of the previous articles with relevant changes.