Created
February 9, 2011 00:51
-
-
Save sansumbrella/817650 to your computer and use it in GitHub Desktop.
Flash animation export script annihilates all non-essential frames
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
AnnihilateTime.jsfl | |
Pre-processing script for exporting animation keyframes | |
Use before exporting an image sequence | |
Duplicates your keyframes to new layers for export | |
Original layers become guides so they aren't exported | |
David Wicks, http://sansumbrella.com/ | |
*/ | |
// Set to false to prevent export | |
var doExport = true; | |
removeEmptyFrames = function( timeline, layerName ) | |
{ | |
var layerIndex = timeline.findLayerIndex(layerName); | |
timeline.currentLayer = layerIndex; | |
var frames = timeline.layers[layerIndex].frames; | |
var i = frames.length; | |
while( i-- ) | |
{ | |
if( i != frames[i].startFrame ) | |
{ //if not a keyframe | |
timeline.removeFrames( i, i ); | |
} | |
} | |
}; | |
dupeLayerAndMakeGuide = function( timeline, layerIndex ) | |
{ | |
timeline.currentLayer = layerIndex; | |
timeline.layers[layerIndex].layerType = "guide"; | |
timeline.copyFrames( 0, timeline.layers[layerIndex].frameCount ); | |
var layerName = timeline.layers[layerIndex].name + " Compressed"; | |
timeline.addNewLayer( layerName ); | |
timeline.pasteFrames( 0 ); | |
timeline.layers[timeline.currentLayer].layerType = "normal"; | |
return layerName; | |
}; | |
// run our functions | |
var timeline = fl.getDocumentDOM().getTimeline(); | |
var numLayers = timeline.layers.length; | |
var createdLayers = 0; // since new layers are shifted into the array | |
for( var i = 0; i < numLayers; i++ ) | |
{ | |
if( timeline.layers[i].visible == true && timeline.layers[i].layerType == "normal") | |
{ // only collapse visible, non-guide layers | |
var layerName = dupeLayerAndMakeGuide( timeline, i + createdLayers ); | |
removeEmptyFrames( timeline, layerName ); | |
createdLayers++; | |
} | |
} | |
if( doExport ) | |
fl.getDocumentDOM().exportPNG(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment