Nanashi-soft○プログラマ専用○iアプリ(Star)○
一部の機種にはタッチパネルが搭載されており、オプションAPIで制御できます
リファレンスの説明によると、Canvasでしか使用できないそうです
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座標です
現在画面をタッチされているかを調べるメソッドが無いので、イベントと両方監視する必要があるでしょう