Alanlar

Alanlar; dizeler, sayılar ve renkler (diğerlerinin yanı sıra) gibi kullanıcı tarafından düzenlenebilir değerleri tanımladıkları için kod oluşturma işleminin önemli bir parçasıdır.

Oluşturulan koda alan değerlerinin eklenmesi, alanın değerinin alınması, kullanılabilir bir dizeye dönüştürülmesi ve ardından dizenin kodun geri kalanıyla birleştirilmesi anlamına gelir.

import {javascriptGenerator} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Get the field value.
  const fieldValue = block.getFieldValue('MY_FIELD');

  // Concatenate the code.
  const code = `some code ${fieldValue} some more code`;

  // Return the code.
  return code;
}

Değer alma

Alan değerlerine getFieldValue kullanılarak erişilebilir. Döndürülen veriler alandan alana farklıdır. Bu nedenle belirli alanınız hakkında bilgi edinmek için yerleşik alan belgelerini kontrol etmeniz gerekir. Örneğin, metin giriş alanları kullanıcının girdiği tam metni döndürür, ancak açılır alanlar, kullanıcının seçtiği öğeyle ilişkili dilden bağımsız bir dize döndürür.

Değerleri dönüştürme

Çoğu alan değeri, kod dizenizle hemen birleştirilmeye hazırdır. Bununla birlikte, bazı alan değerleri kullanılabilir hale gelmeden önce ekstra çalışma gerektirir.

Dize

Dizelerin birleştirilebilmesi için kod oluşturma aracı tarafından tırnak içine alınması gerekir.

// For a single line text field.
const str = generator.quote_(block.getFieldValue('STR'));

// For a multiline text field.
const str = generator.multiline_quote_(block.getFieldValue('STR'));

Değişkenler

Değişken adlarının birleştirilebilmesi için önce kod oluşturma aracı tarafından ileri geri çekilmeleri gerekir. Bu, iki nedenden dolayı gereklidir:

  1. Değişkenler, kullanıcı tarafından seçilen dilde girilir. Bu, ASCII karakterlere dönüştürülmeleri gerekebileceği anlamına gelir. Örneğin, "متغير" sütunu "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1" olarak dönüştürülür.
  2. Değişkenler, ayrılmış kelimelerle çakışabilir. Yani çakışmamaları için bunların değiştirilmesi gerekebilir. Örneğin, "for" şu şekilde dönüştürülür: "for2".
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

Kodu birleştirin

Alanınızın değerini aldıktan ve bir dizeye dönüştürdükten sonra bunu kod dizenizle doğru yerde birleştirebilirsiniz.

const code = `some code ${value} some more code`;

Dönüş kodu

Farklı blok türleri, kod dizesinin farklı şekillerde döndürülmesini gerektirir. Daha fazla bilgi için bu blokların sayfalarına bakın: