![]() ![]() ![]()
|
SophiaFramework 2.2 |
#include <SFRAnimationControl.hpp>
class SFRAnimationControl : public SFRControl;
typedef SFRAnimationControl& SFRAnimationControlRef; typedef SFRAnimationControl* SFRAnimationControlPtr; typedef SFRAnimationControl** SFRAnimationControlHandle; typedef const SFRAnimationControl ConstSFRAnimationControl; typedef const SFRAnimationControl& ConstSFRAnimationControlRef; typedef const SFRAnimationControl* ConstSFRAnimationControlPtr; typedef const SFRAnimationControl** ConstSFRAnimationControlHandle;
SFRAnimationControl クラスは、タイマーを使用してアニメーションを表示しています。 このレスポンダはアニメーションの表示を管理しており、ユーザーの指定した時間間隔で画像を切り替えます。
| コンストラクタ/デストラクタ | ||
|---|---|---|
| public |
SFRAnimationControl | SFRAnimationControl クラスのコンストラクタです。 |
| パブリック関数 | ||
|---|---|---|
| public |
FocusDown (SFRResponder から継承) | 座標上で自分より下に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusLeft (SFRResponder から継承) | 座標上で自分より左に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusNext (SFRResponder から継承) | フォーカスを一つ次に進めます。 |
| public |
FocusPrevious (SFRResponder から継承) | フォーカスを一つ前に戻します。 |
| public |
FocusRight (SFRResponder から継承) | 座標上で自分より右に存在するレスポンダにフォーカスを移動します。 |
| public |
FocusUp (SFRResponder から継承) | 座標上で自分より上に存在するレスポンダにフォーカスを移動します。 |
| public |
GetAttribute (SFRResponder から継承) | アトリビュートを取得します。 |
| public |
GetBack (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダを 後ろから検索します。 |
| public |
GetBaseBound (SFRResponder から継承) | ベース領域を親レスポンダのコンテント座標系で取得します。 |
| public |
GetBaseWorld (SFRResponder から継承) | ベース領域を取得します。 |
| public |
GetContentBound (SFRResponder から継承) | コンテント領域をベース領域の座標系で取得します。 |
| public |
GetContentWorld (SFRResponder から継承) | コンテント領域を取得します。 |
| public |
GetDirector (SFRResponder から継承) | 親レスポンダを取得します。 |
| public |
GetFocus (SFRResponder から継承) | 子階層のレスポンダのうちフォーカスされているレスポンダを取得します。 |
| public |
GetFront (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダを前から検索します。 |
| public |
GetIndexBackward (SFRResponder から継承) | 同階層のレスポンダのうち自分が背面から数えて何番目かを返します。 |
| public |
GetIndexForward (SFRResponder から継承) | 同階層のレスポンダのうち自分が前面から数えて何番目かを返します。 |
| public |
GetLeft (SFRResponder から継承) | グループ化されているレスポンダのうち 自分より前にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetMoveInterval (SFRResponder から継承) | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler に よりレスポンダが移動されるときの移動量を取得します。 |
| public |
GetMoveMargin (SFRResponder から継承) | Move 関数によりレスポンダが移動されるときに、仮想領域の端から 何ピクセル内側まで移動可能かのマージンを取得します。 またこの設定は、MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler にも 適応されています。 |
| public |
GetNext (SFRResponder から継承) | 自分より後にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetNthBackward (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダで 後ろから数えてN番目にあるレスポンダを検索します。 |
| public |
GetNthForward (SFRResponder から継承) | 子階層のレスポンダのうち検索条件に一致するレスポンダで 前から数えてN番目にあるレスポンダを検索します。 |
| public |
GetPrevious (SFRResponder から継承) | 自分より前にあるレスポンダで検索条件に一致するレスポンダを 検索します。 |
| public |
GetReference (SFRResponder から継承) | ユーザが自由に設定できるリファレンス値を取得します。 |
| public |
GetRight (SFRResponder から継承) | グループ化されているレスポンダのうち 自分より後にあるレスポンダで検索条件に一致するレスポンダを検索します。 |
| public |
GetScrollInterval (SFRResponder から継承) | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を取得します。 |
| public |
GetStatusEnable (SFRResponder から継承) | 応答可能/不可能フラグを取得します。 |
| public |
GetStatusFocus (SFRResponder から継承) | フォーカス/非フォーカス フラグを取得します。 |
| public |
GetStatusTarget (SFRResponder から継承) | ターゲット/非ターゲット フラグを取得します。 |
| public |
GetStatusVisible (SFRResponder から継承) | 可視/不可視フラグを取得します。 |
| public |
GetTimerInterval | アニメーション処理の表示間隔を取得します。 |
| public |
GetTranslate (SFRResponder から継承) | コンテント座標系での仮想領域の原点座標を取得します。 |
| public |
GetTravelMargin (SFRResponder から継承) | フォーカスされたレスポンダを自動的にコンテント領域内に 移動させるときに、コンテント領域の端から何ピクセル内側に 移動させるかのマージンを取得します。 |
| public |
GetType (SFRResponder から継承) | タイプを取得します。 |
| public |
GetVirtualBound (SFRResponder から継承) | 仮想領域をコンテント領域の座標系で取得します。 |
| public |
GetVirtualWorld (SFRResponder から継承) | 仮想領域を取得します。 |
| public |
Group (SFRResponder から継承) | 他のレスポンダとグループ化します。 |
| public |
GroupMove (SFRResponder から継承) | グループ化されているレスポンダすべてを移動します。 |
| public |
GroupScroll (SFRResponder から継承) | グループ化されているレスポンダすべての仮想領域をスクロールします。 |
| public |
GroupSelect (SFRResponder から継承) | グループ化されているレスポンダすべてを最前面に移動させます。 |
| public |
GroupStatusEnable (SFRResponder から継承) | グループ化されているレスポンダすべてに対して、応答可能/不可能フラグを設定します。 |
| public |
GroupStatusVisible (SFRResponder から継承) | グループ化されているレスポンダすべてに対して、可視/不可視フラグを設定します。 |
| public |
InvalidateBase (SFRResponder から継承) | ベース領域内のアップデート領域を登録します。 |
| public |
InvalidateContent (SFRResponder から継承) | コンテント領域内のアップデート領域を登録します。 |
| public |
InvalidateVirtual (SFRResponder から継承) | 仮想領域内のアップデート領域を登録します。 |
| public |
Invoke (SFRResponder から継承) | イベントを送信します。 |
| public |
IsTimerActive | アニメーション処理に使用しているタイマーが、起動中であるかを調べます。 |
| public |
Move (SFRResponder から継承) | レスポンダを移動します。 |
| public |
RegisterHandler (SFRHandler から継承) | ハンドラを登録します。 |
| public |
RegisterIntelligentHandler (SFRResponder から継承) | SelectHandler, ClearHandler, FocusUpHandler, FocusDownHandler, FocusLeftHandler, FocusRightHandler をそれぞれ AVK_SELECT, AVK_CLR, AVK_UP, AVK_DOWN, AVK_LEFT, AVK_RIGHT に登録します。 |
| public |
RegisterManipulateHandler (SFRResponder から継承) | SelectHandler, ClearHandler, FocusNextHandler, FocusPreviousHandler を それぞれ AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録します。 |
| public |
RegisterMoveHandler (SFRResponder から継承) | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| public |
RegisterScrollHandler (SFRResponder から継承) | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler を それぞれ AVK_2, AVK_8, AVK_4, AVK_6 に登録します。 |
| public |
RegisterTracer (SFRTracer から継承) | トレーサを登録します。 |
| public |
Scroll (SFRResponder から継承) | 仮想領域をスクロールします。 |
| public |
SeTimerInterval | アニメーション処理の表示間隔を変更します。 |
| public |
Select (SFRResponder から継承) | レスポンダを最前面に移動させます。 |
| public |
SetBaseBound (SFRResponder から継承) | ベース領域を親レスポンダのコンテント座標系で設定します。 |
| public |
SetContentBound (SFRResponder から継承) | コンテント領域をベース領域の座標系で設定します。 |
| public |
SetMoveInterval (SFRResponder から継承) | MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler に よりレスポンダが移動されるときの移動量を設定します。 |
| public |
SetMoveMargin (SFRResponder から継承) | Move 関数によりレスポンダが移動されるときに、仮想領域の端から 何ピクセル内側まで移動可能かのマージンを設定します。 またこの設定は、MoveUpHandler, MoveDownHandler, MoveLeftHandler, MoveRightHandler にも 適応されます。 |
| public |
SetReference (SFRResponder から継承) | ユーザが自由に設定できるリファレンス値を設定します。 |
| public |
SetScrollInterval (SFRResponder から継承) | ScrollUpHandler, ScrollDownHandler, ScrollLeftHandler, ScrollRightHandler によりレスポンダの仮想領域がスクロールされるときのスクロール量を設定します。 |
| public |
SetStatusEnable (SFRResponder から継承) | 応答可能/不可能フラグを設定します。 |
| public |
SetStatusFocus (SFRResponder から継承) | フォーカス/非フォーカス フラグを設定します。 |
| public |
SetStatusTarget (SFRResponder から継承) | ターゲット/非ターゲット フラグを設定します。 |
| public |
SetStatusVisible (SFRResponder から継承) | 可視/不可視フラグを設定します。 |
| public |
SetTranslate (SFRResponder から継承) | コンテント座標系での仮想領域の原点座標を設定します。 |
| public |
SetTravelMargin (SFRResponder から継承) | フォーカスされたレスポンダを自動的にコンテント領域内に 移動させるときに、コンテント領域の端から何ピクセル内側に 移動させるかのマージンを設定します。 |
| public |
SetVirtualBound (SFRResponder から継承) | 仮想領域をコンテント領域の座標系で設定します。 |
| public |
StartTimer | タイマーを起動し、アニメーション処理を再開します。 |
| public |
StopTimer | タイマーを停止させ、アニメーション処理を停止します。 |
| public |
Travel (SFRResponder から継承) | 設定された長方形が可視領域に入るように、レスポンダの 仮想領域をスクロールします。 |
| public |
Ungroup (SFRResponder から継承) | グループ化を解除します。 |
| public |
UnregisterHandler (SFRHandler から継承) | 登録されているハンドラを削除します。 |
| public |
UnregisterTracer (SFRTracer から継承) | 登録されているトレーサを削除します。 |
| プロテクト関数 | ||
|---|---|---|
| protected |
ClearHandler (SFRResponder から継承) | クリアキーが押されたときのハンドラです。 |
| protected |
FocusDownHandler (SFRResponder から継承) | 下矢印キーが押されたときのハンドラです。 座標上で自分より下に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusLeftHandler (SFRResponder から継承) | 左矢印キーが押されたときのハンドラです。 座標上で自分より左に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusNextHandler (SFRResponder から継承) | 下矢印キーが押されたときのハンドラです。 フォーカスを一つ後に移動します。 |
| protected |
FocusPreviousHandler (SFRResponder から継承) | 上矢印キーが押されたときのハンドラです。 フォーカスを一つ前に移動します。 |
| protected |
FocusRightHandler (SFRResponder から継承) | 右矢印キーが押されたときのハンドラです。 座標上で自分より右に存在するレスポンダにフォーカスを移動します。 |
| protected |
FocusUpHandler (SFRResponder から継承) | 上矢印キーが押されたときのハンドラです。 座標上で自分より上に存在するレスポンダにフォーカスを移動します。 |
| protected |
GetAppearanceTransparent (SFRResponder から継承) | APPEARANCE_TRANSPARENT フラグが設定されているかどうかを取得します。 |
| protected |
GetInheriteEnable (SFRResponder から継承) | 現在の応答可能/不可能の状態を取得します。 |
| protected |
GetInheriteFocus (SFRResponder から継承) | 現在のフォーカス/非フォーカスの状態を取得します。 |
| protected |
GetInheriteTarget (SFRResponder から継承) | 現在のターゲット/非ターゲットの状態を取得します。 |
| protected |
GetInheriteVisible (SFRResponder から継承) | 現在の可視/不可視の状態を取得します。 |
| protected |
GetPropertyClosable (SFRResponder から継承) | PROPERTY_CLOSABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyDirect (SFRResponder から継承) | PROPERTY_DIRECT フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyMovable (SFRResponder から継承) | PROPERTY_MOVABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyScrollable (SFRResponder から継承) | PROPERTY_SCROLLABLE フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertySelect (SFRResponder から継承) | PROPERTY_SELECT フラグが設定されているかどうかを取得します。 |
| protected |
GetPropertyTravel (SFRResponder から継承) | PROPERTY_TRAVEL フラグが設定されているかどうかを取得します。 |
| protected |
MoveDownHandler (SFRResponder から継承) | 数字の8キーが押されたときのハンドラです。 |
| protected |
MoveLeftHandler (SFRResponder から継承) | 数字の4キーが押されたときのハンドラです。 |
| protected |
MoveRightHandler (SFRResponder から継承) | 数字の6キーが押されたときのハンドラです。 |
| protected |
MoveUpHandler (SFRResponder から継承) | 数字の2キーが押されたときのハンドラです。 |
| protected |
ScrollDownHandler (SFRResponder から継承) | 数字の8キーが押されたときのハンドラです。 |
| protected |
ScrollLeftHandler (SFRResponder から継承) | 数字の4キーが押されたときのハンドラです。 |
| protected |
ScrollRightHandler (SFRResponder から継承) | 数字の6キーが押されたときのハンドラです。 |
| protected |
ScrollUpHandler (SFRResponder から継承) | 数字の2キーが押されたときのハンドラです。 |
| protected |
SelectHandler (SFRResponder から継承) | セレクトキーが押されたときのハンドラです。 |
| protected |
UnregisterIntelligentHandler (SFRResponder から継承) | AVK_SELECT, AVK_CLR, AVK_UP, AVK_DOWN, AVK_LEFT, AVK_RIGHT に登録されているハンドラを 削除します。 |
| protected |
UnregisterManipulateHandler (SFRResponder から継承) | AVK_SELECT, AVK_CLR, AVK_DOWN, AVK_UP に登録されているハンドラを 削除します。 |
| protected |
UnregisterMoveHandler (SFRResponder から継承) | AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。 |
| protected |
UnregisterScrollHandler (SFRResponder から継承) | AVK_2, AVK_8, AVK_4, AVK_6 に登録されているハンドラを 削除します。 |
| 型 | ||
|---|---|---|
| BehaviorEnum (SFRControl から継承) | コントロールのデフォルトのビヘイビアを表します。 | |
| HandlerEnum (SFRHandler から継承) | ハンドラの呼び出されるタイミングを表します。 | |
| TracerEnum (SFRTracer から継承) | トレース順序を表します。 | |
[ public ]
SFRAnimationControl(
SFRResponderPtr director_ptr // 親となるレスポンダのポインタ
ConstSFURectRef rect // 親の座標上でのアニメーションの表示位置
const SFUBrewPtr< SFBBitmap > & src_bmp_image // 転送元のビットマップ画像
ConstSFUArrayListPtr src_bmp_rect_list_ptr // 転送元の矩形領域リスト
ConstSFUColorRef trans_color // 透過色
SInt16 max_frame // 最大フレーム数
SInt32 timer_val // 表示間隔
BehaviorType behavior = STATUS_VISIBLE|APPEARANCE_TRANSPARENT // ビヘイビア
SFCType attribute = ATTRIBUTE_ANIMATIONCONTROL // アトリビュート
);
[ public ]
SFRAnimationControl(
SFRResponderPtr director_ptr // 親となるレスポンダのポインタ
ConstSFURectRef rect // 親の座標上でのアニメーションの表示位置
SFUBrewPtr< SFBBitmap > src_bmp_image_list[] // ビットマップ画像リスト
ConstSFUColorRef trans_color // 透過色
SInt16 max_frame // 最大フレーム数
SInt32 timer_val // 表示間隔
BehaviorType behavior = STATUS_VISIBLE|APPEARANCE_TRANSPARENT // ビヘイビア
SFCType attribute = ATTRIBUTE_ANIMATIONCONTROL // アトリビュート
);
SFRAnimationControl クラスはアニメーションの表示の仕方により、2 種類のコンストラクタを持っています。
どちらのコンストラクタも決められた間隔で画像を切り替えて表示します。 コンストラクタで与えられた情報を元に、タイマーを起動し、アニメーション処理を始めます。 その後、ユーザからの要求により、アニメーション処理を停止、または、終了できます。 SFRAnimationControl クラスは画像を切り替えて表示するだけのクラスですので、 画像データはユーザーが管理してください。
単一ビットマップを使用して、アニメーションを表示します。 サンプル コードでは、大きさが縦横 ( 200 x 70 ) ピクセルのビットマップ画像を使用しています。 このビットマップ画像を 4 分割して、アニメーションを表示しています。
#define ANIMATION_FRAME 4
SFUArrayList m _src_bmp_list; // アニメーション表示時のRect情報を格納する。
// リソースからビットマップ画像を読み込みます。
SFUBrewPtr<SFBBitmap> ani_bmp = shell->LoadResBitmap(ADDRESSBOOK_RES_FILE, IDR_ANIME1);
ani_bmp->GetInfo(&ani_bmp_info);
// アニメーションの表示領域を設定します。
SFURect ani_bmp_rect;
ani_bmp_rect.x = 0;
ani_bmp_rect.y = 0;
ani_bmp_rect.dx = 50;
ani_bmp_rect.dy = 70;
// 転送元の矩形領域のリストを作成します。
// リストに登録した順番で、ビットマップ画像を切り替えます。
for (SIntN i = 0; i < ANIMATION_FRAME; i ++)
{
SFURectPtr rect = new SFURect;
rect->x = 50 * i;
rect->y = 0;
rect->dx = 50;
rect->dy = 70;
m_src_bmp_list.Append(rect);
}
// アニメーションを開始します。
new SFRAnimationControl(this, // 親となるレスポンダのポインタ
ani_bmp_rect, // 親の座標上でのアニメーションの表示位置
ani_bmp, // 転送元ビットマップイメージ
&m_src_bmp_list, // 転送元の矩形領域リスト
SFUColor(0xff, 0xff, 0xff), // 透過色
ANIMATION_FRAME, // フレーム数
1000); // 表示間隔
複数のビットマップを使用して、アニメーションを表示します。
#define ANIMATION_FRAME 4
SFUBrewPtr<SFBBitmap> m_ani_bmp[ANIMATION_FRAME]; // アニメーションで利用する画像リスト。
// リソースからビットマップ画像を読み込み、画像リストに設定します。
// 画像リストに設定した順番で、ビットマップ画像を切り替えます。
m_ani_bmp[0] = shell->LoadResBitmap(ADDRESSBOOK_RES_FILE, IDR_ANIME1_QVGA1);
m_ani_bmp[1] = shell->LoadResBitmap(ADDRESSBOOK_RES_FILE, IDR_ANIME1_QVGA2);
m_ani_bmp[2] = shell->LoadResBitmap(ADDRESSBOOK_RES_FILE, IDR_ANIME1_QVGA3);
m_ani_bmp[3] = shell->LoadResBitmap(ADDRESSBOOK_RES_FILE, IDR_ANIME1_QVGA4);
AEEBitmapInfo ani_bmp_info;
m_ani_bmp[0]->GetInfo(&ani_bmp_info);
// アニメーションの表示領域の設定
SFURect ani_bmp_rect;
ani_bmp_rect.x = 0;
ani_bmp_rect.y = 0;
ani_bmp_rect.dx = (SInt16)ani_bmp_info.cx;
ani_bmp_rect.dy = (SInt16)ani_bmp_info.cy;
// アニメーションを開始します。
new SFRAnimationControl(this, // 親となるレスポンダのポインタ
ani_bmp_rect, // 親の座標上でのアニメーションの表示位置
m_ani_bmp, // ビットマップ画像リスト
SFUColor(0,0,255), // 透過色
ANIMATION_FRAME, // フレーム数
1000); // 表示間隔
[ public, const ] SInt32 GetTimerInterval(Void);
アニメーション処理の表示間隔を 1 / 1000 秒単位で返します。
[ public ] Bool IsTimerActive(Void);
タイマーが起動中である場合は、TRUE を返します。 タイマーが起動中でない場合は、FALSE を返します。
アニメーション処理の表示間隔を 1 / 1000 秒単位で指定します。
[ public ] Void StartTimer(Void);
[ public ] Void StopTimer(Void);
| Copyright(C) 2003-2004 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|