My JSFL Commands

So I’ve noticed a couple things.  First, most people who use Flash are either animators or programmers, but rarely both.  There are lots of animators who dabble in programming and lots of programmers who dabble in animation, but in my experience you’re likely to have much more passion about one than the other, leading to having much more skill and experience in that one as well.

The reason I mention this is that occasionally I think about how few people there are who produce decent JSFL commands.  I think it’s because the people who are really interested in Flash commands are the animators – particularly the professionals, who work in Flash every day.  It’s certainly true for me: I animate in Flash for 45 to 50 hours a week, and I frequently think of things that I wish Flash could do.  Earlier in my career, before I Knew the Way of the JSFL, I would just grumble to myself and go on working around that lack-of-feature or bug.  Unfortunately I think that’s what most Flash animators do, many of them not even being aware of the purpose of the Commands menu.

Eventually I discovered the Flash History Panel and that soon catapulted me into dissecting the scripts it could produce.  I used to be a software engineer, and I still enjoy programming sometimes in my free time, so I got pretty involved in this new pursuit.  At this point I’ve written more than 120 different Flash commands, making for a somewhat unwieldy Commands menu.  (If only Adobe would make subfolders work correctly in the commands menu!)

I’ve shared my Flash commands with my fellow animators at work and they really seem to appreciate them.  I really like it when I can share the things I make, particularly if others find them useful or valuable in some way.  Part of the reason I started this blog was to share my tools.  I’m still figuring out how exactly I’ll do that, though.  I’m debating trying to sell at least some of them, but I’m also tempted to give them away for the Betterment of Mankind.

Anyway, for now I’m going to put up a list of the commands in my commands folder.  I hope to get to most of them eventually, posting the command packaged in an installer and with a short video illustrating some ways to use it.

Note that some of the commands in the list below are ones that I downloaded from other web sites, written by someone else.  Some of them are ones that started like that but I’ve modified to one extent or another.  Most of them, though, I wrote myself from scratch.

anticipate 10%.jsfl
anticipate 20%.jsfl
anticipate 30%.jsfl
anticipate 40%.jsfl
anticipate 50%.jsfl
auto tween 10%.jsfl
auto tween 20%.jsfl
auto tween 30%.jsfl
auto tween 40%.jsfl
auto tween 50%.jsfl
auto tween 60%.jsfl
auto tween 70%.jsfl
auto tween 80%.jsfl
auto tween 90%.jsfl
auto tween match next frame.jsfl
auto tween one third.jsfl
auto tween two thirds.jsfl
auto tween.include
Change to Graphic Symbol.jsfl
COLOR – match Fill to Stroke.jsfl
COLOR – match Stroke to Fill.jsfl
Copy First Pivot Point.jsfl
Copy Font Name for ActionScript.jsfl
Copy Last Pivot Point.jsfl
Copy Motion as XML.jsfl
create symbol scale reference.jsfl
Delete all raw shapes.jsfl
distribute to frames.jsfl
duplicate and edit.jsfl
ease in 100%.jsfl
Ease in and out.jsfl
ease out 100%.jsfl
Export Motion XML.jsfl
Find And Replace.jsfl
Import Motion XML.jsfl
Instance Namer 2.0.jsfl
invert selection.jsfl
layer colors blue and red.jsfl
Layer Split Simple 2.0.jsfl
Library Items Renamer.jsfl
Library Items Renamer.xml
Merge Layers.jsfl
motion tween (no sync).jsfl
move and set keyframes but keep same
move miniscule down.jsfl
move miniscule left.jsfl
move miniscule right.jsfl
move miniscule up.jsfl
Movie Clip Zapper.jsfl
Multi Swap.jsfl
Multiframe Distribute.jsfl
overshoot 10%.jsfl
overshoot 20%.jsfl
overshoot 30%.jsfl
overshoot 40%.jsfl
overshoot 50%.jsfl
reflect local across x.jsfl
reflect local across y.jsfl
remove ease.jsfl
rename and edit.jsfl
Render directory to SWF.jsfl
Reset Pivot Point.jsfl
Reset rotation.jsfl
Reset scale.jsfl
Reset to reference symbol.jsfl
same object frame dec.jsfl
same object frame inc.jsfl
same object keyframe dec.jsfl
same object keyframe inc.jsfl
Select Symbol Instances.jsfl
set fr 0.jsfl
set fr 1.jsfl
set fr 2.jsfl
set fr 3.jsfl
set fr 4.jsfl
set fr 5.jsfl
set fr 6.jsfl
set fr 7.jsfl
set fr 8.jsfl
set fr 9.jsfl
set fr down.jsfl
set fr up.jsfl
set frame.include
Set Import Source.jsfl
Set Import Source.xml
Set Instance Names and make heads MovieClips.jsfl
set keyframe with same selection.jsfl
shape data test.jsfl
Shape Tween Finder.jsfl
Silhouette all.jsfl
static set fr 0.jsfl
static set fr 1.jsfl
static set fr 2.jsfl
static set fr 3.jsfl
static set fr 4.jsfl
static set fr 5.jsfl
static set fr 6.jsfl
static set fr 7.jsfl
static set fr 8.jsfl
static set fr 9.jsfl
Sync Pivots Backwards.jsfl
Sync Pivots Forward.jsfl
sync symbols.jsfl
Toggle head graphic symbol.jsfl
toggle motion tween (no sync).jsfl
toggle shape tween.jsfl
transform each
Transform Each.jsfl
Transform Each.xml
turn off sync.jsfl
Tween on 2’s.jsfl
ungroup all.jsfl
Vertex Counter.jsfl
Zero Transform as is.jsfl
Zero Transform at scale.jsfl
Zero Transform at scale.xml
Zero Transform.include
zoom in.jsfl
zoom out.jsfl

5 thoughts on “My JSFL Commands

  1. Dave Stewart says:

    Hey man, really liking all your work on JSFL!

    Not sure why you don’t know this – but you know you can stick your commands in subfolders, yeah? Makes life much easier.

    I will keep an eye on your blog 😉

  2. David says:

    Theoretically, you’re right. I’ve actually tried to use folders several times, each time thinking “oh, maybe I didn’t try this one thing last time.” The problems I encounter every time (on multiple installations, regardless of whether the 10.0.2 patch is installed) are twofold:

    1. Commands in subfolders don’t remember their keyboard shortcuts after Flash is restarted. They can be re-established with a visit to the keyboard shortcuts dialog. I could handle this bug alone with an external program such as Autohotkey (which I already use to automatically open the commands menu after starting Flash to avoid the ‘unable to open file “”‘ error that you’ve probably encountered if you have hotkeys assigned to your commands).

    2. When I put commands in subfolders Flash seems to create erroneous duplicate entries in the main commands menu, meaning that the commands menu remains longer than the screen can handle (because I have so many commands). Of course, half the reason for using subfolders is to make it to I can see all the commands in the main Commands menu at once — to avoid having to scroll.

    2(a). It’s been a while since I tried the whole subfolder thing, but I seem to remember the funky duplicate entries also messing up the hotkey assignments to the commands that weren’t in subfolders

    So yeah, it didn’t work right when I tried it (multiple times). I’ve reported both of these bugs to Adobe but based on past experience I’ll be surprised if they’ve addressed them in CS5. If you’ve had more success I would love to hear about it, including how many commands you have in your commands menu. If you’ve run into any of the issues I mentioned, what was your workaround?.

  3. Dave Stewart says:

    Well, my commands menu isn’t as large as that – but I absolutely hear you when it comes to bugs!

    The lesser-used features or Flash don’t get the attention they deserve somehow. I spent a LOT of time hacking the XMLUI a couple of years ago… although now I am playing with the joy that is MMExecute. Each has its foibles!

    On my list of nice things to make is actually a Scripts Launch panel. Shouldn’t actually be too difficult now I am up on the whole MMExecute thing. Essentially an alternative to the main menu – a Flash panel that shows all scripts recursively, running them on a double-click. Not sure yet how I would handle folders – maybe with a tree, maybe with a dropdown and just a simple list.

    The advantage of that is also such goodies as custom icons, tooltips parsed from the script files themselves, your limit is your imagination really.

    * @name Funkybrush
    * @category Art Brushes
    * @icon icons/brushes.png

    Either that, or good old XML!

    You could still have everything in your main commands menu so you get your shortcuts, but categorize them in the Launcher.

    JSFL is all good…

  4. David says:

    Sorry I didn’t notice your comment sooner. Anyway, that’s a good idea about setting up a menu system through a WindowSWF panel. You’re right, it doesn’t seem like it should be too hard, and it’ll mostly solve my problem with organization. I’d never have to open the commands menu at all, instead accessing all my non-shortcutted commands through the panel. Still, I really hope Adobe has fixed the subfolders in the commands menu in CS5. I’m really itching to get my hands on it!

  5. Dave Stewart says:

    Hey David,
    Well that my JSFL stuff has now morphed into a fully-fledged framework, with, as promised the script launcher I spoke about. Check it out at Launching in October 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *