-
Notifications
You must be signed in to change notification settings - Fork 0
/
自动位图转矢量Bitmap2Edge.jsfl
142 lines (102 loc) · 4.61 KB
/
自动位图转矢量Bitmap2Edge.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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//
// BitmapToEdge
//
// This command was recorded by Adobe Animate.
// This plugin was made by Endlin Boeingstein 2024/5/19
//遍历library的文件,记录library的文件
var itemArray = an.getDocumentDOM().library.items;
//循环获取库内容
for(i in itemArray){
//输出文件名称
an.trace("library item's name:"+itemArray[i].name);
//输出文件类型
//an.trace(itemArray[i].itemType);
//判定是否为元件(影片剪辑/图形)
if(itemArray[i].itemType=="movie clip"||itemArray[i].itemType=="graphic"){
// 打开库中的元件
an.getDocumentDOM().library.editItem(itemArray[i].name);
//获取时间轴
var symboltl=itemArray[i].timeline;
//获取时间轴内的图层
var symbollayers=symboltl.layers;
//循环得到图层内容
for(var ly=0;ly< symbollayers.length;ly++){
an.trace("layer name:"+symbollayers[ly].name);
//获取帧数组
var frameArray = symbollayers[ly].frames;
//遍历获取帧
for(var frm=0;frm< frameArray.length;frm++){
//获取引用对象数组
var symbolelements=frameArray[frm].elements;
//var ele=0;
/*while(ele<symbolelements.length)*/
//遍历获取引用对象
for(var ele=0;ele<symbolelements.length;ele++){
//an.trace("element type:"+symbolelements[ele].elementType);
//如果类型为shape(edge)
if(symbolelements[ele].elementType=="instance"){
if(symbolelements[ele].instanceType=="bitmap"){
an.getDocumentDOM().selectNone();
//定位到当前层
an.getDocumentDOM().getTimeline().currentLayer=ly;
//定位到当前帧
an.getDocumentDOM().getTimeline().currentFrame=frm;
//检测是否被锁或者是否隐藏
if((!an.getDocumentDOM().getTimeline().getLayerProperty("locked")&&(an.getDocumentDOM().getTimeline().getLayerProperty("visible")))){
an.getDocumentDOM().selection=[symbolelements[ele]];
an.getDocumentDOM().traceBitmap(1, 1, 'pixels', 'few corners');
symbolelements=frameArray[frm].elements;
ele--;
an.getDocumentDOM().selectNone();
an.trace("BitmapToEdge......");
}
else{
an.trace("This layer is invisible or locked. ");
}
// //指向矢量图
// symbolelements[ele].selected = true;
// //废弃语句
// //选择编辑对象
// an.getDocumentDOM().library.selectItem(itemArray[i].name);
// //编辑元件
// an.getDocumentDOM().library.editItem();
// //选择矢量图
// an.getDocumentDOM().selection[0]=symbolelements[ele];
// //转换为位图
// an.getDocumentDOM().traceBitmap(1, 1, 'pixels', 'few corners');
}
/*else{
ele++;
}*/
}
/*else{
ele++;
}*/
}
}
}
// 返回到主场景
an.getDocumentDOM().exitEditMode();
//获取libaryitem名,否则返回场景名
//var it = symboltl.libraryItem;
//if (it)
//fl.trace("libraryItem name: " + it.name);
//else
//fl.trace("scene name: " + an.getDocumentDOM().getTimeline().name);
}
}
alert("BitmapToEdge Done");
// 选择库项目: Symbol 35
//var lib=an.getDocumentDOM().library;
//for (item in lib) {
//an.trace(lib[item].name);
//}
//an.getDocumentDOM().library.selectItem('Symbol 35');
// 编辑库项目
//an.getDocumentDOM().library.editItem();
// 更改选择: {x:17, y:29.1}, false, true
//an.getDocumentDOM().mouseClick({x:17, y:29.1}, false, true);
// 更改选择: {x:17, y:29.1}, false, true
//an.getDocumentDOM().mouseClick({x:17, y:29.1}, false, true);
// 转换为位图
//an.getDocumentDOM().convertSelectionToBitmap()