- 質問:ピクチャコントロールを使った簡易動画の作成方法を教えてください。
- 回答:ピクチャコントロールにはイメージデータを1枚~32枚まで設定することができます。これらのイメージを順次切り換えて表示することで、パラパラ漫画の要領で簡単な動画のような表示ができます。
-
- 32枚のイメージデータを使用した簡易動画(リピートあり)を作成する場合のサンプルソースを以下に示します。
タイマがカウントアップするごとに、イメージが切換わって表示されます。
[GENSKETCH2上での設定]
①ピクチャコントロールの表示タイプを「イメージ」、状態の数を「32」と設定します。
②あらかじめリソース登録しておいた任意のイメージデータ32枚をピクチャコントロールの[状態0 意匠]~[状態31 意匠]
に設定します。
③コールバック関数のOnCreate、OnDelete、OnTimerを「あり」に設定します。
サンプルソースを以下に示します
//----------------------------------
//OnCreateコールバック関数
//----------------------------------
long GPANEL00005_GPICTURE00000OnCreate(GPanel00005 *pSelf, unsigned short usMessage,
long lLParam, long lUParam)
{
//ピクチャコントロールのポインタを取得
GPicture *pPicture = (GPicture *)GWGetVmt(GPanel_VMT,pSelf)->GetChild(pSelf, GPANEL00005_GPICTURE00000);
//イメージ切り換え用のタイマを設定(1000ms)
GESetTimer(pPicture, 1, 1000);
return TRUE;
}
//----------------------------------
//OnTimerコールバック関数
//----------------------------------
long GPANEL00005_GPICTURE00000OnTimer(GPanel00005 *pSelf, unsigned short usMessage, long lLParam, long lUParam)
{
GPicture *pPicture;
unsigned char ucStatus;
//ピクチャコントロールのポインタを取得
GPicture *pPicture = (GPicture *)GWGetVmt(GPanel_VMT,pSelf)->GetChild(pSelf, GPANEL00005_GPICTURE00000);
//現在の状態を取得
ucStatus = GWGetVmt(GPicture_VMT,pPicture)->GetStatus(pPicture);
//状態によりイメージ切り換え(状態0→状態31→状態0)
GWGetVmt(GPicture_VMT,pPicture)->SetStatus(pPicture, (unsigned char )(ucStatus >=31? 0: ++ucStatus));
return TRUE;
}
//----------------------------------
//OnDeleteコールバック関数
//----------------------------------
long GPANEL00005_GPICTURE00000OnDelete(GPanel00005 *pSelf, unsigned short usMessage, long lLParam, long lUParam)
{
//ピクチャコントロールのポインタを取得
GPicture *pPicture = (GPicture *)GWGetVmt(GPanel_VMT,pSelf)->GetChild(pSelf, GPANEL00005_GPICTURE00000);
//ピクチャコントロールのOnCreate時に設定したタイマを削除
GEKillTimer(pPicture, 1);
return TRUE;
}
