Blog

  • Macromedia Captivate

    Released officially today. Next paycheck, I’m buying this program. I’ve been working on a tutorial all day in it on creating a Flash MX 2004 sample component. Take some lessons from using it for awhile (there are many other more experienced RoboDemo users out there other than me, but as a Flasher I have certain expectations when using Macromedia software):
    – make many small projects, and link the SWF’s together. I had a 80 meg, 30 minute presentation today that was a pain in the royal behind to deal with. My computer is a beast, and although I could multi-task, saving the file and editing it took 10 years because of the 391 slides and tons of audio. So, even if you play around, keep that in mind.
    – be extremely wary of utilizing full-motion recording with hardware acceleration. Frankly, I wouldn’t click this unless your sure you don’t mind if something unexpected happens. I’ve had great results not using it with real-time recordings, like drag and drop operations, etc.
    – if recording narration, take breaks. This will allow you to save your file, and continue on. Nothing like doing a 10 minute recording only to find it didn’t save, and your comp’s locked.
    – plan ahead what your going to say, like a speech, only your talking to your computer’s mic instead of a live audience. You should still treat it like your speaking to a classroom type of environment, as this will show through in the end product. Planning really goes a long way.

    Overall, I’ve only been using this product a short time, never used RoboDemo, and tested the Flash integration a few times. I truly love this product despite its need for a preferences overhaul and better way to manage large projects. It’s cool, though, for a 1.0 release under a Macromedia brand of an already maturing product. I didn’t have any expectations anyway, and will never do this type of work in Flash again… only edit it.

    Check it out if you have 20 minutes to play with it. I’m sure you’ll dig it.

    Macromedia Captivate

  • Case Sensitivity in Unexpected Place: XML Object

    Skip to the last sentence for the advice.

    Many Flashers already know about the caveats one faces when going from Flash Player 6 to Flash Player 7 development in dealing with case sensitivity. This new feature helps speed, and also allows for more freedom of naming in code since color can now be an instance of the Color class. Additionally, one mispell of mY_btn (instead of my_btn), will have the Output gettin’ all in yer face about “Yo, this variable doesn’t exist anywhere man… weird, what’s he doing here?”. It’s nice to know an uppercase Y makes one so distinctive. How about a capital J, biotch!?

    Anyway, re-writing some AS1 XML parsing code, and it was working fine when I published to Flash Player 6, but not 7. I was like, wtf. So, started debugging, making mad traces, long debugging window sessions, digging deep in XML objects in the Debug Window to inspect each and every property.

    Turns out, someXmlNode.attributes.href is different than someXmlNode.attributes.HREF. You may go, “No sh… thanks for wasting 3 paragraphs of my life Jester.” If your still here, you r0x0r. Ah… but is href a variable or a string? Attributes in XML have the neat distinction of being neatly placed on a vanilla object called “attributes”, so you can access them like you would any other plain object, such as a data provider item (item.label). Because they are vanilla, though, you typically don’t have classes defined that represent them. For instance, EventDispatcher, when it does a dispatchEvent, throws out an object. You’ve seen the familiar syntax:

    dispatchEvent({type: “event”, target: this});

    It’s just “known” that you make at the very least a type attribute, and usually a target. The “known” attitude is what led us from Flash MX to Flash MX 2004. No more mispellings of variables, objects… we now have real-world syntax checking!

    But again, you can’t for vanilla, one time use objects like EventDispatcher and the XML Object’s attribute construct do. Therefore, one must be extremely careful. For the knowns, like label and data, or for events like type and target, your fine because everyone and their mom knows you type it in lowercase.

    However, for some events, they aren’t. For instance, all UIComponents get “focusIn” and “focusOut” events. See the capitalized In and Out? Tricky, tricky…

    XML is even worse. The second you utilize an attribute, you’ve immediately hardcoded your code. Now, as a seasoned Flash developer, I’m cool with that. XML parsing is my daily bread, and it’s just known that you quickly navigate your document to get the data in. Some people think that using recursion is more encapsulated, but that is dangerous as hell in Flash, can be slow for large objects, and if your in your Model class, who gives a flying flizz-narg?

    So, just some advice. When parsing XML attributes, make sure your capitalization in your XML node’s attributes (or internal structure) is the same as what your using in your code.

  • Scout Walker (AT-ST) Kama Sutra

    Via Johnny Bag o’ Doughnuts.

    It’s not Friday, but I’m off tomorrow, so…

    This is an online version of the book Kama Sutra, but for AT-ST’s (the 2 legged Imperial walkers in Star Wars). Some interesting pictures, reminiscent of Kermit the Frog and that bear whose various scenes of copulation, captured in SWF’s, were floating around the internet a couple of years ago. Anyway, the prose is off the wall, but the pictures are where the immediate comedy is.

    *** Not Work Safe ***

    Scout Walker Kama Sutra

  • asdf hyperlink in Flash goes to Microsoft Support Docs

    I can’t even think of a correct title. If you have a Flash hyperlink in an input text field that displays html with an href of “asdf” and a target of “”, and Firefox Preview Release 1.0 is your default browser, and you click the link, it’ll open the browser. The first tab will be blank. The second will go to a Microsoft Support Link, but it has a local path to your current working directory in the url field + “asdf” at the end.