Misya ScreenObjects Focusing

ScreenObjects Focusing

概要

ScreenObjectsのObjectの選択について。

ScreenObjectsはキーボード等によるユーザーからの操作を受け付けます。
これは主にSOScriptと合わせて用いられます。

具体的には、配置されたObjectを選択・決定する為の機構が用意され
それに関する技術群はfocusingと呼ばれます。

focusing

focusingとは、配置されたObjectを任意に選択させ
また決定させるための仕組みです。

選択可能

focusingで選択の候補にされるためには
selectable属性かpointable属性のいずれかが真である必要が在ります。

selectable属性はキーボード操作に、
pointable属性はマウス操作に対して機能します。

初期選択

SOはselected属性が真である項目を初期選択します。

単一選択

スクリーン毎に最大で一個のオブジェクトが選択可能です。
これは、無選択もしくは単一選択のみ許容されます。

受け付ける操作

operationexplain
選択(遷移) 選択項目を変更します。
onFocus, onBlurイベントを発生します。
決定 選択項目を実行します。
onRunイベントを発生します。

決定キーの具体的なキーは環境によります。
EnterかSpaceが多いです。
あとでちゃんと決めるかも。

受け付ける入力

inputnameexplain
keyboard 矢印キー(上下左右)
決定キー
矢印で選択項目間を遷移し、
決定キーで実行する
mouse マウスポイント
左クリック
マウスによる操作
others - 未定義

focusingmode

focusingは以下の方法を混ぜて使います。
basical focusing
navi focusing
mouse focusing

basical focusing

特に条件が適合しない場合、このモードで実行されます。
一番シンプルなモードです。
inputexplain
矢印キー 上下 現在の選択項目の[次/前]の選択可能項目を探します。
検索順は、オブジェクトの配置順になります。
見つからない場合は、何もしません。
矢印キー 左右 入力を無視します。
決定キー 実行

navigatable focusing

選択項目に特定属性のいずれかが含まれる場合、このモードで実行されます。
より高度な制御が可能なモードです。

特定属性とは、「naviup」、「navidown」、「naviright」、「navileft」です。
inputexplain
矢印キー 上 「naviup」属性の示す名称の項目を選択します。
属性が存在しない場合は、何もしません。
矢印キー 下 「navidown」属性の示す名称の項目を選択します。
属性が存在しない場合は、何もしません。
矢印キー 左 「navileft」属性の示す名称の項目を選択します。
属性が存在しない場合は、何もしません。
矢印キー 右 「naviright」属性の示す名称の項目を選択します。
属性が存在しない場合は、何もしません。
決定キー 実行

mouse focusing

マウスによる入力が許可されている場合、このモードで実行されます。

inputexplain
ポイント 「pointable」が真な項目から、ポインタ座標が「rect」属性の示す範囲に含まれる項目を選択します。
左クリック 実行します。
注意 マウス操作では、頻繁なfocus遷移が発生します。
ポイントした時点でfocus、外れた時点でblurが発生するため

変わるかもです。