カテゴリ一覧の表示について

概要

  • 画面左上に表示されるブロックのカテゴリがどのように生成されるかについて説明します。

カテゴリの配置


画面左上には8つのカテゴリが表示されます。このカテゴリ一覧はScratchViewerMorph の rebuildCategorySelectors メソッドが生成します。

メソッド冒頭のcatList配列を書き換えれば配置を自由に変えることができます。
なお、カテゴリを増減して奇数個になると表示が乱れてしまうので、必ずcatListのカテゴリが偶数個になるようにします。

カテゴリの色

新しいカテゴリを加えるには、catList配列にカテゴリ名を加えたり、置き換えるのに加えて、カテゴリの色を表すFormデータが必要となります。

FormデータはScratchFrameMorphのScratchSkinクラス変数内に、カテゴリ名をキーにして格納されており、ScratchFrameMorph skinAt: #カテゴリ名 のようにして取り出すことができます。
Workspaceに以下のコードをコピー&ペーストして、全体を選択してからコンテキストメニューで do it を選べば、実際に格納されている画像を表示させることができます。

form := ScratchFrameMorph skinAt: #looks.
morph := ImageMorph new form: form.
morph openInWorld.


Formデータは、表示される状態(通常、押下時、マウスオーバー時)の3種類あります。例えばlooksの場合なら、#looks, #looksPressed, #looksOver の3種類が該当します。
新しいカテゴリを追加するなら、既存のものを流用するか、新しいFormデータを3種類用意しなければなりません。
さて、カテゴリ内のブロックもカテゴリ毎に色分けされていますが、この色の情報はScriptableScratchMorphのクラス側にある blockColorFor: メソッドを用いて設定されます。

新しいカテゴリを追加するなら、カテゴリ毎の画像に合わせてblockColorFor:も修正する必要があります。

起動時のカテゴリ

スクラッチを起動すると、動き(motion)カテゴリの内容が自動的に表示されます。これは、ScratchFrameMorph のstartup メソッドで設定されています。

motionを変更すれば起動時に別のカテゴリの内容を表示できます。