この関数は,実験中のイベントのシーケンスを制御する際に使われます。
flow.Sequence([options])
この関数は,コンポーネント(画面)を順番に実行(呈示)します。「画面」,「シーケンスやループ」など,任意のタイプのコンポーネントを同じように扱うことができます。典型的な実験では,実験全体(教示 → 実験タスク → デブリーフィング)が1つのシーケンスです。各試行で見てみると,ブランク画面 → 注視画面 → 刺激画面がシーケンスです。
flow.Sequence.options.content
この関数で最も重要なオプションは「content
」です。シーケンスを構成する「サブコンポーネント」のリストが該当します。例を以下に示します。
const proclaimers = new lab.flow.Sequence({
content: [
new lab.html.Screen({ content: 'And', timeout: 500 }),
new lab.html.Screen({ content: 'I', timeout: 500 }),
new lab.html.Screen({ content: 'will', timeout: 500 }),
new lab.html.Screen({ content: 'walk', timeout: 500 }),
new lab.html.Screen({ content: 'five', timeout: 500 }),
new lab.html.Screen({ content: 'hun-', timeout: 500 }),
new lab.html.Screen({ content: '-dred', timeout: 500 }),
new lab.html.Screen({ content: 'miles', timeout: 500 }),
],
})
proclaimers.run()
シーケンスではcontentの上から順に実行されます。
flow.Sequence.options.shuffle
コンポーネントをランダムな順序で実行します(デフォルトはfalse)。このオプションが「true」に設定された場合,コンテンツはprepare
フェーズ中にシャッフルされます。
flow.Sequence.options.handMeDowns
handMeDowns として特定されたオプションは,準備フェーズ中にネストされたコンポーネント(つまり下位のコンポーネント)に送られます。通常,ネストされたコンポーネントは同じデータストレージと出力要素を共有するため,デフォルトで渡されます。
例えば,デバッグモードを最上位のコンポーネントに設定すると,他のすべての下位コンポーネントに自動的に反映されます。
flow.Loop([options])
この関数は,同じ(単一の)コンポーネントを繰り返し,繰り返すごとにパラメーターを変化させます。
const template = new lab.html.Screen({
content: '${ parameters.lyrics }', // parameters substituted ...
timeout: '${ parameters.beats * 600 }', // ... during preparation
})
const spandauBallet = new lab.flow.Loop({
template: template,
templateParameters: [
/* ... */
{ lyrics: 'So true, funny how it seems', beats: 7 },
{ lyrics: 'Always in time, but never in line for dreams', beats: 10 },
{ lyrics: 'Head over heels when toe to toe', beats: 8 },
{ lyrics: 'This is the sound of my soul', beats: 8 },
/* ... */
]
})