wmin0920 2023-03-26 11:19 采纳率: 0%
浏览 16

Blockly右键菜单回调时间如何在主程序里面编写联系

工具

blockly +vue+element-plus

问题

我在blockly的块上右键弹出菜单上添加了一个弹出内容,目的是为了将这个函数的xml文件保存到本地,下次打开左边工具栏就可以直接使用。

    options.push({
            enabled: true,
            text: "保存到函数库",
            callback: function() {
               //这个函数
            }.bind(this)
        });

现在问题就是,这函数是在blockly定义块的代码中写的。如果我要保存到本地,编写本地页面的是VUE,他如何响应这个回调事件呢?
我猜想应该是通过workspace。比如生成代码就是

this.workspace.addChangeListener(this.whetherworking);

但是看了workspace.js还是没有找到合理的答案。

  • 写回答

1条回答 默认 最新

  • IT_service_mesh 2023-03-26 11:34
    关注

    参考GPT和自己的思路:首先,如果您想在Vue中响应Blockly块上菜单项的回调,需要在Vue组件中实例化Blockly工作区,然后将回调函数作为Vue组件的方法来定义。下面是样例代码:

    在Vue组件实例化中实例化Blockly:

    mounted() {
        this.workspace = Blockly.inject(this.$refs.blocklyDiv, {
            toolbox: this.toolboxXml,
            grid: {
                spacing: 20,
                length: 3,
                colour: '#ccc',
                snap: true
            },
            zoom: {
                controls: true,
                wheel: true,
                startScale: 1,
                maxScale: 3,
                minScale: 0.3,
                scaleSpeed: 1.2
            },
            trashcan: true
        });
    }
    

    然后在菜单项回调函数中,调用Vue组件方法,例如:

    options.push({
        enabled: true,
        text: "保存到函数库",
        callback: function () {
            this.saveToLibrary();
        }.bind(this)
    });
    

    其中,saveToLibrary是Vue组件的一个方法,用于将Blockly块保存到本地。

    最后,在Vue组件中定义saveToLibrary方法来响应菜单项回调,例如:

    methods: {
        saveToLibrary() {
            //实现保存到函数库的代码
        }
    }
    

    希望以上介绍对您有所帮助!

    评论

报告相同问题?

问题事件

  • 创建了问题 3月26日

悬赏问题

  • ¥15 图像超分real-esrgan网络自己训练模型遇到问题
  • ¥15 如何构建全国统一的物流管理平台?
  • ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
  • ¥15 用js遍历数据并对非空元素添加css样式
  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路
  • ¥15 内网办公电脑进行向日葵