5. Исходный текст JavaScript’a создания блока
Blockly.Language.webgl_a04_drawsqr = {
category: 'WebGL',
helpUrl: 'http://www.example.com/',
init: function() {
this.setColour(220);
this.appendDummyInput()
.appendTitle("DrawSquare");
this.appendDummyInput()
.appendTitle(new Blockly.FieldImage(
"....mediasq.svg", 100, 100));
this.appendValueInput("sp")
.setCheck(Array)
.appendTitle("point");
this.appendValueInput("length")
.setCheck(Number)
.appendTitle("length");
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}};
Blockly.JavaScript.webgl_a04_drawsqr =
function() {
var value_sp =
Blockly.JavaScript.valueToCode(this, 'sp',
Blockly.JavaScript.ORDER_ATOMIC);
var value_length =
Blockly.JavaScript.valueToCode(this, 'length',
Blockly.JavaScript.ORDER_ATOMIC);
var code = "n
if (window.WebGLRenderingContext){n
var sp = "+value_sp+";n
var len = "+value_length+"; n
var c = document.getElementById('canv'); n
var gl = c.getContext('2d'); n
gl.beginPath(); n
gl.rect( sp[0],sp[1],len,len); n
gl.lineWidth = 1; n
gl.strokeStyle = '#000000'; n
gl.stroke(); n}";
return code;};
6. Результат генерации блоком кода на JavaScript.
<html>
<head><title> WebGL page</title></head>
<body>
<canvas id='canv' width="800" height="600" >
</canvas>
<script>
{
if (window.WebGLRenderingContext){
var sp = ([20, 40]);
var l = (50);
var c = document.getElementById('canv');
var gl = c.getContext('2d');
gl.beginPath();
gl.rect( sp[0],sp[1],l,l);
gl.lineWidth = 1;
gl.strokeStyle = '#000000';
gl.stroke();
}
}
</script>
</body>