QLOOK ANALYTICS
サイトマップ :

表示領域更新(MV)
Ver1.01(2016/01/13)

どういったものに需要があるかなど
プラグイン製作の参考にしたいので,
いいね!と思ったスクリプトにクリックお願いします.

web拍手

概要

ウインドウの指定領域の表示内容をアニメーションで任意にまたは自動で切り替える機能を提供します。
このプラグインは開発者向けで単体では表示上の効果はありません。
以下では基本的な使い方のみ説明しますので、詳細はコードおよびContentsUpdatorを利用したプラグインのコードをご覧下さい。

コード

以下GithubのBMSP_MVよりClone or DownloadボタンからZIP形式でダウンロードして頂き、中にあるBMSP_ContentsUpdator.jsをツクールMVプロジェクトのjs/pluginsフォルダ内に配置してください。 BMSP_MV/ContentsUpdator

使用方法

構造

ウインドウ内容の更新領域は以下の様な構造になっています。

Window
 |- AreaManager
 |- Area
 |   |- Panel1
 |   |- Panel2
 |   |   :
 |   |- Paneln
 |- Area
 |   :
 |- Area
     |- Panel1
     |- Panel2
     |   :
     |- Paneln
              

AreaManager

更新領域を管理するSpriteです。AreaManagerは複数の更新領域を持つことが出来ます。
ウインドウインスタンスwindowに対してwindow.areaManagerで参照できます。

registerUpdateArea(name, x, y, width, height)
Windowコンテンツの指定領域にnameという名前にUpdateAreaを登録しそのUpdateAreaを返します。
nameが登録済みの場合は、そのUpdateAreaを返します。
registerAutoUpdateArea(name, x, y, width, height)
Windowコンテンツの指定領域にnameという名前のAutoUpdateAreaを登録しそのAutoUpdateAreaを返します。
nameが登録済みの場合は、そのAutoUpdateAreaを返します。
UpdateAreaと名前空間を共有する点に注意して下さい。
unregister(name)
nameという名前の(Auto)UpdateAreaを削除します。

UpdateArea

更新領域のSpriteです。UpdateAreaは順序付きのPanelを複数持つことが出来ます。
UpdateAreaは現在の表示Panelと次(または前)のPanelへの進捗(proress)情報を保持します。
この2つの情報を更新することで複数のPanelの表示をアニメーションさせながら切り替えることが出来ます。

active = true
falseのときアニメーションが更新されなくなります。
lazy = false
trueの時、遅延更新モードになります。
setAnimationType(name)
アニメーションのタイプをセットします。
addPanel(name)
nameという名前のPanelを末尾に追加しそのPanelを返します。nameというPanelがすでに存在する場合は追加せずにそのPanelを返します。
PanelにはUpdateAreaと同じサイズの空のbitmapが登録されるので、このbitmapに切り替えたい表示内容を描画します。
removePanel(name)
nameという名前のPanelを削除します。
setProgress(value, min = -100, max = 100)
現在表示中のPanelに対する進捗をセットします。値は0%を中心に次のPanelまでの100%、前のPanelまでの-100%を指定出来ます。
引数でmin、maxを指定することで進捗のセット値に制限を掛けることが出来ます。
setIndex(value)
現在表示中のPanel番号をセットします。これを更新すると進捗も0にセットされます。
lazyCommit()
遅延更新モードの時、Panelの更新を表示に反映します。

AutoUpdateArea

自動更新領域のSpriteです。UpdateAreaに自動で表示内容を切り替えていく機能を加えたクラスです。

playing = true
activeと異なり、falseのとき次のパネルへの進行がとまります。進捗中のアニメーションは停止しません。
setWaitDuration(value)
パネル1枚ごとの待機フレームをセットします。
setAnimationDuration(value)
切り替えアニメーションにかけるフレーム数です。

Panel

更新領域の表示内容のSpriteです。Panel1枚につき表示内容1つを描画し、2枚以上のPanelを更新領域に登録することで表示内容を切り替えます。

syncFontSettings()
Windowの現在のフォント設定をPanelに反映します。
反映されるのはfontFace,fontItalic,fontSizeです。
syncDrawSettings()
Windowの現在の描画設定をPanelに反映します。
反映されるのはtextColor,paintOpacity,outlineWidthです。

アニメーションの定義

アニメーションタイプはBMSP.ContentsUpdator.animationsオブジェクトのプロパティとして定義します。
各アニメーションタイプは進捗が0%の時の現在のPanel単体の表示処理single関数、
進捗が0~100%の時の現在のPanelと次のPanelの表示処理next関数、
進捗が0~-100%の時の現在のPanelと前のPanelの表示処理prev関数が定義されている必要があります。
各種表示処理関数が呼び出される前、すべてのPanelに以下の初期化処理が行われます。
panel.visible = false
panel.opacity = 255
panel.move(0,0)
panel.setFrame(0, 0, area.width, area.height)
各種表示処理では進捗に応じてPanelの表示状態・位置を設定してください。

single(progress, nowPanel, area)
進捗0%の処理内容
next(progress, nowPanel, nextPanel, area)
進捗0~100%の処理内容
prev(progress, nowPanel, prevPanel, area)
進捗0~-100%の処理内容

デフォルトではfade,slideUp,slideDown,slideRight,slideLeftの4つが定義されているので参考にしてください。

遅延更新

(Auto)UpdateAreaのプロパティlazyをtrueにすると、遅延更新モードになります。
遅延更新モードではPanelの登録・削除処理を行ってもすぐに反映されなくなります。
行った変更を表示に反映するにはlazyCommit()関数を呼び出します。
また、AutoUpdateAreaではアニメーションが終了したタイミングでlazyCommit()が自動で呼び出されます。
遅延更新はアニメーション中にPanelの追加削除が発生しアニメーションが途切れたりすることを防止できます。

Valid XHTML 1.0 Transitional