Skip to main content
Known Participant
November 9, 2022
Answered

jsfl to be fixed

  • November 9, 2022
  • 2 replies
  • 643 views
(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

This topic has been closed for replies.
Correct answer JoãoCésar17023019

Hi.

 

I think it should be obj.name and not obj.itemName;

for each (obj in secondDoc.library.items)
{
    var flag = GetFlag(obj+"", ui);
    obj.name = flag == "true" ? obj.name : obj.name + ui.prefix;
}

 

Also, adding a string to the obj variable doesn't make sense to me.

var flag = GetFlag(obj+"", ui);

 

Regards,

JC 

2 replies

JoãoCésar17023019
Community Expert
JoãoCésar17023019Community ExpertCorrect answer
Community Expert
November 9, 2022

Hi.

 

I think it should be obj.name and not obj.itemName;

for each (obj in secondDoc.library.items)
{
    var flag = GetFlag(obj+"", ui);
    obj.name = flag == "true" ? obj.name : obj.name + ui.prefix;
}

 

Also, adding a string to the obj variable doesn't make sense to me.

var flag = GetFlag(obj+"", ui);

 

Regards,

JC 

kqskcmAuthor
Known Participant
November 10, 2022

Thank you so much!perfect repair

JoãoCésar17023019
Community Expert
Community Expert
November 10, 2022

You're welcome!

kglad
Community Expert
Community Expert
November 9, 2022

why does it fail?

kqskcmAuthor
Known Participant
November 9, 2022

Unable to add prefix to symbol

kglad
Community Expert
Community Expert
November 9, 2022

which line of code is failing first?