.:: 宣言エリア .SkinScript.ver=40217 .SkinScript.auth=arc@arcis .SkinScript.titl=basic. .SkinScript.comm=- (略) .:: 初期化エリア *Initialize (略) *end .:: イベント処理エリア *MainLoop (略) *end *ChangeFile (略) *end (略)
宣言 | 宣言の内容 | (サポート状況) | |
.SkinScript. | ver | この仕様書に従うスキンでは 40217 | ver.402.00〜 |
auth | このスキンを作成した人の名前 | ||
titl | スキンのタイトル | ||
comm | コメント | ||
.Window. | type | メイン画面の種類。枠付きのウィンドウを使うなら normal 、自由な形の枠無しウィンドウを使うなら region 。 | |
img | 前の宣言を region としたときのみ利用可/ウィンドウの形を定義するBMPファイル名。次の宣言をしないと、画像左上の色が透過色と見なされる。 | ||
trans.r trans.g trans.b | 前の宣言をしたときのみ利用可/指定した画像における透過色。 r g b は順に赤、緑、青がどれだけ強いかを示し、0〜255($00〜$FF) の値で指定する。例えば 255 255 255 とすると白、0 0 0 なら黒。 | ||
widt heig | メイン画面の幅および高さ | ||
drag.x drag.y drag.widt drag.heig | メイン画面中でユーザーがドラッグした際にウィンドウを動かす矩形領域。x y で左上座標を、widt heig で幅と高さを指定。 | ||
seek.x seek.y seek.widt seek.heig seek.direct | シークバーが伸びきった状態の矩形領域について x y で左上座標を、widt heig で幅と高さを指定。 再生が進むにつれ左から塗りつぶすか下から塗りつぶすか(⇔シークバーが横向きか縦向きか)を direct で指定。0 にすると横向き、1 にすると縦向き。 (cf. スクリプト 特殊キー %s.seek.*%) | ||
.List. | type | 再生リストをウィンドウ表示にするなら window 、メイン画面にリスト領域を設けるなら normal または scroll 。後者はリスト領域開閉時にウィンドウサイズが段階的に切り替わる。 | |
widt heig | 前の宣言を normal または scroll としたときのみ利用可/「リスト」ボタン(オブジェクト識別子 listarea)が押された時にメイン画面を右に伸ばす(閉じるときは、縮める)幅と下に伸ばす(〃)高さ。 | ||
.Var. | num (ID).type (ID).comm (ID).list (ID).list+ (ID).default | スキンに一般のユーザーが編集可能な項目を設けるためにスキン変数を利用するとき必要になる宣言。num はスキン変数の総数、type comm default は該当する変数の種類、説明、初期値。(cf. スクリプト スキン変数) | ver.402.00〜 list,list+ 403.00α1〜 |
.XmsFile | プレイヤーのダイアログや、ボタンなどのチップヘルプ(マウスカーソルをしばらく置いておくとぴょっと出てくるアレ)の口調を決める言語ファイルを指定。このスキンが選択されたとき同時に読み込まれる。なお、チップヘルプ文字列は後述のイベント処理エリアでも指定可能(ver.403.00α1〜)。 | ver.402.00〜 | |
.ScrollArea. | widt | スクロール情報表示領域の幅(※) | |
.Scroll. | widt | スクロール情報表示位置を更新ごとにずらす幅 |
.SkinScript.ver=40217 .SkinScript.auth=arc@arcis .SkinScript.titl=スカイブルー(mini) .SkinScript.comm=爽やか系スキン(ミニ) ::: ↑基本情報 .Window.type=region .Window.widt=270 .Window.heig=30 .Window.img=スカイブルー\mini.bmp ::: ↑ウィンドウの形状 .Window.drag.x=0 .Window.drag.y=0 .Window.drag.widt=18 .Window.drag.heig=30 ::: ↑画面左端のドラッグでぐいぐい動く .XmsFile=初期設定.xms ::: ↑言語ファイルは初期設定 .List.type=window ::: ↑リストは別画面に .Scroll.widt=6 .ScrollArea.widt=130 ::: ↑スクロール情報表示領域幅は130px、情報表示位置は一度に6px動かす
::: 初期化エリア開始 *Initialize ::: (1) オブジェクトの大きさを指定 objsize=15*10 ::: (2) 設置する位置を指定 pos=18*10 ::: (3) 設置 objxset=prev ::: 同じ大きさのオブジェクトを設置するときは、 ::: 毎回設置前に objsize を実行する必要はない。(※) pos=33*10 objxset=pause (略) ::: 各オブジェクトのスタイルを透明=5に設定 objstyl=%o.prev%*5 objstyl=%o.next%*5 objstyl=%o.pause%*5 (略) ::: 以降文字表示に使うフォントを設定 mesfont=MS ゴシック*10 *end ::: 初期化エリアここまで
エリア名 | イベントの内容 | 用途 | (サポート状況) |
MainLoop | 音楽再生中 | 再生位置などの状態を表示する | ver.402.00〜 |
ChangeFile | 音楽読み込み時 | 現在の音楽情報を表示する | |
ChangeMode | 再生モード変更時 | 現在の再生モードを表示する | |
ChangeRepMode | 再生リスト繰返し再生設定変更時 | 現在の─設定を表示する | |
ShowList | リスト領域を表示する機能実行時 | リスト領域を表示する | |
HideList | リスト領域を隠す機能実行時 | リスト領域を隠す | |
ChangeWinTop | 最前面表示の設定を表示する? | 〜ver.402.15 | |
ShowTiphelp | チップヘルプ表示時 | 言語ファイルで定義できないなど、特殊な事情のオブジェクトにチップヘルプを付与する(cf. スクリプト 各命令の解説 objhelp) | ver.403.00α1〜 |
*MainLoop pos=5*10 pos=%s.scrl.pos% mes=%p.scrl% *endとするだけで、表示開始位置は1.〜6.を繰り返すようになります。 %s.scrl.pos% は、前の行の pos で指定された表示基準位置とスクロール情報の幅、.ScrollArea.widt や .Scroll.widt、現在の画面表示更新回数などの条件を併せて、今実際にスクロール情報を表示すべき位置はどこかを算出します。例えば5.にあたる時点では %s.scrl.pos% は (実際の表示開始位置(5.)) の座標で置換されます。
*MainLoop
::: 白でスクロール領域の古い表示を消去
col=255*255*255
::: ※ .ScrollArea.widt=100 と宣言しており、
::: 表示フォントが MS ゴシック*12 の場合を想定
::: →(5,10)(105,22)を端点とする矩形領域を塗り潰し
drwboxf=5*10*105*22
::: 黒で情報表示
col=0*0*0
pos=5*10
pos=%s.scrl.pos%
mes=%p.scrl%
*end
今度はどうでしょうか。スクロール領域(冒頭の図における灰色囲み)は確かに毎回表示が更新されていますが、その両脇は相変わらず文字がどんどん重なって表示されてゆきます。それを後から消す処理も加える必要があります。
*MainLoop
::: スクロール領域の古い表示を消去
col=255*255*255
drwboxf=5*10*105*22
::: 黒で情報表示
col=0*0*0
pos=5*10
pos=%s.scrl.pos%
mes=%p.scrl%
::: スクロール領域をはみ出た表示を消去
col=255*255*255
drwboxf=0*10*5*22
::: ※ .Window.widt=110 の場合を想定
drwboxf=105*10*110*22
*end
シークバーについてはスクリプト 特殊キー %s.seek.*%の補足説明に詳しく書いてあります。エリア名 | イベントの内容 | 用途 | (サポート状況) |
UserDef1 UserDef2 UserDef3 UserDef4 UserDef5 | ユーザー定義ボタンが押された | 自由 | ver.402.00〜 |
objxset=userdef1*スキンのバージョン情報
と設置したボタンがクリックされると、対応する定義エリアのスクリプトが実行されます。*UserDef1 ::: スキンのバージョン情報を表示してみる pos=5*5 mes=version: 402.17 by arc@arcis *end色々なことができるぶん扱いが難しいかも知れません。