foobar2000のwsh panel mod(JScript)のサンプルコード:Reboot 1




背景の色を変える


JScriptのサンプルコード&解説コーナー、がっつり仕切り直します。

*reboot後の想定するファイル構成は以下のような配置になります。

foobar2000のポータブルインストールフォルダ
 ┗ samplesフォルダ
   ┣インポートするJScriptのテキストファイル
   ┗imgフォルダ(使用する画像ファイル全般)

*今回のサンプル
samples_rb_1.zip



まず、WSH Panel ModまたはJScript Panelを組み込んだfoobar2000を用意してください。
・参考:foobar2000でJScriptのテスト環境を作ってみよう。 {+ foobar2000::カスタマイズ}
・参考:WSH Panel Mod(JScript Panel) の基本事項 {+ foobar2000::カスタマイズ}
・その他:左側のタグ:foobar2000に関連した何かがあるかも。

パネルのConfigureウィンドウから、Background_color.txtをインポートしてください。




このパネルには背景色その他を設定する項目はありません。
なので、背景色を変える必要があれば、「最初にパネル全域を塗りつぶしておく」必要があります。



コード


// ==PREPROCESSOR==
// @name "Background Sample"
// @author "Junya Renno"
// @feature "dragdrop"
// @import "%fb2k_component_path%docs\helpers.txt"
// ==/PREPROCESSOR==

fb.trace("Tester Start.");

var ww;
var wh;
var background_color = RGB(50,50,50);


function test(){
// この中に試したいコードを書いてください。マウスクリックで実行されます。
// マウス中ボタンクリックでこのウィンドウが出ます。

}

function on_paint(gr){
// 描画関係をテストするときはこちらに書いてみよう。
fb.trace("on_paint");
gr.FillSolidRect(0,0,ww,wh,background_color);
}


function on_mouse_mbtn_down(x, y, mask){
window.ShowConfigure();
}

function on_mouse_lbtn_down(x, y, mask){
test();
}

function on_size(){
fb.trace("on_size");
ww = window.Width;
wh = window.Height;
}




解説

// @import "%fb2k_component_path%docs\helpers.txt"
RGB関数を使うためにhelpers.txtを読み込んでいます。

on_size(){}
はパネルのサイズが変更になった時に呼ばれる関数です。
ここでパネルの幅と高さを記憶しています。
fb.trace()はConsoleに情報を出力するメソッドです。特に必要ではありませんが、流れを追うために入れてあります。

on_paint(gr){}
はパネルを描画する重要な関数です。
変数wwとwhを利用し、塗りつぶします。
fb.trace()はConsoleに…以下同文。
gr.FillSolidRectは長方形の中を塗りつぶすメソッドです。


*on_sizeとon_paintの挙動
このスクリプトを起動するとこんな画面になります。
Image_computer/tester/draw_4.png

Consoleウィンドウは
Image_computer/tester/draw_2.png

ちょっとパネルのサイズを変更してみると

Image_computer/tester/draw_3.png

どわっと繰り返し実行されるのがわかります。
パネルのサイズが変わる→on_size()が自動的に呼び出されて、パネルのサイズを測り直す→on_paint()で描画、という流れです。

変数background_colorの値を変えて試してみてください。



*その他の描画メソッド
Drawing.txtをインポートしてみてください。

Image_computer/tester/draw_1.png


こんなのもあるよー、ということで、終わります。



 

コメントは日本語でお願いします。(URLは入力禁止:Do not URL writing.) :System message: コメントを受けつけています。