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:
- 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. - 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: