# 角度字段集

角度字段存储数字作为值,将字符串作为文本存储。其值是一个 0 到 360 之间的数字(可以更改),而其文本可以是输入到编辑器中的任何字符串。

# 角度字段

# 包含编辑器的角度字段

# 折叠角度字段

# 创建

角度构造函数接受一个可选值和一个可选 校验器。如果未指定值或给定值未转换为数字,则使用零作为默认值。

# 序列化

# 自定义

# 吸附

Blockly.FieldAngle.ROUND 属性用于更改使用鼠标时角度选择器“吸附”的值。

TIP

注意:这不会影响角度字段的文本输入部分,因此,如果您想确保角度值经过舍入处理,请使用验证工具

下面是一个 ROUND 值为 70 的示例:

Angle field with a ROUND value of 70

ROUND 属性默认为 15。如果要停用紧贴功能,请将其设置为 0。

这是一个全局属性,因此会在设置时修改所有角度字段。

# 方向

Blockly.FieldAngle.CLOCKWISE 属性会更改使角度值增加的方向。将此值设为 true 会使选择器在顺时针移动时增加角度,如果将其设置为 false,则会在逆时针移动时增加角度。

# CLOCKWISE 设置为 true

Angle field with CLOCKWISE set to true

# CLOCKWISE 设置为 false

Angle field with CLOCKWISE set to false

CLOCKWISE 属性默认为 false,这意味着逆时针移动会使角度增加。

这是一个全局属性,因此会在设置时修改所有角度字段。

# 零位

Blockly.FieldAngle.OFFSET 属性用于设置 0 度位置。默认情况下,零度与正 x 轴(向右)对齐,然后此属性按该位置“偏移”一定数量。

TIP

注意:偏移的方向始终为逆时针,与 CLOCKWISE 属性无关。

Angle picker zero at right

Angle picker zero at top

OFFSET 属性默认为 0,表示零度与正 X 轴对齐。

这是一个全局属性,因此会在设置时修改所有角度字段。

# 范围

Blockly.FieldAngle.WRAP 属性可设置值的范围。值的范围等于 (-360 + WRAP, WRAP)。也就是说,WRAP 值为 360 表示范围为 (0, 359.9)WRAP 值为 180 表示范围为 (-179.9, 180)

Angle picker with wrap value of 180

WRAP 属性默认为 360,这意味着该字段的范围为 (0, 359.9)

这是一个全局属性,因此会在设置时修改所有角度字段。

# 角度选择器大小

Blockly.FieldAngle.HALF 属性用于更改角度选择器的大小。该值定义了外圈的半径(以像素为单位)。

Angle picker with default editor size

Angle picker with large editor

HALF 属性默认为 50。

这是一个全局属性,因此会在设置时修改所有角度字段。

TIP

注意:角度选择器的大小不受工作区缩放的影响。

# 常用模式

结合使用 方向零位置 可以创建一些有趣的组合。下面是两种常用的方法:

# 量角器

0 度向右,90 度向上。

Blockly.FieldAngle.CLOCKWISE = false;
Blockly.FieldAngle.OFFSET = 0;

Angle picker configured as a protractor

# 罗盘

0 度向上,90 度向右。

Blockly.FieldAngle.CLOCKWISE = true;
Blockly.FieldAngle.OFFSET = 90;

Angle picker configured as a compass

# 创建角度校验器

TIP

注意:如需查看有关校验器的一般信息,请参阅 校验器

角度字段的值是数字,因此任何校验器都必须接受数字并返回数字 nullundefined

以下是一个强制将值设为 30 的倍数的校验器示例:

function(newValue) {
return Math.round(newValue / 30) \* 30;
}

Angle picker with a validator

请注意,角度字段的 ROUND 属性仍然设置为 15,因此该字段的图形元素会显示 15 的倍数,而不是 30。