ScratchExtensionCode
Scratch拡張のコードをここに書くとScrapboxのAPIでコード単体のURLができるのでそれをsheeptester.github.ioに読みこませて試してる。 ScratchのコードはWebWorkerで走ってるみたいで、JS拡張からwindow.promptを呼び出しても未定義になる
code::
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)
code:prompt.js
class Prompt {
constructor() { }
getInfo() {
return {
id: 'prompt',
name: 'Prompt',
blocks: [
{
opcode: '_prompt',
blockType: Scratch.BlockType.REPORTER,
arguments: {
X: {
type: Scratch.ArgumentType.STRING,
defaultValue: 'message'
},
}
}
]
}
}
_prompt(args) {
return prompt(args.X);
}
}
Scratch.extensions.register(new Prompt());
動いた
code:KoKa.js
class KoKa {
constructor() { }
getInfo() {
return {
id: 'koka',
name: 'KoKa',
blocks: [
{
opcode: 'power',
blockType: Scratch.BlockType.REPORTER,
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());