Form

Q
フリックでメニュー表示をしたい
[内容]
画面上でフリックした際に、画面を切替えるメニューを表示するにはどうすればよいか

A
ジェスチャ操作時に発生するFormクラスのGestureイベントを利用して実装する事が可能です。

ジェスチャ操作の種類は、フリック・スワイプ・ピンチの3種類がありますが、
UseGesturプロパティを利用して、Gestureイベントが発生するジェスチャ操作を
指定する事が可能です。
フリック操作でのみGestureイベントを発生させるには、「UseGesture = $FLICK;」と
記述します。

また、 GestureイベントのEventオブジェクトにはフリック方向を示すdirectionオブジェクトが
存在します。directionオブジェクトを利用する事で上下左右どちらにフリックされたかを
判断して処理を分ける事も可能です。


[サンプルコード]


Form FormSd_001_sub1 {
          

    UseGesture = $FLICK;
    
    ・・・(略)
    
    Function OnGesture( e ) {
        /* フリック方向を取得 */
        t_direction = e.direction;
        if ( !(t_direction == 3 ||  t_direction == 2)) {
            return;
        }
        SetTimer(0.01);
    }
    
    Function OnTimer( e ) {
        if(t_direction == 3){
            /* 右方向へのフリック操作の場合サブメニュー表示 */
            if ( FormSd_001_sub1.frmSideMenu.X >= 0 ) {
                FormSd_001_sub1.frmSideMenu.X = 0;
                RemoveTimer();
                return;
            }
            FormSd_001_sub1.frmSideMenu.X += 15;
        }else{
            /* 左方向へのフリック操作の場合サブメニュー表示 */
            if ( FormSd_001_sub1.frmSideMenu.X <= -150 ) {
                FormSd_001_sub1.frmSideMenu.X = -150;
                RemoveTimer();
                return;
            }
            FormSd_001_sub1.frmSideMenu.X -= 15;
        }
    }
    
    if ( !$DESIGNTIME ) {
        /* サイドメニューを設定 */
        FormSd_001_sub1.Get("frmSideMenu.crs");
        FormSd_001_sub1.frmSideMenu.X = -150;
    }
}

実際の動作はCRS形式のサンプル
  「フリックでメニュー表示をしたい(FormSd_001.zip)
でご確認ください。

管理番号:FormSd_001
 
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser AI・SmartDevice TIPS集 トップへ