Look Ma, I’m on the Internets!

Justin | Misc, links, nerdy | Monday, April 6th, 2009

The bona fide internets, even. I’m in the Adobe Developer Spotlight this month.

Help in the Downturn

Justin | Misc, links | Friday, April 3rd, 2009

Even though the economy is completely haywire, parts of the community have proved to be very reliable. Aaron Simpson at ColdHardFlash is offering help for animators seeking work, and Adobe is offering a free copy of FlexBuilder to members of the community who are unemployed.

Kudos to both of them. Hopefully more organizations will follow suit.

Hacked!

Justin | Misc | Tuesday, March 31st, 2009

Two days ago I went to visit the Ajar Productions main page and found that the blog feed was generating an error. In looking at the feed, I found there was a long and obfuscated <script> tag at the end of the file. In searching further, I found that the same script had been appended to nearly every page named ‘index’ on our webserver. My best guess is that this was a WordPress hack. So I spent quite a bit of time cleaning out the offending code from every page and adding about a dozen new security measures to the site. I think that the intended effect of the hack was to redirect traffic away from our pages, but I don’t know if it was successful. My apologies if anyone was redirected while visiting our site.

I found these links especially helpful in improving the security of the site:

Hacking the Flash CS4 Motion Model to Create New Extensions

Justin | ExtendScript, Flash, Misc, Tutorials, jsfl, tips | Wednesday, March 4th, 2009

Here’s a quote from an email I sent to Chris Georgenes and David Stiller on 9/29/08 about an extension idea that I had using the new motion tweens in Flash CS4 (before I’d even used the application):

Given that the new motion tween creates a bezier path, I’m guessing that we’ll have access to creating such a path with JSFL. Which led me to think about creating that path in real-time, similar to the real-time drawing that I’d seen from ScribbleBot on Chris’s blog. Instead of scribbling a line in real-time, I’d be sketching a motion path. There would be a variable to determine “smoothness” so that it doesn’t create an unmananageable amount of new motion keyframes. And it could probably be done with a custom tool rather than a panel, so that the sketching could be done directly on the stage.

That also leads me to wonder if there’s a way to record the armature animation in real-time and convert it to a motion tween, similar to the feature that already exists in After Effects CS3.

I know, I’m a nerd. The first idea there became MotionSketch. I haven’t yet found a way to accomplish the second idea with the armature, but I have a few ideas.

Prior to the release of Flash CS4, I had gotten a little hooked on creating Flash extensions. It’s quite easy to create a classic motion tween with JSFL (Flash Javascript), you can simply make the following call: timeline.createMotionTween(). It was likely that createMotionTween() would remain for legacy support even though the name of the tween had changed from “motion” to “classic.” I’d seen all of the great new motion features demonstrated online, and I expected there might be an equivalent call for a new motion tween. When Lee Brimelow linked to the CS4 documentation, I went right to the Extending Flash section to see what had been added. I didn’t see any additions for the motion features, but I had also previously seen Lee’s post on Flash Camp in San Francisco. Fortunately, I live close to San Francisco and I decided to head over try out the application early, and maybe get a chance to talk with some of the Flash team about any undocumented features.

While at Flash Camp, I spoke with Richard Galvan and he directed me to John Mayhew, the engineer behind the new motion model in Flash. John was very affable and willing to follow up with me, but he didn’t know of any undocumented features offhand. Unfortunately, adding features to the JSFL API is usually somewhat of an afterthought because so much of the development time is spent on the new features themselves. I had a few ideas to use the new 3D features while at Flash Camp as well, but they were similarly left out of the JSFL API.

So I let those ideas go for awhile and focused on a different extension as my Flash Camp project. A few weeks later, I got a little antsy and I starting digging around in the Flash configuration directory for clues. I noticed two files in the Javascript directory named MotionXML.jsfl and MotionClipboard.xml. I started looking around in the JSFL file for undocumented commands that I could use, but to little avail. I think I even put some trace calls into the JSFL to spit out info when copying motion from the Flash IDE. I noticed that even though copying and pasting a new motion tween appeared to work the same way in the Flash interface as copying and pasting a classic tween, a new motion tween was not triggering the calls in the JSFL file. Looking at the XML file, I found that even though copying a motion tween wasn’t using the same JSFL calls, it was saving XML to the same file…just different XML. The classic tweens were generating XML with a root tag of <Motion> and the new tweens were generating a root tag of <AnimationCore>.

Flash seemed to be able to discern which type of motion it was copying or pasting and acting accordingly. So it occurred to me that I could grab the data from the motion clipboard and alter it before pasting it back. Additionally, if I wanted data from an existing tween, I could run a Copy Motion command, available to JSFL as of Flash CS3 thanks to Robert Penner’s Copy Motion feature, then go about altering and pasting. These are the extensions that I’ve created thus far using that very technique:

Below is a rundown of the steps I used in the extensions mentioned above. This technique can be used in lieu of the non-existent timeline.createMotionObjectTween() command. I refer to this as a “hack” because it’s an unsupported method, but given the complexity of what can be created with this new motion model, editing the XML is actually a fairly efficient way to go about creating/editing a tween. If the XML is not properly formed, it can cause Flash to crash when you try to paste the motion, or it can create some funky bugs in the Motion Editor. Be sure to test your code thoroughly before releasing anything for public consumption. The language is JSFL (used to automate and manipulate the Flash authoring environment). There’s a link to documentation for the AnimationCore XML listed in step 3.

(more…)

LiveHTTPHeaders Firefox Addon: See what’s being loaded into your page

Justin | Misc, links, tips | Wednesday, December 17th, 2008

A while back, someone tipped my off to the Activity Window in Safari. This window is fantastic if you doing Flash development and need to debug on a live website. It will show you any images, videos, XML files, or anything else that’s getting loaded into your page.

I’m a Firefox user, so I went looking for an add-on that would do the same thing in Firefox. While it’s not quite as organized (i.e., it isn’t structured in a tree menu like the Activity Window), the “generate” tab of livehttpheaders is a pretty close substitution.

Originally found on What Do I Know.

UPDATE:  As Tim notes below, Firebug also has this capability. It’s under the ‘net’ section of the Firebug window. You have to choose to enable this feature before you see anything.


New Ajar Productions Homepage (Finally!)

Justin | Misc, links | Monday, December 15th, 2008

I finally got around to putting up a new Ajar Productions homepage.

Ajar Homepage Screen Capture

It’s pretty minimal, but it’s better than a placeholder.

New Technologies Introduced at Adobe MAX 2008

Justin | Misc, conferences, links | Tuesday, November 25th, 2008

I found this great rundown from Sönke Rohde, and this one from Serge Jespers, on the new Adobe technologies introduced at MAX.

Branden Hall has great article on Alchemy, a new technology which compiles C/C++ into Actionscript. This will allow Flash and Flex developers to take advantage of powerful open-source C/C++ code libraries.

One of the underlying themes at MAX that was interesting for me is that many of the applications are moving to open, XML-based formats (INDL, FXG, FXP, XFL), which will allow people like me to write applications that interact with those files. Combine that with the ability to create desktop applications with AIR, and new extensibility tools like Switchboard and PatchPanel, and all of the sudden I’ve got a tremendous amount of control over my workflow. There’s also a lot of potential to create tools for others to use.

Looks like recorded sessions from MAX North America will be available (for free) in the next two weeks or so at tv.adobe.com. I planning on checking out many of the sessions that I missed as there were far too many good sessions to choose from.

Liveblogging from MAX NA 2008:

Jen DeHaan
Peter DeHaan
(2) (3)
Serge Jespers (2) (3) (4)
DispatchEvent

Page 1 of 212

Powered by WordPress