コア関数

コアモジュールは,関数の基盤となる部分が含まれています。通常はこのモジュールそのものを参照することは少ないと思いますが,lab.js の関数は全てこのモジュールに依存するため,coreの用法について知っておくことは重要だと思われます(特に機能を拡張する場合に)。コアモジュール系の関数は全て同じオプションを共有しています。そのため,コアモジュールのヘルプページへの参照も多くなっています。

すべてのコンポーネントで以下のような段階を経て実行されます。

prepare は準備段階です。例えば,ディスプレイに呈示する刺激を事前にレンダリングしたり,必要なメディアを読み込んだりといったことが行われます。コンポーネント(主にScreen)が実行される際には,「prepare」の処理はすでに終了しています。

run は実行段階で,コンポーネントによりプログラムを制御します。例えば,ユーザーによるイベントの取得,視覚刺激の画面への呈示,音声刺激の呈示等が行われます。

endは,コンポーネントの終了段階です。ここでは,画面出力を終了し,情報取得の停止などが行われます。実験結果のログの記録は,コンポーネントが終了した後に行われます。また,このタイミングでブラウザの初期化(ハウスキーピングまたはクリーンアップ)が行われます。

使用法

インスタンス化

(注意)ここのコードをScriptsにそのまま入力しても動きません。「this.options.responses」や「this.options.timeout」等の書き方で呼び出すことが出来ると思います。実際にScripts内で試したコードは「逆引きプログラム例」でご確認ください。

逆引きプログラム例

コアコンポーネント自体は,情報を画面に表示したり,ページを変更したりといった制御を行う関数ではありません。コンポーネントへの命令は,オプションパラメータを使用して行われます。オプションは、オブジェクト内で「name/valueペア」として指定されます。たとえば、次のコンポーネントではresponsetimeoutが指定されます。

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」という書き方で指定します。

他のすべてのオプションコマンドも,同じやり方で変更することが出来ます。オプションコマンドは,コンポーネントの準備が整った段階で確定されます。