Blockly自定义的块添加自定义右键菜单customContextMenu

题外话:自从可以科学上网后,翻看blockly文档那些就简单舒服多了~~

翻看了很久blockly文档,发现很少有关于ContextMenu的一些内容,经过一翻的搜索,终于找到解决的方法。

要自定义块右键的菜单(customContextMenu),需要在块定义的时候也定义这个customContextMenu。

 

直接上代码:

Blockly.Blocks['string_length'] = {
    init:function() {
    this.appendValueInput('VALUE')
    .setCheck('String')
    .appendField('length of');
    this.setOutput(true, 'Number');
    this.setColour(160);
    this.setTooltip('Returns number of letters in the provided text.');
    this.setHelpUrl('http://www.w3schools.com/jsref/jsref_length_string.asp');
    // console.log(this)
    },
    customContextMenu:function(options) {
        varoption= {
        enabled:true,
        text:"Custom option",
        callback:function() {
            
        }.bind(this)
    };
    options.push(option);
    }
};

其实就是自定块的时候完成右键菜单的设置就ok了。

这些代码都必须在workspace 初始化好之前执行。

里面有一个callback回调函数就是点击自定义块的菜单时候调用的函数。在这里写上你想要的操作就ok了。

最后的效果如下:

这个自定义的块(length of)的customContextMenu就完成了。

最后,不知道blockly已经提供的块是如何添加这个contextmenu的... 希望有人也可以解答一下~~

 

如果解决了您的问题,希望各位(dalao)点赞评论收藏~~~(dalao)们的支持是小弟继续努力的动力!!

你可能感兴趣的:(Blockly)