Nanashi-softプログラマ専用iアプリ(Star)


◇iアプリ(Star)-タッチパネル-

一部の機種にはタッチパネルが搭載されており、オプションAPIで制御できます
リファレンスの説明によると、Canvasでしか使用できないそうです

○importするクラス

import com.docomostar.opt.ui.TouchDevice;

○タッチパネルをオンにする

try{
  //タッチパネルデバイスが使用可能かを調べる
  if(TouchDevice.isAvailable()){
    //タッチパネルデバイスオン
    TouchDevice.setEnabled(true);
  }
  //※使えない場合はelseでは無くて、例外のcatchの中です
}
catch(Exception e){}

オプションAPIですので、必ずtry〜catchの中で使用する必要があります
非対応機の場合、例外が発生する為です

○イベント取得方法

processEventにキー入力と同じように飛んできます
ですので、キーイベントと列挙する事になります
ここでも、オプションAPIですので、try〜catchの中に記述します

public void processEvent(int type, int param){
  if(type == Display.KEY_PRESSED_EVENT){
    //キーが押された
  }
  if(type == Display.KEY_RELEASED_EVENT){
    //キーが離された
  }
  //タッチパネル対応
  try{
    //タッチパネルがオンになっているか確認
    if(TouchDevice.isEnabled()){
      if(type == Display.TOUCH_PRESSED_EVENT){
        //タッチデバイス「タッチ操作」
      else if(type == Display.TOUCH_MOVEDSTART_EVENT){
        //タッチデバイス「ムーブ操作(開始)」
      }
      else if(type == Display.TOUCH_MOVEDEND_EVENT){
        //タッチデバイス「ムーブ操作(停止)」
      }
      else if(type == Display.TOUCH_RELEASED_EVENT){
        //タッチデバイス「リリース操作」
      }
    }
  }
  catch(Exception e){}
}

○タッチ位置を取得

ここがちょっとアレ? と思ったのですが、座標は自力で取得する必要があります
と言うのも、イベントは指を動かしている間には来ません
リファレンスにも書かれてあるのですが、タイマーなどを使用して常に位置を監視する必要があります

ゲームなどでFPSループを作成している場合は、その処理中に含めると良いでしょう
ここは、各自試行錯誤する必要のあるところかと思います

取得方法は、TouchDevice.getX()でX座標、TouchDevice.getY()でY座標です
現在画面をタッチされているかを調べるメソッドが無いので、イベントと両方監視する必要があるでしょう



TOPプログラマ専用iアプリ(Star)