可视化编程 blockly 入门
<script src="blockly_compressed.js"></script> <script src="blocks_compressed.js"></script> <script src="javascript_compressed.js"></script>//支持javascript代码转化 <script src="msg/js/en.js"></script>//支持的语言,并存放blockly 工作区用到的工具的描述
将blockly里的模块转化为不同语言的代码
Blockly.JavaScript.workspaceToCode() Blockly.Python.workspaceToCode() Blockly.Dart.workspaceToCode()
设定blockly工作区的基本属性, grid 坐标点的设定,rtl 工作区展示方式false为居坐显示;media 静态资源位置
Blockly.inject(document.getElementById('content_blocks'),//工具要展示的位置 {grid: {spacing: 25, length: 25, colour: 'red', snap: false}, media: '../../media/', rtl: false, toolbox: document.getElementById('toolbox')//工具的xml的页面元素 } );
清空workspace
Blockly.mainWorkspace.clear();
获取工作区所有模块,返回模块集合数组
Blockly.mainWorkspace.getAllBlocks()
MSG用了储存工作区所需文字的区域
eval(Blockly.JavaScript.workspaceToCode())
执行编译后的代码
自定义自己的blockly
Blockly.Msg.TEXT_CONSOLE_HELPURL = "";//帮助网址 Blockly.Msg.TEXT_CONSOLE_TITLE = "console %1";定义模块上的显示文字 Blockly.Msg.TEXT_CONSOLE_TOOLTIP = "console the specified text, number or other value."; Blockly.Blocks.text_console = {init: function () { this.setHelpUrl(Blockly.Msg.TEXT_CONSOLE_HELPURL);//右键help连接网址 this.setColour(Blockly.Blocks.texts.HUE);//定义颜色,用数值表示 this.interpolateMsg(Blockly.Msg.TEXT_CONSOLE_TITLE, ["TEXT", null, Blockly.ALIGN_RIGHT], Blockly.ALIGN_RIGHT); this.setPreviousStatement(!0);//设定模块的图形的缺口或突起,其实就是设定程序的流程 this.setNextStatement(!0);//同上 this.setTooltip(Blockly.Msg.TEXT_CONSOLE_TOOLTIP)//鼠标停留后使用提示 }}; //定义模块的图形样子,如果感觉比较麻烦可以在一直的blockly 找到近似的然后在修改 Blockly.JavaScript.text_console = function (a) { return"console.log(" + (Blockly.JavaScript.valueToCode(a, "TEXT", Blockly.JavaScript.ORDER_NONE) || "''") + ");\n" };//定义模块所代表的代码,如果感觉比较麻烦可以在一直的blockly 找到近似的然后在修改
自定义官方讲解 https://developers.google.com/blockly/custom-blocks/defining-blocks#sethelpurl
相关推荐
gufeijunchi 2015-04-09