Trường số lưu trữ một số dưới dạng value
và một chuỗi lưu trữ text
. value
luôn là một số hợp lệ như được xác định bằng các quy tắc ràng buộc áp dụng cho trường khi tạo; văn bản của trường này có thể là bất kỳ chuỗi nào được nhập vào trình chỉnh sửa.
Trường số
Trường số với trình chỉnh sửa đang mở
Trường số trên khối thu gọn
dựa trên xu hướng
JSON
{
"type": "example_number",
"message0": "number: %1",
"args0": [
{
"type": "field_number",
"name": "FIELDNAME",
"value": 100,
"min": 0,
"max": 100,
"precision": 10
}
]
}
JavaScript
Blockly.Blocks['example_number'] = {
init: function() {
this.appendDummyInput()
.appendField("number:")
.appendField(new Blockly.FieldNumber(100, 0, 100, 10), 'FIELDNAME');
}
};
Hàm khởi tạo số có những đặc điểm sau:
value
không bắt buộc- min không bắt buộc
- max không bắt buộc
- độ chính xác không bắt buộc
- validator (không bắt buộc)
value
phải chuyển thành một số. Nếu giá trị này không bằng 0, hệ thống sẽ sử dụng giá trị này.
Chuyển đổi tuần tự
JSON
JSON cho trường số sẽ có dạng như sau:
{
"fields": {
"FIELDNAME": 0
}
}
Trong đó FIELDNAME
là một chuỗi tham chiếu đến một trường số và giá trị là giá trị áp dụng cho trường đó. Giá trị này tuân theo các quy tắc tương tự như giá trị hàm khởi tạo.
XML
XML cho trường số sẽ có dạng như sau:
<field name="FIELDNAME">0</field>
Thuộc tính name
của nút field
chứa một chuỗi tham chiếu đến một trường số và text
bên trong của nút là value
để áp dụng cho trường. Giá trị văn bản bên trong tuân theo các quy tắc giống như giá trị hàm khởi tạo.
Giới hạn
Bạn có thể đặt các quy tắc ràng buộc trong phần định nghĩa trường hoặc bằng cách sử dụng hàm setConstraints.
Giá trị tối thiểu
Giá trị min
đặt giá trị nhỏ nhất/âm nhất mà trường được phép chứa.
Giá trị tối đa
Giá trị max
đặt giá trị lớn nhất/tích cực nhất mà trường được phép chứa.
Làm tròn
precision
làm tròn giá trị đến bội số chính xác gần nhất. Bạn có thể dùng thuộc tính này để làm cho trường chỉ chấp nhận bội số của .01, 10, 42, v.v.
Hạn chế phổ biến
Số dương
Để buộc trường của bạn chỉ chấp nhận số dương, hãy đặt giá trị min
thành 1.
Số nguyên
Để buộc trường chỉ chấp nhận số nguyên, hãy đặt precision
thành 1.
Tạo trình xác thực số
Giá trị của trường số là một số, do đó, mọi trình xác thực đều phải chấp nhận number
và trả về number
, null
hoặc undefined
.
Dưới đây là một ví dụ về trình xác thực có thể thay đổi giá trị thành 0 hoặc 1, tuỳ thuộc vào việc giá trị đó là lẻ hay chẵn.
function(newValue) {
return newValue % 2;
}