如何在 JSFL 中获得符号的描边边界?

Posted

技术标签:

【中文标题】如何在 JSFL 中获得符号的描边边界?【英文标题】:How does one get the stroked bounds of a symbol in JSFL? 【发布时间】:2011-12-24 19:30:57 【问题描述】:

actionscript 中的DisplayObject.getBounds 返回包含笔划的对象的边界。 JSFL 中 SymbolInstance 的 left、top、width、height 属性似乎不包括笔划。这是我发现从 JSFL 获取符号边界的唯一方法。还有其他方法吗?

【问题讨论】:

【参考方案1】:

在获取对象的边界时,对于 JSFL,笔划的宽度为 0。 我能想到的唯一方法是编辑符号,选择形状,然后 1.) 获取笔画大小并将其值的 1/2 添加到您的计算中,或者 2.) 将笔画转换为填充(对于复杂的轮廓不可靠)

如果你只希望包含笔画但精确的大小并不重要,你可以在 getBounds 的结果中任意添加一些像素。

【讨论】:

我相信 1 仅在笔画围绕整个对象时才有效,而 2 由于您给出的原因而失败。遗憾的是,当我试图将符号导出到图像并在 Flash 外部重新创建它们的位置时,我确实需要精确的尺寸。不过感谢您的尝试!【参考方案2】:

您正在Shape 上寻找Edge 对象。 Edge 有一个 Stroke 对象,该对象具有 thickness 属性。

// This will show the selected shape's first edge's thickness:
fl.trace(fl.getDocumentDOM().selection[0].edges[0].stroke.thickness );

您必须遍历所有形状及其所有边缘以确定最终边界(如果您确信所有边缘具有相同的厚度,只需检查一个)。

【讨论】:

以上是关于如何在 JSFL 中获得符号的描边边界?的主要内容,如果未能解决你的问题,请参考以下文章

Unity Shader 卡通渲染 基于退化四边形的实时描边

请问如何用css实现字体的描边效果。类似photoshop中文字的描边效果

普通的css普通的描边字

三次贝塞尔曲线描边轮廓

通过 CSS 更改 svg 的描边颜色

Flutter 中带有描边圆形背景的对话框