提供:Japanese Scratch-Wiki
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
これまで開発してきた拡張機能は、Scratch 3.0をmodして追加された。しかし、簡単な拡張機能は、modをしなくても追加できる。このページでは、そういった拡張機能の作成方法を記述する。
Web Worker
拡張機能には以下の3種類がある:
- 基礎の拡張機能: 最初から読み込まれているもの。現時点でなし。
- 組み込まれた拡張機能: Scratch VMのコードに組み込まれたもの。ペン拡張機能や、他のページで開発したものなど。
- Web Worker拡張機能: Web Worker上で動作する。このページ上で解説する。
Web Worker上で動作する拡張機能には、以下の特徴がある:
- ランタイムへのアクセスができない。たとえば、スプライトの属性を指定することなどができない。
- 他のファイルやライブラリがほとんど読み込めない。
- 利用できる関数などが限られる。(詳細はMDNを参照。)
Scratchオブジェクト
Web Worker上では、Scratchオブジェクトが利用できる。Scratchオブジェクトには以下を含む:
Scratch.ArgumentType
- ArgumentTypeScratch.BlockType
- BlockTypeScratch.extensions.register
- 拡張機能を登録する関数。Scratch.extensions.register(new Scratch3NewBlocks())
のように使う。
書式
拡張機能のファイルの書式は、「基本の書式」とほとんど似ている。以下が修正点である:
- ArgumentType、BlockTypeは、上のようにScratchオブジェクトから利用する。
- Cast、logは使用できない。必要な場合は自分で実装する。
- 27行目のruntime引数は与えられないので、消してよい。その場合は32行目も消す。
- 最後の行は、
Scratch.extensions.register(new Scratch3NewBlocks())
に変える。
実行
Web Worker拡張機能を実行する機能は、Scratchをmodしないと利用できない。