Alanlar

Alanlar, kod oluşturma sürecinin önemli bir parçasıdır. dizeler, sayılar ve renkler gibi kullanıcı tarafından düzenlenebilir değerler.

Oluşturulan koda alan değerlerini dahil etmek, alanın değerinin alınmasını içerir. kullanılabilir bir dizeye dönüştürür ve ardından dizeyi geri yüklenir.

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ğerleri öğrenin

Alan değerlerine getFieldValue kullanılarak erişilebilir. Ne alır? her alanda farklı olup olmadığını kontrol etmelisiniz; bu nedenle, yerleşik alanı dokümanlarını inceleyin. Örneğin, örneğin, metin giriş alanları kullanıcının girdiği tam metni döndürür, ancak alanlar, kullanıcının öğesiyle ilişkilendirilmiş dilden bağımsız bir dize döndürür seçili.

Değerleri dönüştürme

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

Dize

Dizelerin birleştirilmeden önce kod oluşturma aracı tarafından alıntılanması 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 önce kod oluşturma aracı tarafından temizlenmesi gerekir bir sayıdır. Bu, iki nedenle gereklidir:

  1. Değişkenler, kullanıcı tarafından seçilen dilde girilir. Dolayısıyla, ASCII karakterlerine dönüştürülmesi gerekebilir. Örneğin, "متغير" gelir "_D9_85_D8_AA_D8_BA_D9_8A_D8_B1" biçimine dönüştürülür.
  2. Değişkenler, ayrılmış kelimelerle çakışabilir. Bu da biraz da bir değişiklik yapılmayacak şekilde değiştirilmiştir. Örneğin, "for" şuna dönüştürülür: "for2".
const identifier = generator.getVariableName(block.getFieldValue('VAR'));

Kodu birleştir

Alanınızın değerini alıp bir dizeye dönüştürdükten sonra, kod dizenizle doğru yerde birleştirmeniz gerekir.

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

İade kodu

Farklı blok türleri, kod dizesinin farklı bir dilde döndürülmesini gerektirir olabilir, bu nedenle daha fazla bilgi için bu sitelerin sayfalarına bakın: