コアモジュールは,関数の基盤となる部分が含まれています。通常はこのモジュールそのものを参照することは少ないと思いますが,lab.js の関数は全てこのモジュールに依存するため,coreの用法について知っておくことは重要だと思われます(特に機能を拡張する場合に)。コアモジュール系の関数は全て同じオプションを共有しています。そのため,コアモジュールのヘルプページへの参照も多くなっています。
すべてのコンポーネントで以下のような段階を経て実行されます。
prepare は準備段階です。例えば,ディスプレイに呈示する刺激を事前にレンダリングしたり,必要なメディアを読み込んだりといったことが行われます。コンポーネント(主にScreen)が実行される際には,「prepare」の処理はすでに終了しています。
run は実行段階で,コンポーネントによりプログラムを制御します。例えば,ユーザーによるイベントの取得,視覚刺激の画面への呈示,音声刺激の呈示等が行われます。
endは,コンポーネントの終了段階です。ここでは,画面出力を終了し,情報取得の停止などが行われます。実験結果のログの記録は,コンポーネントが終了した後に行われます。また,このタイミングでブラウザの初期化(ハウスキーピングまたはクリーンアップ)が行われます。
(注意)ここのコードをScriptsにそのまま入力しても動きません。「this.options.responses
」や「this.options.timeout
」等の書き方で呼び出すことが出来ると思います。実際にScripts内で試したコードは「逆引きプログラム例」でご確認ください。
コアコンポーネント自体は,情報を画面に表示したり,ページを変更したりといった制御を行う関数ではありません。コンポーネントへの命令は,オプションパラメータを使用して行われます。オプションは、オブジェクト内で「name/valueペア」として指定されます。たとえば、次のコンポーネントではresponse
とtimeout
が指定されます。
const c = new lab.core.Component({
'responses': {
'keypress(s)': 'left',
'keypress(l)': 'right',
},
'timeout': 1000,
})
c.run()
これらのオプションコマンドは,以下のように指定することで変更できるようです。
c.options.timeout = 2000
「Scripts」では「this.options.timeout=2000
」という書き方で指定します。
他のすべてのオプションコマンドも,同じやり方で変更することが出来ます。オプションコマンドは,コンポーネントの準備が整った段階で確定されます。