NISHIO Hirokazu[Translate]
ScratchExtensionCode
Scratch拡張のコードをここに書くとScrapboxのAPIでコード単体のURLができるのでそれをsheeptester.github.ioに読みこませて試してる。

ScratchのコードはWebWorkerで走ってるみたいで、JS拡張からwindow.promptを呼び出しても未定義になる
:
vm Primitive rejected promise: ReferenceError: prompt is not defined at Prompt._prompt (prompt.js:23) at WorkerDispatch.transferCall (extension-worker.js:735) at WorkerDispatch.call (extension-worker.js:700) at WorkerDispatch._onMessage (extension-worker.js:879)
prompt.js
class Prompt { constructor() { } getInfo() { return { id: 'prompt', name: 'Prompt', blocks: [ { opcode: '_prompt', blockType: Scratch.BlockType.REPORTER, text: 'prompt([X])', arguments: { X: { type: Scratch.ArgumentType.STRING, defaultValue: 'message' }, } } ] } } _prompt(args) { return prompt(args.X); } } Scratch.extensions.register(new Prompt());

動いた
KoKa.js
class KoKa { constructor() { } getInfo() { return { id: 'koka', name: 'KoKa', blocks: [ { opcode: 'power', blockType: Scratch.BlockType.REPORTER, text: '[X]の[N]乗', arguments: { X: { type: Scratch.ArgumentType.NUMBER, defaultValue: '2' }, N: { type: Scratch.ArgumentType.NUMBER, defaultValue: '3' } } } ] } } power(args) { return Math.pow(args.X, args.N); } } Scratch.extensions.register(new KoKa());

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]