ExtendScript的UnitValue

Cod*_*ith 3 adobe extendscript

因此,对于我的生活,我无法找到ExtendScript的UnitValue对象的组件的明确细分.我发现的每个来源都与Adobe有关,并没有解释它.我真的希望对它有一个完整的参考,但如果没有人能找到它,我至少需要回答几个问题.

首先,它的构造函数是什么?
        我已经看到UnitValue(10,'px')哪些是有意义的,但我也看过UnitValue(20,20)
第二,你怎么能从一个单位转换到另一个单位?
第三,你如何找到它的价值和单位?
        我想我已经看到uv.value但没有得到单位

最后,正如我的标签所示,这是Adobe,当然,因为我从未见过或听说过使用ExtendScript的任何其他程序.

J. *_*son 6

UnitValue记录在Adobe JavaScript 工具指南 中

特别是,您创建了一个对象v = new UnitValue(number, unit),其中unit是一个字符串值,如in(英寸)、mm(毫米)、pt(点)、px(像素)等。

要将 UnitValue 转换为实际数字,请使用as方法,例如v.as("cm")转换v为厘米。


Cod*_*ith 5

嗯,似乎没有其他人知道,我终于想出了一些,所以我想我会自己回答:

<这个网站>作为一个文档有点帮助,但我认为Adobe的功能略有不同.

UnitValue的主要构造函数是:

    UnitValue(numericalvalue,unit)
Run Code Online (Sandbox Code Playgroud)

我还看到了一个接受一个字符串的替代方法:

    UnitValue("42 in")
Run Code Online (Sandbox Code Playgroud)

对于转换,UnitValue带有一个方便的as方法,它接受转换为(作为字符串)的单位,然后在该单位返回其测量值,即:

    UnitValue(5,'ft').as('in') === 60
Run Code Online (Sandbox Code Playgroud)

(注意,根据我发现的参考,我相信该as方法应该在转换为指示的单位后返回UnitValue实例;但是,Adobe的实现似乎只是返回值 - 因此我使用了类型相等运算符以上显示Adobe的方法)为获取数值和测量单位,存在以下两个属性:

    UnitValue.value  // number: the numerical value
    UnitValue.type  // string: the unit of measurement
Run Code Online (Sandbox Code Playgroud)

这是我的研究所能找到的.如果有人有更好的答案,发布,我可能会接受.