Mevcut bir alanı genişletmek için yerleşik bir alanı (ör.FieldTextInput
, FieldColour
) alt sınıflandırmanız ve ardından bu alanın bir bölümünü ihtiyaçlarınıza göre değiştirmeniz gerekir.
Bir alanın değiştirebileceğiniz bazı bölümleri şunlardır:
- Düzenleyici.
- Engellenen ekranı.
- Gösterilen metin.
Yerleşik herhangi bir alandan davranış gerektirmeyen bir özel alan oluşturmak istiyorsanız Field
alt sınıfını alt olarak sınıflandırmanız gerekir.
Sık kullanılan uzantılar
Çoğu özel alan, aşağıdaki üç türden birini genişletir:
- Metin Girişi: Kullanıcılarınızın alanınıza yazmasını istiyorsanız
FieldTextInput
özelliğini genişletmeniz gerekir. - Sayı: Bir numarayı depolamak istiyorsanız
FieldNumber
sayısını artırmanız gerekir. - Açılır liste: Bir açılır liste oluşturmak istiyor ancak varsayılan dize veya resim modelinden farklı bir modeli depolamasını istiyorsanız
FieldDropdown
öğesini genişletmeniz gerekir.- Dikkat:
FieldDropdown
öğesinin süresini uzatmadan önce, açılır menü alanının özelleştirme seçeneklerinin ihtiyaçlarınızı karşılayıp karşılamadığını kontrol edin.
- Dikkat:
Belirli durumlarda farklı bir alan türünü genişletmek isteyebilirsiniz. Örneğin FieldLabelSerializable
, FieldLabel
aralığını genişletir.
Alt Sınıflandırma
import * as Blockly from 'blockly';
export class MyCustomTextField extends Blockly.FieldTextInput {
constructor(value, validator, config) {
super(value, validator, config);
}
}
Bir alanın alt sınıfının kurucusu, özel alan oluşturucuya çok benzer. Alt oluşturucunun imzası genellikle süper oluşturucunun imzasıyla eşleşmelidir.
JSON ve kayıt
Alanı bir kez de kaydetmeniz gerekir:
Blockly.fieldRegistry.register('my_custom_text_field', MyCustomTextField);
ve JSON biçimiyle çalışması için sınıfta fromJson
özelliğinin bir uygulamasını sağlayın:
static fromJson(options) {
const value = Blockly.utils.parsing.replaceMessageReferences(options.value);
return new MySubclassName(value);
}
Alan kaydetme hakkında daha fazla bilgi için Özel Alan Oluşturma başlıklı makalenin JSON ve kayıt bölümüne bakın.