1. 블록 만들기
2. 생성된 블록
3. 블록 정의
{
"type": "color_rgb",
"tooltip": "",
"helpUrl": "",
"message0": "infinite %1 %2 %3 %4 %5 %6 %7 while %8 do %9",
"args0": [
{
"type": "field_label_serializable",
"text": "42",
"name": "NAME"
},
{
"type": "field_angle",
"name": "NAME",
"angle": 90
},
{
"type": "field_dropdown",
"name": "NAME",
"options": [
[
"is red",
"R"
],
[
"is green",
"G"
],
[
"is blue",
"B"
]
]
},
{
"type": "field_checkbox",
"name": "NAME",
"checked": "TRUE"
},
{
"type": "field_colour",
"name": "NAME",
"colour": "#ff0000"
},
{
"type": "field_variable",
"name": "NAME",
"variable": "item"
},
{
"type": "input_dummy",
"name": "BLUE",
"align": "RIGHT"
},
{
"type": "input_value",
"name": "GREEN"
},
{
"type": "input_statement",
"name": "NAME"
}
],
"previousStatement": null,
"nextStatement": null,
"colour": 150,
"inputsInline": false
}
4. 생성된 코드
javascriptGenerator.forBlock['color_rgb'] = function() {
const angle_name = block.getFieldValue('NAME');
const dropdown_name = block.getFieldValue('NAME');
const checkbox_name = block.getFieldValue('NAME');
const colour_name = block.getFieldValue('NAME');
const variable_name = generator.getVariableName(block.getFieldValue('NAME'));
// TODO: change Order.ATOMIC to the correct operator precedence strength
const value_green = generator.valueToCode(block, 'GREEN', Order.ATOMIC);
const statement_name = generator.statementToCode(block, 'NAME');
// TODO: Assemble javascript into the code variable.
const code = '...';
return code;
}