(function(){
var doc = fl.getDocumentDOM();
var tml = doc.getTimeline();
main();
function main(){
var selection = tml.getSelectedFrames();
var numFrames = parseInt( prompt( "Enter the number of frames to add or subtract: " ) );
if( isNaN( numFrames ) ){
alert("Please enter a number");
return;
}
var i, l, s, e, insFrm = Math.abs( numFrames );
for( i = 0; i < selection.length; i +=3 ){
l = selection[i], s = selection[i+1], e = selection[i+2];
if( numFrames < 0 ){
removeFrames( tml.layers[ l ], l, s, e, insFrm );
}else{
addFrames( tml.layers[ l ], l, s, e, insFrm );
}
}
tml.setSelectedFrames([], true);
}
function addFrames( xlayer, l, s, e, fn ){
var f = e;
while( f > s ){
f = Math.max( s, getLayerPrevKey( xlayer, f ) );
tml.setSelectedFrames( [ l, f, f+1 ], true );
tml.insertFrames( fn );
}
}
function removeFrames( xlayer, l, s, e, fn ){
var f = e;
while( f > s ){
f = Math.max( s, getLayerPrevKey( xlayer, f ) );
tml.currentLayer = l;
tml.removeFrames( f+1, f+1+fn );
}
}
function getLayerPrevKey( alayer, sf ){
if( ! alayer ) return null;
var fi = ( ( sf - 1 ) < 0 ) ? 0 : sf - 1;
var fr = alayer.frames[ fi ];
if( ! fr ) return null;
return fr.startFrame;
}
})();
- Vlad: UX and graphic design, Flash user since 1998Member of Flanimate Power Tools team - extensions for character animation