概要
foobar2000コンポーネントJScript Panel用のスクリプトです。
2種類の文字列を交互に横スクロール表示することが出来ます。文字列はTitle formattingに対応しています。画像では駒落ちしているので動きがカクカクしていますが、実際には滑らかに動きます。
パネル上で右クリック -> Propertiesより各種設定を行うことが出来ます。以下が全設定です。
設定項目
Color.Background -> 背景色を設定できます。デフォルトで入力されているRGBA形式で指定してください。RGB形式には対応させていません。他2つも同じ。
Color.Text -> テキストの色を設定できます。
Color.Text.Shadow -> テキストの影の色を設定できます。わかりにくいですが微妙に影を付けています。
Move.Interval -> テキストを動かす処理の間隔(msec)です。1000なら1秒に1回テキストが移動します。
Move.Step -> テキストが1回で動く距離(pixel)です。Intervalが1000でStepが100なら1秒に1回テキストが100ピクセル移動します。
Move.Timeout -> 曲が始まったときにテキストのスクロールを開始するまでの待ち時間(msec)です。1000なら曲が始まって1秒後にスクロールが開始します。
Text.Font -> テキストの書体を設定できます。
Text.Font.Size -> テキストの文字の大きさを設定できます。
Text.Font.Style -> テキストの文字のスタイルを設定できます。
Text.Margin -> テキスト全体の幅を強制的に広げます。値1に対して1文字分の幅が2種類のテキストそれぞれに追加されます。
Text.RenderingHing.Mode [0 to 5] -> テキストのアンチエイリアス処理を行います。
Text.Row -> テキストの高さ(pixel)を設定できます。デフォルトでセンタリングしていますが書体によっては上手くセンタリングされないことがあるので微調整用です。
TF.First.Text -> 1番目のテキストの文字列を設定できます。Title formattingに対応しています。
TF.Second.Text -> 2番目のテキストの文字列を設定できます。Title formattingに対応しています。
0:Regular、1:Bold、2:Italic、3:BoldItalic、4:Underline、8:Strikeout
JScript PanelのCalcTextWidthメソッドを使って、テキストの幅が何ピクセルかを計算しているのですが、書体や文字の大きさによっては計算結果が本来の幅よりも狭くなってしまい、文字が収まらずに多段表示されることがあります。その時にこの設定を使用します。
0:SystemDefault、1:SingleBitPerPixelGridFit、2:SingleBitPerPixel、3:AntiAliasGridFit、4:AntiAlias、5:ClearTypeGridFit
Scroll Textを使わせていただいています。ありがとうございます。
返信削除一つ質問させていただきたいのですが、使用中のスキンで現在、
・Scroll TextのパネルでConfigureに入って出る、またはReload
→テキストが焼き付く
(再生を一時停止すると直る)
・foobar2000のウィンドウのサイズを変更
→Scroll Textのパネルの背景が真っ黒になる
(foobar2000のウィンドウを一度最小化すると直る)
という現象が発生しています。これは記述の変更によって改善できるものでしょうか?
このスクリプトは文字列が1回動くごとに再描画されるので、文字列が止まるということは、JScript Panelと親子関係にあるパネルが原因ではないかと思います。スクリプトの方でこれを修正するのは無理かと。
削除https://ssbsblg.blogspot.com/2017/05/10.htmlのPanel Display Stateの項で少し触れているのですが、
Stack Panel Splitter
└Stack Panel Splitter
└JScript Panel
のようなパネル配置をすると同じような症状が発生することがあります。
そうなんですね…。まさにPSSを何層も重ねた上に使用していました。
返信削除ありがとうございました。