Skip to main content
Known Participant
Nov 9, 2022 9:14 AM UTC
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

This topic is closed to new replies. Start a new post to keep the conversation going.
JoãoCésar17023019
JoãoCésar17023019Correct answer
Community Expert
Nov 9, 2022 5:51 PM UTC

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 

6 replies

JoãoCésar17023019
Community Expert
JoãoCésar17023019Community ExpertCorrect answer
Community Expert
Nov 9, 2022 5:51 PM UTC

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 

Translate
kqskcmAuthor
Known Participant
Nov 10, 2022 2:11 AM UTC

Thank you so much!perfect repair

Translate
JoãoCésar17023019
Community Expert
Community Expert
Nov 10, 2022 11:03 AM UTC

You're welcome!

Translate
kglad
Community Expert
Community Expert
Nov 9, 2022 3:51 PM UTC

why does it fail?

Translate
kqskcmAuthor
Known Participant
Nov 9, 2022 4:33 PM UTC

Unable to add prefix to symbol

Translate
kglad
Community Expert
Community Expert
Nov 9, 2022 4:38 PM UTC

which line of code is failing first?

Translate