#contents

* SkinScript とは? [#y9775c6e]

Ver.6 形式のスキン([[PSSdev/FreeDesign]])を Lua ベースのスキンで置き換えたものです.

PSS の学習画面のデザインを容易に変更できるよう設計されています.


* 概要 [#k21953ec]

PSSの学習画面で再描画が必要となった時点で,ある1つの Lua の関数(フック関数)が呼び出される.

Lua の関数からは,学習画面を操作する様々な関数を呼び出せるほか,学習画面の状態を取得することもできる.これらの機能を用いて,学習画面を自在にデザインすることが可能である.


* スキン作成ガイドライン [#le911d2f]

スキンの作者にとっては,標準添付スキンが参考になる.
特に,default.lua と pss700-module.lua に注目してほしい.
[[./スキン作成ガイドライン]] に移動しました。

多くの場合,default.lua を変更することである程度カスタマイズされたスキンを作成することができる(この方針で pss700-big.lua などの標準添付スキンが開発されている).

>ただし,pss700-module.lua が常に互換性を持っていることを期待することはできない.バージョンアップにより pss700-module.lua で参照される変数が変化する可能性があることに留意して欲しい.
>(こうした問題を安全にさけるためには pss700-module.lua のコピーを作り,それをメインスキンファイルから参照する方法がある)

default.lua の変更のみで対応できないデザイン要素は,pss700-module.lua ファイル(モジュールファイル)を変更することになる.

たとえばアニメーションを変更するにはモジュールファイルを変更する必要がある.


** 標準添付スキンの構成 [#aa2c576c]

default.lua を起点に,種々の lua ファイルが参照されている.

参照関係はおよそ次のようになっている.

- default.lua
-- pss700-module.lua
--- animation-module.lua
--- limitbar-module.lua

default.lua はスキンを構成するファイルの中でも基準となるファイルであり,この種のスキンファイルをここでは ''メインスキンファイル'' と呼ぶ.

メインスキンファイルから参照されるスキンファイルを ''モジュールファイル'' と呼ぶ.


*** メインスキンファイル [#xf5033b2]

default.lua 以外のメインスキンファイルに pss700-big.lua, pss700-bigmore.lua, pss700-big3.lua がある.

メインスキンファイルには必ず下記の変数を定義する必要がある.

- DesignName
- DlgWidth_n
- DlgHeight_n

DesignName は文字通りデザイン名である.スキンの名称を記述する.

DlgWidth_n と DlgHeight_n は学習画面のサイズである.それぞれ学習画面の横方向,縦方向のサイズを指定する.

default.ini の先頭部分には下記のように記述されている.

 -- design-name
 DesignName		= "v7.0スタイル"
 
 -- dialog-size
 DlgWidth_n		= 800		-- dialog-width
 DlgHeight_n		= 560		-- dialog-height

これら(とくにDesignName)はユーザにスキンを選択する際のヒントを与えるものであり,適切に設定することが望ましい.


*** モジュールファイル [#l54e10f6]

メインスキンファイルや他のモジュールファイルから参照されるスキンファイルであり,多くの場合,いわゆるサブモジュール的な要素が書かれる.
ただし,pss700-module.lua ファイルは標準添付スキン群の実装部という意味合いが強い.

>たとえて言うならメインスキンファイルが「設定」であり,pss700-module.lua が「本体」であると言える.



* リファレンス [#vf1f2777]

** フック関数 [#le790ebd]

学習画面がある状態に変化したときに必ず呼び出される Lua 側の関数.

これらの関数はスキンに必ず記述しておく必要がある.

*** OnInit : 初期化 [#vbb5d287]

PSSの学習画面が始まったときに呼び出される関数.
例えばイメージファイルの登録などに利用される.

*** OnUpdate : 再描画 [#m422c23c]

再描画が必要となったタイミングで呼び出される関数.
ほぼ全ての処理はここに書くことになる.

*** OnTimer : タイマー [#u4a66666]

インターバルタイマー.
非常に短い間隔で呼び出される関数.

アニメーションの実装などに利用できる.

*** OnKeyDown : キー押下 [#la89ad30]

ユーザのキー押下イベント.

ユーザがキーを押したときに呼び出される.

引数はキーの文字列.対応表は下記の通り.
|キー|引数に渡される文字列|備考|h
|'A' 〜 'Z'| "A" 〜 "Z" | *1 |
|F1 〜 F12 | "F1" 〜 "F12" | *2 |
|SPACEキー| "SPACE" ||
|Enterキー| "ENTER" ||

 *1 タイピング系(タイピング,タイピングR,ディクテーション,スピードリプライ)モードでは無効です.
 *2 F1 キーではヘルプが必ず表示され,1 以上を返してもキャンセルできません.

返り値を 1 以上にすると,PSS のデフォルト動作をキャンセルすることができる.



** PSS 操作関数 [#l955e6a3]

- [[./操作関数]]

** PSS 変数群 [#lb8550aa]

- [[./変数]]

** ユーザ変数 [#o08212dd]

ユーザが PSS の設定画面から簡単にいくつかの設定を変更できるようにするための
仕組みである.

Skin7 のユーザ変数は,Skin6 よりも簡単に,かつ構造的に記述することができる.

''例''
 PSS.CreateFont( 0, PSS.LoadUserVar( "問題文のフォント", "font", "18, 1, 0, 0, 0, MS ゴシック") );

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS