-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRevan - Export selected stage items as PNGs.jsfl
99 lines (79 loc) · 2.13 KB
/
Revan - Export selected stage items as PNGs.jsfl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
fl.trace("");
fl.trace("Revan - Export selected stage items as PNGs");
//var pathBase = document.pathURI.replace(document.name, "")
var exportPath = fl.browseForFolderURL("Select export path");
fl.trace(exportPath);
var useLibraryFolderStructure = confirm("Use library folder structure?");
var document = fl.getDocumentDOM();
var documentInitWidth = document.width;
var documentInitHeight = document.height;
offsetAllStageElements(3000);
exportElements();
offsetAllStageElements(-3000);
document.width = documentInitWidth;
document.height = documentInitHeight;
document.selectNone();
function exportElements()
{
var selection = document.selection;
for(var i = 0; i < selection.length; i++)
{
var element = selection[i];
if(element.elementType == "instance")
{
var layerName = element.layer.name;
if(layerName == "trash")
{
continue;
}
var fullNameInLib = element.libraryItem.name;
if(fullNameInLib.indexOf("_parts") != -1) continue;
if(fullNameInLib.indexOf("_trash") != -1) continue;
document.width = Math.ceil(element.width);
document.height = Math.ceil(element.height);
var elementInitX = element.x;
var elementInitY = element.y;
element.x = 0;
element.y = 0;
if(layerName == "align_center")
{
element.x = element.width/2;
element.y = element.height/2;
}
var nameToUse;
if(useLibraryFolderStructure)
{
nameToUse = fullNameInLib;
}
else
{
var split = fullNameInLib.split("/");
nameToUse = split[split.length - 1];
}
var path = exportPath + "/" + nameToUse + ".png";
fl.trace(path);
document.exportPNG(path, true, true);
element.x = elementInitX;
element.y = elementInitY;
}
}
}
function offsetAllStageElements(tmpElemetsOffset)
{
var i = 0;
var layers = fl.getDocumentDOM().getTimeline().layers;
while(i < layers.length)
{
var j = 0;
var elements = layers[i].frames[0].elements;
while(j < elements.length)
{
var element = elements[j];
element.x += tmpElemetsOffset;
element.y += tmpElemetsOffset;
j++
}
i++;
}
}
fl.trace("");