Flash 使用JSFL脚本更改笔划比例模式?
我知道使用JSFL的人不多,但我认为值得一试: 是否有任何方法可以使用JSFL循环文档中的笔划,并将其比例类型更改为不同的设置?我知道如何在Flash IDE中(在绘图时的属性面板中)执行此操作,并且确实提示可以更改第481页上的Flash 使用JSFL脚本更改笔划比例模式?,flash,jsfl,Flash,Jsfl,我知道使用JSFL的人不多,但我认为值得一试: 是否有任何方法可以使用JSFL循环文档中的笔划,并将其比例类型更改为不同的设置?我知道如何在Flash IDE中(在绘图时的属性面板中)执行此操作,并且确实提示可以更改第481页上的scaleType,但我担心这可能仅在脚本中创建新笔划时才可行(而不是编辑文档中已经存在的笔划) 这个问题的最终答案本质上取决于是否可以通过JSFL检索文档中现有的笔划对象。这里是我一直在使用的一种方法,尽管我认为它有一些bug,但请小心 for (j=0; j <
scaleType
,但我担心这可能仅在脚本中创建新笔划时才可行(而不是编辑文档中已经存在的笔划)
这个问题的最终答案本质上取决于是否可以通过JSFL检索文档中现有的笔划对象。这里是我一直在使用的一种方法,尽管我认为它有一些bug,但请小心
for (j=0; j < selection.edges.length; j++)
{
var cubicPoints = selection.getCubicSegmentPoints(j);
// for (var i=0; i<cubicPoints.length; i++) {
// trace("index " + i +" x: " + cubicPoints[i].x + " y: " + cubicPoints[i].y);
// }
if ( Math.abs(cubicPoints[0].x - cubicPoints[3].x) && Math.abs(cubicPoints[0].y - cubicPoints[3].y))
{
border_object.radius_array.push(Math.abs(cubicPoints[0].x - cubicPoints[3].x));
continue;
}
//it's not a corner so get the stroke properties
var obj = {};
obj.x_pos = cubicPoints[0].x;
obj.y_pos = cubicPoints[0].y;
if (selection.edges[j].stroke)
{
obj.stroke_thickness = selection.edges[j].stroke.thickness == undefined ? '0' : selection.edges[j].stroke.thickness;
if (selection.edges[j].stroke.shapeFill)
obj.fill_properties = getFillProperties(selection.edges[j].stroke);
else
obj.fill_properties = [];
}
border_object.stroke_properties.push(obj);
}
for(j=0;j //对于(var i=0;i这将迭代库中的所有符号并更改笔划宽度。只需在运行它之前将笔划宽度更改为所需的宽度
var stroke_width = 20;
fl.trace("Changing all strokes width to " + stroke_width);
function changeStroke(element, width)
{
if (element.elementType == "shape") {
var stroke = element.getCustomStroke();
stroke.thickness = width;
element.setCustomStroke(stroke);
// recurse for groups
for (var iSubE in element.members) {
var sub_element = element.members[iSubE];
changeStroke(sub_element, width);
}
}
}
var libItems = fl.getDocumentDOM().library.items;
for (var item_it in libItems)
{
var item = libItems[item_it];
if (item == undefined || item.symbolType == undefined)
{
continue;
}
var timeline = item.timeline;
for (var layer_it in timeline.layers)
{
var layer = timeline.layers[layer_it];
var frame = layer.frames[0];
for (var element_it in frame.elements)
{
var element = frame.elements[element_it];
changeStroke(element, stroke_width);
}
}
}