首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JSFL脚本更改笔划缩放模式?

使用JSFL脚本更改笔划缩放模式?
EN

Stack Overflow用户
提问于 2013-12-11 23:49:42
回答 2查看 493关注 0票数 0

我知道使用JSFL的人不多,但我认为值得一试:

有没有什么方法可以使用JSFL遍历文档中的笔画,并将它们的比例类型更改为不同的设置?我知道如何在Flash IDE中(在绘图时在属性面板中)更改481页的scaleType,但我担心只有在脚本中创建新的笔画(而不是编辑文档中已经存在的笔画)时才能做到这一点。

这个问题的最终答案基本上在于您是否可以通过JSFL检索文档中的现有笔划对象。

EN

回答 2

Stack Overflow用户

发布于 2016-06-23 05:01:30

这将遍历库中的所有符号并更改笔划宽度。只需在运行stroke_width之前将其更改为所需的宽度即可。

代码语言:javascript
复制
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);
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-12-30 18:37:40

这是我一直在使用的一种方法,尽管我认为它有一些错误,但要小心。

代码语言:javascript
复制
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);
    }

我敢打赌,你可以找到一种方法来改变笔划对象,在你的意愿。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20523666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档