// Fireworks JavaScript Command // Ungroups and applies any effects that were on the group to the children // Save this file in Fireworks/Configuration/Commands // Use in Fireworks via Commands > Ungroup With Effects //Aaron Beall - http://abeall.com var dom = fw.selection ? fw.getDocumentDOM() : false; // document object var sel = fw.selection ? new Array().concat(fw.selection) : new Array(); // saved selection function UngroupGracefully() { for(var s in sel){ if(sel[s]=='[object Group]'){ var groupEffectList = copyEffectList(sel[s].effectList); for(var e in sel[s].elements){ mergeEffectLists(sel[s].elements[e],groupEffectList); } } } dom.ungroup(); } UngroupGracefully(); function copyEffectList(effList){ if(effList){ return {category:effList.category,effects:new Array().concat(effList.effects),name:effList.name}; }else{ return {category:"UNUSED",effects:[],name:"UNUSED"}; } } function mergeEffectLists(elem,effList){ var newEffectList = copyEffectList(elem.effectList); for(var e in effList.effects){ var eff = copyEffect(effList.effects[e]); newEffectList.effects.push(eff); } elem.effectList = newEffectList; } function copyEffect(eff){ var newEffect = new Object(); for(var i in eff){ if(i!='javascriptString')newEffect[i] = eff[i]; } return newEffect; }