Survei Riset: Ceritakan pengalaman Anda dengan Blockly
Mulai survei
Memperluas kolom yang ada
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Untuk memperluas kolom yang ada, Anda harus membuat subclass kolom bawaan (mis.
FieldTextInput
, FieldColour
) lalu ubah bagiannya agar sesuai dengan kebutuhan Anda.
Beberapa bagian kolom yang dapat Anda ubah adalah:
Jika Anda ingin membuat
kolom kustom
yang tidak memerlukan perilaku dari kolom bawaan apa pun, Anda harus membuat subclass Field
.
Ekstensi umum
Sebagian besar kolom kustom menyediakan salah satu dari tiga jenis berikut:
- Input Teks: Jika Anda ingin pengguna mengetik dalam kolom, Anda harus memperluas
FieldTextInput
.
- Angka: Jika ingin menyimpan angka, Anda harus memperluas
FieldNumber
.
- Dropdown: Jika Anda ingin membuat dropdown, tetapi Anda ingin menyimpan model yang berbeda
daripada string default atau model gambar, Anda harus memperluas
FieldDropdown
.
- Perhatian: Sebelum memperluas
FieldDropdown
, periksa apakah kolom
opsi penyesuaian tidak dapat memenuhi kebutuhan Anda.
Dalam keadaan tertentu, Anda mungkin ingin memperluas jenis kolom yang berbeda. Sebagai
contoh FieldLabelSerializable
memperluas FieldLabel
.
Subclassing
import * as Blockly from 'blockly';
export class MyCustomTextField extends Blockly.FieldTextInput {
constructor(value, validator, config) {
super(value, validator, config);
}
}
Konstruktor untuk subclass kolom terlihat sangat mirip dengan konstruktor untuk
kolom kustom. Tanda tangan sub-konstruktor harus
umumnya cocok dengan tanda tangan
super-konstruktor.
JSON dan pendaftaran
Anda juga harus mendaftarkan kolom satu kali:
Blockly.fieldRegistry.register('my_custom_text_field', MyCustomTextField);
dan menyediakan implementasi fromJson
di class agar berfungsi dengan
format JSON:
static fromJson(options) {
const value = Blockly.utils.parsing.replaceMessageReferences(options.value);
return new MySubclassName(value);
}
Untuk informasi selengkapnya tentang mendaftarkan kolom, lihat JSON dan pendaftaran
di Membuat Kolom Kustom.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-04-14 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-04-14 UTC."],[[["To extend an existing Blockly field, subclass a built-in field like `FieldTextInput` or `FieldColour` and modify its editor, on-block display, or displayed text."],["For custom fields with unique behaviors, subclass the base `Field` class instead of extending an existing field."],["Common field extensions involve customizing text input (`FieldTextInput`), numbers (`FieldNumber`), or dropdowns (`FieldDropdown`) to meet specific needs."],["When subclassing, ensure your constructor matches the super-constructor's signature and register the field with `Blockly.fieldRegistry.register`."],["Implement the `fromJson` method in your custom field class to enable compatibility with the Blockly JSON format for serialization and deserialization."]]],["To extend an existing field, subclass a built-in field like `FieldTextInput` or `FieldColour`, modifying its editor, on-block display, or text. For unique fields, subclass `Field`. Common extensions include `FieldTextInput`, `FieldNumber`, and `FieldDropdown`. Subclass constructors should mirror the super-constructor's signature. Register the field using `Blockly.fieldRegistry.register()` and implement `fromJson` for JSON compatibility. Extending different fields such as `FieldLabelSerializable` is also possible.\n"]]