function configureEffect(){ } function executeEffect(){ var curr_eff = fl.activeEffect; var curr_doc = fl.getDocumentDOM(); var curr_tl = curr_doc.getTimeline(); var theFrame = curr_tl.currentFrame; curr_tl.insertFrames(curr_eff.duration - 1); curr_doc.enterEditMode(); curr_tl = curr_doc.getTimeline(); curr_tl.insertFrames(curr_eff.duration - 1); curr_tl.convertToKeyframes(0, curr_eff.duration); for(var i = 0; i < curr_eff.duration; i++){ var angle = Math.PI * 2 / curr_eff.duration * i; if(curr_eff.direction == "Counterclockwise"){ angle = -angle; } var xDist = Math.cos(angle)*curr_eff.radius; var yDist = Math.sin(angle)*curr_eff.radius; curr_tl.currentFrame = i; curr_doc.selectAll(); curr_doc.moveSelectionBy( {x:xDist, y:yDist} ); if(curr_eff.alignPath){ curr_doc.rotateSelection(angle*180/Math.PI+90); } } curr_doc.exitEditMode(); if(curr_eff.alignPath){ var curr_elem = curr_doc.selection[0]; curr_elem.setPersistentData("aligned", "string", "true"); } curr_tl = curr_doc.getTimeline(); curr_tl.currentFrame = theFrame; } function removeEffect(){ var curr_doc = fl.getDocumentDOM(); var curr_elem = curr_doc.selection[0]; if(curr_elem.hasPersistentData("aligned")){ if(curr_elem.getPersistentData("aligned") == "true"){ var aligned = true; } } curr_doc.enterEditMode(); var curr_tl = curr_doc.getTimeline(); var numFrames = curr_tl.layers[0].frameCount; curr_tl.removeFrames(1, numFrames); curr_tl.currentFrame = 0; curr_doc.selectAll(); curr_doc.group(); curr_doc.align("horizontal center", true); curr_doc.align("vertical center", true); if(aligned){ curr_doc.rotateSelection(-90); } curr_doc.unGroup(); curr_doc.exitEditMode(); curr_tl = curr_doc.getTimeline(); var selFrames = curr_tl.getSelectedFrames(); curr_tl.removeFrames(selFrames[1]+1, selFrames[2]); curr_tl.setSelectedFrames(selFrames[1], selFrames[1]); }