Mevcut bir alanı genişletme

Mevcut bir alanı genişletmek için yerleşik bir alanın alt sınıfına girmeniz gerekir (ör. FieldTextInput, FieldColour) sonra da dosyanın bir kısmını ihtiyaçlarınıza göre değiştirebilirsiniz. Bir alanın değiştirebileceğiniz bazı bölümleri şunlardır:

Yeni bir web sitesi oluşturmak özel alan yerleşik bir alandan davranış gerektirmeyen Field alt sınıfını kullanmanız gerekir.

Sık kullanılan uzantılar

Çoğu özel alan, aşağıdaki üç türden birine genişler:

  • Metin Girişi: Kullanıcılarınızın alanınıza yazmasını istiyorsanız FieldTextInput.
  • Numara: Bir numarayı saklamak istiyorsanız FieldNumber değerini uzatmanız gerekir.
  • Açılır liste: Açılır liste oluşturmak, ancak farklı bir model depolamasını istiyorsanız varsayılan dize veya resim modelinden daha fazlaysa FieldDropdown öğesini genişletmeniz gerekir.
    • Dikkat: FieldDropdown öğesini genişletmeden önce açılır menü alanının özelleştirme seçenekleri ihtiyaçlarınızı karşılayamaz.

Belirli koşullar altında farklı bir alan türünü genişletmek isteyebilirsiniz. Örneğin, örnek FieldLabelSerializable, FieldLabel öğesini 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 oluşturucusu, kullanabilirsiniz. Alt oluşturucunun imzası süper oluşturucunun imzasıyla eşleşir.

JSON ve kayıt

Alanı bir kez kaydetmeniz de gerekir:

Blockly.fieldRegistry.register('my_custom_text_field', MyCustomTextField);

vefromJson JSON biçimi:

static fromJson(options) {
  const value = Blockly.utils.parsing.replaceMessageReferences(options.value);
  return new MySubclassName(value);
}

Alan kaydetme hakkında daha fazla bilgi için JSON ve kayıt sayfasına bakın. bölümünü inceleyin.