Stap 3: Het schrijven van uw eigen extensies
Voor degenen die willen dat een stapje verder te gaan, kunt u uw eigen blokken.
Dit vergt inzicht in JavaScript, evenals een een manier om te publiceren van JS code op internet, zoals een greasyfork. Voor testdoeleinden, kan u ook uw code binnen uw browser JavaScript console uitvoeren of maak uw eigen bookmarklet.
Raadpleeg de officiƫle Scratch extensies Document voor meer informatie.
Voorbeeldcode:
Hallo mensen:
function installHelloWorld() { (function(ext) { // Cleanup function when the extension is unloaded ext._shutdown = function() {}; // Status reporting code // Use this to report missing hardware, plugin or unsupported browser ext._getStatus = function() { return {status: 2, msg: 'Installed'}; }; var descriptor = { blocks: [ [' ', 'hello world', 'helloWorld'] ] }; //The Hello world function ext.helloWorld = function(){ alert('Hello World!') }; ScratchExtensions.register('Hello World', descriptor, ext); })({}); }<br>installHelloWorld();
Basic bloktypes:
function installBasicBlocks() { (function(ext) { // Cleanup function when the extension is unloaded ext._shutdown = function() {}; // Status reporting code // Use this to report missing hardware, plugin or unsupported browser ext._getStatus = function() { return {status: 2, msg: 'Installed'}; }; var descriptor = { blocks: [ [' ', 'a basic method', 'foo'], ['h', 'a hat block', 'hatMethod'], ['r', 'a reporter', 'reporterMethod'], ['b', 'a boolean reporter', 'bReporterMethod'], ['-'], //Separator [' ', 'string %s number %n color %c', 'bar', 'petrichor', '42', '16775399'] ] }; //Alert method ext.foo = function(){ alert('Foo'); }; //The Hat method (runs code when this returns true) ext.hatMethod = function(){ return true; }; //Reporter ext.reporterMethod = function(){ return 42; }; //Boolean Reporter ext.bReporterMethod = function(){ return true; }; //Method with arguments ext.bar = function(arg1, arg2, arg3){ alert('Received: ' + arg1 + ' ' + arg2 + ' ' + arg3); }; ScratchExtensions.register('Basic Blocks', descriptor, ext); })({}); } installBasicBlocks();