بلوک های داخلی بلوک هایی هستند که به ورودی های ارزش و بیانیه شما متصل می شوند. مولدهای کد بلوک منفرد باید به الحاق بلوک های داخلی خود رسیدگی کنند تا کد در جای درست اضافه شود.
import {javascriptGenerator, Order} from 'blockly/javascript';
javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
// Generate innner block code.
const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
// Concatenate the string.
const code = `some code ${statement} ${value} some more code`;
// Return the code.
return code;
}
ورودی های بیانیه
کد بلوک های داخلی متصل به ورودی های بیانیه را می توان با استفاده از statementToCode
ایجاد کرد. این مولد کد بلوک دستور بلوک را فراخوانی می کند و کد تورفتگی را مدیریت می کند.
const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
شما فقط باید statementToCode
برای بلوک داخلی که مستقیماً به ورودی بیانیه متصل است فراخوانی کنید.
ارزش ورودی ها
کد بلوک های داخلی متصل به ورودی های مقدار را می توان با استفاده از valueTocode
تولید کرد. این مولد کد بلوک بلوک ارزش را فراخوانی میکند و در صورت لزوم با اضافه کردن پرانتز در اطراف کد بلوکهای داخلی کنترل میکند.
برای اطلاعات بیشتر در مورد نحوه کنترل پرانتز به مستندات پرانتز مراجعه کنید.
const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
الحاق کد
بعد از اینکه رشته کد بلوک داخلی خود را دریافت کردید، می توانید آن را در محل صحیح با رشته کد خود بپیوندید.
const code = `some code ${statement} ${value} some more code`;
کد برگشت
انواع مختلف بلوک ها نیاز به بازگردانی رشته کد به روش های مختلف دارند، بنابراین برای اطلاعات بیشتر، صفحات جداگانه آنها را بررسی کنید: