12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Blockly Demo: Mirrored Blockly</title>
- <script src="../../blockly_compressed.js"></script>
- <script src="../../blocks_compressed.js"></script>
- <script src="../../msg/js/en.js"></script>
- <style>
- body {
- background-color: #fff;
- font-family: sans-serif;
- }
- h1 {
- font-weight: normal;
- font-size: 140%;
- }
- </style>
- </head>
- <body>
- <h1><a href="https://developers.google.com/blockly/">Blockly</a> >
- <a href="../index.html">Demos</a> > Mirrored Blockly</h1>
- <p>This is a simple demo of a master Blockly that controls a slave Blockly.
- Open the JavaScript console to see the event passing.</p>
- <p>→ More info on <a href="https://developers.google.com/blockly/guides/configure/web/events">events</a>…</p>
- <table width="100%">
- <tr>
- <td>
- <div id="masterDiv" style="height: 480px; width: 600px;"></div>
- </td>
- <td>
- <div id="slaveDiv" style="height: 480px; width: 430px;"></div>
- </td>
- </tr>
- </table>
- <xml id="toolbox" style="display: none">
- <block type="controls_if"></block>
- <block type="logic_compare"></block>
- <block type="controls_repeat_ext"></block>
- <block type="math_number"></block>
- <block type="math_arithmetic"></block>
- <block type="text"></block>
- <block type="text_print"></block>
- <block type="variables_get"><field name="VAR">i</field></block>
- <block type="variables_get"><field name="VAR">j</field></block>
- <block type="variables_get"><field name="VAR">k</field></block>
- </xml>
- <script>
- // Inject master workspace.
- var masterWorkspace = Blockly.inject('masterDiv',
- {media: '../../media/',
- toolbox: document.getElementById('toolbox')});
- // Inject slave workspace.
- var slaveWorkspace = Blockly.inject('slaveDiv',
- {media: '../../media/',
- readOnly: true});
- // Listen to events on master workspace.
- masterWorkspace.addChangeListener(mirrorEvent);
- function mirrorEvent(masterEvent) {
- if (masterEvent.type == Blockly.Events.UI) {
- return; // Don't mirror UI events.
- }
- // Convert event to JSON. This could then be transmitted across the net.
- var json = masterEvent.toJson();
- console.log(json);
- // Convert JSON back into an event, then execute it.
- var slaveEvent = Blockly.Events.fromJson(json, slaveWorkspace);
- slaveEvent.run(true);
- }
- </script>
- </body>
- </html>
|