fix(boards): 修复block init时由于this指向变化导致数据读取出错

This commit is contained in:
王立帮
2025-03-25 15:50:21 +08:00
parent 79bcd05ad1
commit b6556d2b09
22 changed files with 92 additions and 88 deletions

View File

@@ -103,7 +103,7 @@ export const controls_whileUntil = {
this.appendValueInput('BOOL')
.setCheck([Boolean, Number])
.appendField(Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'MODE');
.appendField(new Blockly.FieldDropdown(controls_whileUntil.OPERATORS), 'MODE');
this.appendStatementInput('DO')
.appendField(Blockly.Msg.MIXLY_DO);
this.setPreviousStatement(true);
@@ -127,7 +127,7 @@ export const controls_whileUntil = {
export const controls_flow_statements = {
init: function () {
this.setColour(LOOPS_HUE);
var dropdown = new Blockly.FieldDropdown(this.OPERATORS);
var dropdown = new Blockly.FieldDropdown(controls_flow_statements.OPERATORS);
this.appendDummyInput()
.appendField(dropdown, 'FLOW')
.appendField(Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP);

View File

@@ -944,7 +944,7 @@ export const image_shift = {
.setCheck(["esp32_image", "List", String]);
this.appendDummyInput('')
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(image_shift.OPERATORS), 'OP');
this.appendValueInput('val')
.appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)
.setCheck(Number);
@@ -983,7 +983,7 @@ export const image_arithmetic = {
.appendField(Blockly.Msg.MICROBIT_DISPLAY_MERGE_SHAPE);
this.appendValueInput('B')
// .setCheck(["esp32_image", "List", String])
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(image_arithmetic.OPERATORS), 'OP');
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
@@ -1300,7 +1300,7 @@ export const display_image_size = {
.setCheck("esp32_image")
// .appendField(Blockly.Msg.blockpy_USE_LIST);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(display_image_size.OPERATORS), 'OP');
this.setInputsInline(true);
this.setOutput(true);
var thisBlock = this;
@@ -1332,7 +1332,7 @@ export const display_rect = {
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RECT)
.appendField(new Blockly.FieldDropdown(this.STATUS), 'OP')
.appendField(new Blockly.FieldDropdown(display_rect.STATUS), 'OP')
// this.appendValueInput("PIN", Number)
// .setCheck(Number)
// .setAlign(Blockly.inputs.Align.RIGHT)
@@ -1736,7 +1736,7 @@ export const display_animate = {
this.setOutput(true, 'Tuple');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_DISPLAY_ANIMATE)
.appendField(new Blockly.FieldDropdown(this.ANIMATE), 'ANIMATION')
.appendField(new Blockly.FieldDropdown(display_animate.ANIMATE), 'ANIMATION')
//this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP);
},
ANIMATE: [
@@ -1753,7 +1753,7 @@ export const display_circle = {
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)
.appendField(new Blockly.FieldDropdown(this.STATUS), 'OP')
.appendField(new Blockly.FieldDropdown(display_circle.STATUS), 'OP')
this.jsonInit({
"message0": Blockly.Msg.MIXLY_HANBIT_SHOW_CIRCLE,
"args0": [
@@ -1798,7 +1798,7 @@ export const display_triangle = {
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW + Blockly.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)
.appendField(new Blockly.FieldDropdown(this.STATUS), 'OP')
.appendField(new Blockly.FieldDropdown(display_triangle.STATUS), 'OP')
this.jsonInit({
"message0": Blockly.Msg.MIXLY_HANBIT_SHOW_triangle,
"args0": [

View File

@@ -145,7 +145,7 @@ export const display_matrix_extern_shift = {
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET)
this.appendDummyInput('')
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(display_matrix_extern_shift.OPERATORS), 'OP');
this.appendValueInput('val')
.appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)
.setCheck(Number);
@@ -264,7 +264,7 @@ export const display_matrix_extern_image_builtins = {
this.setColour(DISPLAY_EXTERN_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_Built_in_image1)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'image');
.appendField(new Blockly.FieldDropdown(display_matrix_extern_image_builtins.OPERATORS), 'image');
this.setOutput(true, "esp32_image");
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);
@@ -297,7 +297,7 @@ export const matrix_extern_image_arithmetic = {
.appendField(Blockly.Msg.MICROBIT_DISPLAY_MERGE_SHAPE);
this.appendValueInput('B')
// .setCheck(["esp32_image", "List", String])
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(matrix_extern_image_arithmetic.OPERATORS), 'OP');
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
@@ -396,7 +396,7 @@ export const display_image_size = {
.setCheck("esp32_image")
// .appendField(Blockly.Msg.blockpy_USE_LIST);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(display_image_size.OPERATORS), 'OP');
this.setInputsInline(true);
this.setOutput(true);
var thisBlock = this;
@@ -428,7 +428,7 @@ export const display_rect = {
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RECT)
.appendField(new Blockly.FieldDropdown(this.STATUS), 'OP')
.appendField(new Blockly.FieldDropdown(display_rect.STATUS), 'OP')
// this.appendValueInput("PIN", Number)
// .setCheck(Number)
// .setAlign(Blockly.inputs.Align.RIGHT)
@@ -664,7 +664,7 @@ export const display_animate = {
this.setOutput(true, 'Tuple');
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_ESP32_DISPLAY_ANIMATE)
.appendField(new Blockly.FieldDropdown(this.ANIMATE), 'ANIMATION')
.appendField(new Blockly.FieldDropdown(display_animate.ANIMATE), 'ANIMATION')
//this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP);
},
ANIMATE: [
@@ -681,7 +681,7 @@ export const display_circle = {
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)
.appendField(new Blockly.FieldDropdown(this.STATUS), 'OP')
.appendField(new Blockly.FieldDropdown(display_circle.STATUS), 'OP')
this.jsonInit({
"message0": Blockly.Msg.MIXLY_HANBIT_SHOW_CIRCLE,
"args0": [
@@ -1540,7 +1540,7 @@ export const extern_oled_shift = {
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET)
this.appendDummyInput('')
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(extern_oled_shift.OPERATORS), 'OP');
this.appendValueInput('val')
.appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)
.setCheck(Number);

View File

@@ -210,7 +210,7 @@ export const image_arithmetic = {
.appendField(Blockly.Msg.MICROBIT_DISPLAY_MERGE_SHAPE);
this.appendValueInput('B')
// .setCheck(["esp32_image", "List", String])
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(image_arithmetic.OPERATORS), 'OP');
this.setInputsInline(true);
var thisBlock = this;
this.setTooltip(function () {
@@ -251,7 +251,7 @@ export const display_shift = {
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET)
this.appendDummyInput('')
.appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(display_shift.OPERATORS), 'OP');
this.appendValueInput('val')
.appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)
.setCheck(Number);
@@ -416,7 +416,7 @@ export const mixgome_display_font = {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.OLED_SET_FONT)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(mixgome_display_font.OPERATORS), 'OP');
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);
@@ -721,7 +721,7 @@ export const mpython_pbm_image = {
init: function () {
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MICROBIT_Built_in_image1)
.appendField(new Blockly.FieldDropdown(this.IMAGES), 'path');
.appendField(new Blockly.FieldDropdown(mpython_pbm_image.IMAGES), 'path');
this.setColour(DISPLAY_ONBOARD_HUE);
this.setOutput(true);
},
@@ -886,7 +886,7 @@ export const mixbot_display_rotate = {
this.setColour(DISPLAY_ONBOARD_HUE);
this.appendDummyInput()
.appendField(Blockly.Msg.MIXLY_MIXBOT_SCREEN_ROTATE)
.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'OP');
.appendField(new Blockly.FieldDropdown(mixbot_display_rotate.OPERATORS), 'OP');
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setInputsInline(true);

View File

@@ -416,7 +416,7 @@ export const requests_attribute = {
this.setColour(NETWORK_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
.appendField(new Blockly.FieldDropdown(this.ATTR), 'ATTR')
.appendField(new Blockly.FieldDropdown(requests_attribute.ATTR), 'ATTR')
this.setInputsInline(true);
this.setOutput(true, String);
var thisBlock = this;
@@ -446,7 +446,7 @@ export const requests_method = {
this.setColour(NETWORK_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_CONDUCT)
.appendField(new Blockly.FieldDropdown(this.METHOD), 'DIR')
.appendField(new Blockly.FieldDropdown(requests_method.METHOD), 'DIR')
this.appendDummyInput("")
.appendField(Blockly.Msg.blockpy_REQUESTS)
this.setInputsInline(true);
@@ -557,7 +557,7 @@ export const requests_attribute2 = {
this.setColour(COMMUNICATE_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)
.appendField(new Blockly.FieldDropdown(this.ATTR), 'ATTR')
.appendField(new Blockly.FieldDropdown(requests_attribute2.ATTR), 'ATTR')
this.setInputsInline(true);
this.setOutput(true, String);
},

View File

@@ -539,7 +539,7 @@ export const sensor_dht11 = {
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(this.METHOD), "WHAT");
.appendField(new Blockly.FieldDropdown(sensor_dht11.METHOD), "WHAT");
this.setOutput(true, Number);
var thisBlock = this;
this.setTooltip(function () {

View File

@@ -182,7 +182,7 @@ export const sensor_dht11 = {
.appendField(Blockly.Msg.MIXLY_PIN)
.setCheck(Number);
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown(this.METHOD), "WHAT");
.appendField(new Blockly.FieldDropdown(sensor_dht11.METHOD), "WHAT");
this.setOutput(true, Number);
var thisBlock = this;
this.setTooltip(function () {
@@ -1665,7 +1665,7 @@ export const PS2_stk = {
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.PS2_stick)
.appendField(new Blockly.FieldDropdown(this.PSSTK), "psstk");
.appendField(new Blockly.FieldDropdown(PS2_stk.PSSTK), "psstk");
this.setOutput(true, Number);
this.setTooltip('');
},
@@ -1739,7 +1739,7 @@ export const PS2_stk_new = {
.appendField(Blockly.Msg.PS2);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_JOYSTICK)
.appendField(new Blockly.FieldDropdown(this.PSSTK), "psstk");
.appendField(new Blockly.FieldDropdown(PS2_stk_new.PSSTK), "psstk");
this.setOutput(true, Number);
this.setTooltip('');
},