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

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

【问题讨论】:

    标签: actionscript-3 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 );
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      相关资源
      最近更新 更多