Create gh-pages branch via GitHub
This commit is contained in:
parent
61511462dd
commit
a983f05ef5
2 changed files with 13 additions and 9 deletions
20
index.html
20
index.html
|
@ -65,9 +65,9 @@
|
|||
<p>An extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.</p>
|
||||
|
||||
<h3>
|
||||
<a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
|
||||
<a name="command-blocks" class="anchor" href="#command-blocks"><span class="octicon octicon-link"></span></a>Command blocks</h3>
|
||||
|
||||
<p>To add a simple <em>reporter</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function that returns the reported value. The simplest block possible is shown below. The block reports back the value of the constant π.</p>
|
||||
<p>To add a simple <em>command</em> block, there needs to be an entry in the <code>descriptors.blocks</code> list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).</p>
|
||||
|
||||
<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
||||
|
@ -81,23 +81,27 @@
|
|||
<span class="k">return</span> <span class="p">{</span><span class="nx">status</span><span class="o">:</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">msg</span><span class="o">:</span> <span class="s1">'Ready'</span><span class="p">};</span>
|
||||
<span class="p">};</span>
|
||||
|
||||
<span class="nx">ext</span><span class="p">.</span><span class="nx">get_pi</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">PI</span><span class="p">;</span>
|
||||
<span class="nx">ext</span><span class="p">.</span><span class="nx">my_first_block</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="c1">// Code that gets executed when the block is run</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="c1">// Block and block menu descriptions</span>
|
||||
<span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
|
||||
<span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'PI'</span><span class="p">,</span> <span class="s1">'get_pi'</span><span class="p">],</span>
|
||||
<span class="c1">// Block type, block name, function name</span>
|
||||
<span class="p">[</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">'my first block'</span><span class="p">,</span> <span class="s1">'my_first_block'</span><span class="p">],</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">};</span>
|
||||
|
||||
<span class="c1">// Register the extension</span>
|
||||
<span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'Sample extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
|
||||
<span class="nx">ScratchExtensions</span><span class="p">.</span><span class="nx">register</span><span class="p">(</span><span class="s1">'My first extension'</span><span class="p">,</span> <span class="nx">descriptor</span><span class="p">,</span> <span class="nx">ext</span><span class="p">);</span>
|
||||
<span class="p">})();</span>
|
||||
</pre></div>
|
||||
|
||||
<p>To add parameters to blocks, the block definition in <code>descriptors.blocks</code> needs to be extended.</p>
|
||||
<h3>
|
||||
<a name="reporter-blocks" class="anchor" href="#reporter-blocks"><span class="octicon octicon-link"></span></a>Reporter blocks</h3>
|
||||
|
||||
<p>Blocks can also return values, and they are called <em>reporter</em> blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).</p>
|
||||
|
||||
<div class="highlight highlight-javascript"><pre><span class="k">new</span> <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">ext</span> <span class="o">=</span> <span class="k">this</span><span class="p">;</span>
|
||||
|
@ -118,8 +122,8 @@
|
|||
<span class="c1">// Block and block menu descriptions</span>
|
||||
<span class="kd">var</span> <span class="nx">descriptor</span> <span class="o">=</span> <span class="p">{</span>
|
||||
<span class="nx">blocks</span><span class="o">:</span> <span class="p">[</span>
|
||||
<span class="c1">// Block type, block name, function name, parameter1 default value, parameter2 default value</span>
|
||||
<span class="p">[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'%d ^ %d'</span><span class="p">,</span> <span class="s1">'power'</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">],</span>
|
||||
<span class="c1">// The last two values above represent default parameter values</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">};</span>
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n var ext = this;\r\n\r\n // Cleanup function when the extension is unloaded\r\n ext._shutdown = function() {};\r\n\r\n // Status reporting code\r\n // Use this to report missing hardware, plugin or unsupported browser\r\n ext._getStatus = function() {\r\n return {status: 2, msg: 'Ready'};\r\n };\r\n\r\n // Block and block menu descriptions\r\n var descriptor = {\r\n blocks: [\r\n ]\r\n };\r\n\r\n // Register the extension\r\n ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Reporter blocks\r\n\r\nTo add a simple _reporter_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function that returns the reported value. The simplest block possible is shown below. The block reports back the value of the constant π.\r\n\r\n```javascript\r\nnew (function() {\r\n var ext = this;\r\n\r\n // Cleanup function when the extension is unloaded\r\n ext._shutdown = function() {};\r\n\r\n // Status reporting code\r\n // Use this to report missing hardware, plugin or unsupported browser\r\n ext._getStatus = function() {\r\n return {status: 2, msg: 'Ready'};\r\n };\r\n\r\n ext.get_pi = function() {\r\n return Math.PI;\r\n }\r\n\r\n // Block and block menu descriptions\r\n var descriptor = {\r\n blocks: [\r\n ['r', 'PI', 'get_pi'],\r\n ]\r\n };\r\n\r\n // Register the extension\r\n ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nTo add parameters to blocks, the block definition in ``descriptors.blocks`` needs to be extended.\r\n\r\n```javascript\r\nnew (function() {\r\n var ext = this;\r\n\r\n // Cleanup function when the extension is unloaded\r\n ext._shutdown = function() {};\r\n\r\n // Status reporting code\r\n // Use this to report missing hardware, plugin or unsupported browser\r\n ext._getStatus = function() {\r\n return {status: 2, msg: 'Ready'};\r\n };\r\n\r\n ext.power = function(base, exponent) {\r\n return Math.pow(base, exponent);\r\n }\r\n\r\n // Block and block menu descriptions\r\n var descriptor = {\r\n blocks: [\r\n ['r', '%d ^ %d', 'power', 2, 3], \r\n // The last two values above represent default parameter values\r\n ]\r\n };\r\n\r\n // Register the extension\r\n ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
|
||||
{"name":"Scratch Extensions","tagline":"Extensions for Scratch 2.0","body":"Writing Extensions for Scratch 2.0\r\n===================================\r\n\r\nWriting a Javascript extension for Scratch 2.0 is quite straightforward. Every extension starts with some boilerplate code, which looks like the following:\r\n\r\n```javascript\r\nnew (function() {\r\n var ext = this;\r\n\r\n // Cleanup function when the extension is unloaded\r\n ext._shutdown = function() {};\r\n\r\n // Status reporting code\r\n // Use this to report missing hardware, plugin or unsupported browser\r\n ext._getStatus = function() {\r\n return {status: 2, msg: 'Ready'};\r\n };\r\n\r\n // Block and block menu descriptions\r\n var descriptor = {\r\n blocks: [\r\n ]\r\n };\r\n\r\n // Register the extension\r\n ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\nAdding Blocks\r\n--------------\r\n\r\nAn extension may define a number of blocks, of different types (e.g. a command block, or a hat block, or a reporter block). Blocks can take in parameters.\r\n\r\n### Command blocks\r\n\r\nTo add a simple _command_ block, there needs to be an entry in the ``descriptors.blocks`` list, and a corresponding function for it. The simplest block possible is shown below (it does nothing).\r\n\r\n```javascript\r\nnew (function() {\r\n var ext = this;\r\n\r\n // Cleanup function when the extension is unloaded\r\n ext._shutdown = function() {};\r\n\r\n // Status reporting code\r\n // Use this to report missing hardware, plugin or unsupported browser\r\n ext._getStatus = function() {\r\n return {status: 2, msg: 'Ready'};\r\n };\r\n\r\n ext.my_first_block = function() {\r\n // Code that gets executed when the block is run\r\n }\r\n\r\n // Block and block menu descriptions\r\n var descriptor = {\r\n blocks: [\r\n // Block type, block name, function name\r\n [' ', 'my first block', 'my_first_block'],\r\n ]\r\n };\r\n\r\n // Register the extension\r\n ScratchExtensions.register('My first extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n### Reporter blocks\r\n\r\nBlocks can also return values, and they are called _reporter_ blocks. The corresponding JavaScript function for a reporter block needs to return a value, as shown in the example below (note that this example also shows how to make blocks accept parameters).\r\n\r\n```javascript\r\nnew (function() {\r\n var ext = this;\r\n\r\n // Cleanup function when the extension is unloaded\r\n ext._shutdown = function() {};\r\n\r\n // Status reporting code\r\n // Use this to report missing hardware, plugin or unsupported browser\r\n ext._getStatus = function() {\r\n return {status: 2, msg: 'Ready'};\r\n };\r\n\r\n ext.power = function(base, exponent) {\r\n return Math.pow(base, exponent);\r\n }\r\n\r\n // Block and block menu descriptions\r\n var descriptor = {\r\n blocks: [\r\n // Block type, block name, function name, parameter1 default value, parameter2 default value\r\n ['r', '%d ^ %d', 'power', 2, 3], \r\n ]\r\n };\r\n\r\n // Register the extension\r\n ScratchExtensions.register('Sample extension', descriptor, ext);\r\n})();\r\n```\r\n\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}
|
Reference in a new issue