Answered
jsfl to be fixed
(function()
{
var UI = new UIPanelOBJ("TotalDuplicate", "Duplicate");
UI.add_string("Prefix for clones:");
UI.add_textbox("prefix", Math.round(Math.random()*1000), "Prefix for clones")
UI.add_string("______________________________________");
UI.add_string("Apply to:");
UI.add_radio("mode", "", "", [{id:"SelectedStageItems", value: "stage", selected:true}, {id:"SelectedLibraryItem", value: "library", selected:false}]);
UI.add_string("______________________________________");
UI.add_string("Ignore items:");
UI.add_checkbox("graphic", "Graphics", false);
UI.add_checkbox("movieclip", "MovieClips", false);
UI.add_checkbox("button", "Buttons", false);
UI.add_checkbox("bitmap", "Bitmaps", true);
UI.add_checkbox("sound", "Sounds", true);
UI.add_checkbox("flv", "Flv", true);
UI.add_checkbox("components", "Components", true);
UI.add_checkbox("font", "Embedded font", true);
UI.add_checkbox("slice9", "Slice9 MC", true);
UI.add_checkbox("folder", "Folders", true);
var ui_result = UI.show();
if(ui_result.dismiss == "accept")TotalDuplicateMC(ui_result);
})();
function TotalDuplicateMC(ui)
{
var firstDoc = fl.getDocumentDOM();
if(firstDoc == null)
{
return alert("Error: you must have an fla open as your active document to run this jsfl");
}
var selectedLibraryItems = firstDoc.library.getSelectedItems();
if(ui.mode == "library")
{
if(!selectedLibraryItems.length)
return fl.outputPanel.trace("Need select LybraryItems");
var secondDoc = fl.createDocument();
for each (selectedlibraryItem in selectedLibraryItems)
secondDoc.addItem({x:0,y:0}, selectedlibraryItem.timeline.libraryItem);
}
else
{
if(!firstDoc.selection.length)
return fl.outputPanel.trace("Need select a MC");
firstDoc.clipCopy();
var secondDoc = fl.createDocument();
secondDoc.clipPaste();
}
for each (obj in secondDoc.library.items)
{
var flag = GetFlag(obj+"", ui);
obj.itemName = flag == "true" ? obj.itemName : obj.itemName+ui.prefix;
}
//return;
secondDoc.selectAll();
secondDoc.clipCopy();
firstDoc.clipPaste();
secondDoc.close(false);
}
function GetFlag(type, ui)
{
switch(type){
case "[object FolderItem]":
return ui.folder;
case "[object VideoItem]":
return ui.flv;
case "[object BitmapItem]":
return ui.bitmap;
case "[object SoundItem]":
return ui.sound;
case "[object FontItem]":
return ui.font;
case "[object LibraryItem]":
return ui.components;
case "[object SymbolItem]":
if(obj.scalingGrid){
return ui.slice9;
}
if(obj.symbolType=="button"){
return ui.button;
}
if(obj.symbolType=="movie clip"){
return ui.movieclip;
}
if(obj.symbolType=="graphic"){
return ui.graphic;
}
default:
return "true";
}
}
function UIPanelOBJ(dialog_id, dialog_name)
{
return {
header_ui : "<?xml version=\"1.0\"?><dialog id=\""+dialog_id+"\" title=\""+dialog_name+"\" buttons=\"accept, cancel\"><grid><columns><column/><column/></columns><rows>",
bottom_ui : "</rows></grid></dialog>",
main_ui : "",
show : function()
{
return fl.xmlPanelFromString(this.header_ui + this.main_ui + this.bottom_ui);
},
add_script : function(script)
{
script = script.replace(/\"/g, "'");
this.main_ui += "<script>"+script+"</script>";
},
add_string : function (str)
{
this.main_ui += "<row align=\"center\"><label value='"+str+"'/></row>";
},
add_slider : function (id, label, value, minvalue, maxvalue)
{
this.main_ui += "<row align=\"center\"><label value='"+label+"'/><popupslider id='"+id+"' value='"+value+"' minvalue='"+minvalue+"' maxvalue='"+maxvalue+"'/></row>";
},
add_checkbox : function (id, label, checked, oncommand)
{
if(oncommand == undefined) oncommand ="";
if(checked==undefined) checked = false;
this.main_ui += "<row align=\"center\"><checkbox oncommand=\""+oncommand+"\" id='"+id+"' label='"+label+"' checked='"+checked+"'/></row>";
},
add_textbox : function (id, value, label)
{
this.main_ui += "<row align=\"center\"><textbox id='"+id+"' value='"+value+"' label='"+label+"'/></row>";
},
add_radio : function (id, value, groupbox, items)
{
this.main_ui += "<row align=\"center\"><radiogroup id='"+id+"' value='"+value+"' groupbox='"+groupbox+"'/></row>";
for each (item in items)
{
this.main_ui += "<row align=\"center\"><radio label ='"+item.id+"' value='"+item.value+"' selected='"+item.selected+"'/></row>";
}
}
}
}This function does not work in the new version of an
