HTML & Flash: Explained Part 1

Justin | Animate/Flash,HTML5,Tutorials | Tuesday, April 10th, 2012

This is the first video in a series on digital literacy. The goal of this video is to provide an overview of HTML and Flash technologies, primarily for non-technical viewers. Future videos may cover aspects of these technologies in more depth and provide a foundation for deciding when to use each technology.

FrameScrub Flash Extension

Justin | Animate/Flash,animation,extensions | Wednesday, April 4th, 2012

Introducing FrameScrub, the lip-syncing tool for those who want to go panel-less.

How it Works

It works in most ways like the selection tool: you can click to select, double-click to edit, but you can also scrub-slide through graphic symbol frames.

You can even scrub through loop settings (using the Alt/Opt key).


  • Click and drag to update the first frame that is displayed.
  • Hold SHIFT to cycle through frames faster.
  • Hold ALT (OPT on Mac) to cycle through loop settings (Loop, Play Once, Single Frame).
  • Hold CTRL (CMD on Mac) to temporarily revert to the Selection Tool.


(compatibility: CS3 and newer, including CC and CC 2014, Flash 8 & MX 2004 untested)


Open the MXP file in Extension Manager, follow the steps, and restart Flash. If you don’t see the FrameScrub in your toolbar (behind the selection tool), you can add it by accessing Edit (Flash on Mac) > Customize Tools Panel… Select a tool position, locate FrameScrub in the list on the left and use the right-facing arrow button to add FrameScrub to the selected tool position.

Update (11/29/12): I didn’t realize until someone pointed it out, but there’s no direct way to add a keyboard shortcut to a custom tool. To help with this, I’ve add a Command to the extension that will activate FrameScrub. A keyboard shortcut can then be added to that Command.

Other Lip Sync Tools from Ajar Productions

Flannel: Open Newer FLA Files

Justin | AIR,Animate/Flash,software | Tuesday, March 6th, 2012

On a few occasions, I’ve had to open Flash CS5.5 files on a machine with CS5. Since the FLA format is now XML- and ZIP-based, it’s relatively easy to unzip the package, open a file, and set the version back so that the file can be opened in Flash CS5. It does, however, take time. So I decided to make this process into an easy-to-use desktop application.


Just drag and drop a Flash CS5.5 (or CS6, or CC) FLA file onto Flannel and it will make a copy and append _CS5 to the file name. That file can be opened in Flash CS5 (or later). Conversion for CS4 is a little trickier, since several new elements were added for CS5, but I’m working on it.


You can install Flannel using the badge below.

Please upgrade your Flash Player This is the content that would be shown if the user does not have Flash Player 9.0.115 or higher installed.

Or you can download the file directly Flannel.air (Adobe AIR is required).

Flannel is available at no cost, but donations are welcome.

Looking for more cool Flash stuff?

If you like Flannel, you should also check out the numerous Flash Extensions and other tools that we have available.

EaseCaddy Resources Posted

Justin | Animate/Flash,animation,extensions | Wednesday, February 29th, 2012

I’ve posted some EaseCaddy resources.

I’ll continue to collect them, if you have custom eases or tutorials to share (on easing), you can post them in the comments below or send them directly to us.

Google SpreadSheet Scripts for Better Printing

Justin | GoogleDocs | Tuesday, February 14th, 2012

I’ve been using Google Docs more lately. Especially for spreadsheets. One thing that I noticed when trying to print is the effect of excess empty cells. When you choose File > Print in Google Docs, the system renders a PDF from the server and prompts you to save that PDF. If you have several empty rows and column, those will be included in your PDF. If you selected Fit to Page (the default), your text (like mine) could be tiny. I went looking for a Set Print Area option similar to the one found in MS Excel, but could not find it. So I wrote a few custom scripts to solve the issue instead.

Locating the Scripts

The 2 scripts below have been submitted to the Google Script Gallery and should be available by choosing Tools > Script gallery… then searching for the term crop. As of writing this post, the first script below is already available.

I’m including the code below in case anyone has difficulty finding them or would like to copy and modify the code for their own purposes.

Crop to Selection

Crops cells to the current selection for better printing.
function cropToSelection() {
  var sSheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = sSheet.getActiveSheet();
  var range = sSheet.getActiveSelection();
  var startCol = range.getLastColumn();
  var startRow = range.getLastRow();
  var endCol = sheet.getMaxColumns();
  var endRow = sheet.getMaxRows();
  try{sSheet.deleteColumns(startCol, endCol - startCol);} catch(e){};
  try{sSheet.deleteRows(startRow, endRow - startRow);} catch(e){};

Crop All Sheets

Crops each sheet in the worksheet to the cells that contain content.
function cropAllSheets() {
  var sSheet = SpreadsheetApp.getActiveSpreadsheet();
  var numSheets = sSheet.getNumSheets();
  var sheets = sSheet.getSheets();
  var i;
  for(i=0; i < numSheets; i++){
    var sheet = sheets[i];
    var range = sheet.getDataRange();
    var startCol = range.getLastColumn();
    var startRow = range.getLastRow();
    var endCol = sheet.getMaxColumns();
    var endRow = sheet.getMaxRows();
    if(endCol > startCol) sheet.deleteColumns(startCol, endCol - startCol);
    if(endRow > startRow) sheet.deleteRows(startRow, endRow - startRow);