前のページ次のページ上に戻るホーム SophiaFramework 2.2
SFRAnimationControl
アニメーションを表示するレスポンダです。
#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 クラスの協調図

解説

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 から継承) トレース順序を表します。

SFRAnimationControl::SFRAnimationControl
SFRAnimationControl クラスのコンストラクタです。
[ 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);              // 表示間隔


SFRAnimationControl::GetTimerInterval
アニメーション処理の表示間隔を取得します。
[ public, const ]
SInt32 GetTimerInterval(Void);

戻り値

アニメーション処理の表示間隔を 1 / 1000 秒単位で返します。

参照

SFRAnimationControl::SeTimerInterval


SFRAnimationControl::IsTimerActive
アニメーション処理に使用しているタイマーが、起動中であるかを調べます。
[ public ]
Bool IsTimerActive(Void);

戻り値

タイマーが起動中である場合は、TRUE を返します。 タイマーが起動中でない場合は、FALSE を返します。


SFRAnimationControl::SeTimerInterval
アニメーション処理の表示間隔を変更します。
[ public ]
Void SeTimerInterval(
    SInt32 timer_val   // 表示間隔
);

引数

timer_val

アニメーション処理の表示間隔を 1 / 1000 秒単位で指定します。

参照

SFRAnimationControl::GetTimerInterval


SFRAnimationControl::StartTimer
タイマーを起動し、アニメーション処理を再開します。
[ public ]
Void StartTimer(Void);

参照

SFRAnimationControl::StopTimer


SFRAnimationControl::StopTimer
タイマーを停止させ、アニメーション処理を停止します。
[ public ]
Void StopTimer(Void);

参照

SFRAnimationControl::StartTimer