友情提示:380元/半年,儿童学编程,就上码丁实验室。
题外话:自从科学上网后,翻看Google Blockly文档那些就舒服多了~~
翻看了很久Google Blockly文档,发现很少有关于ContextMenu的一些内容,经过一翻的搜索,终于找到解决的方法。
要自定义块右键的菜单(customContextMenu),需要在块定义的时候也定义这个customContextMenu。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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)们的支持是小弟继续努力的动力!!