Android端末にて実機検証していて、自分は問題なくタップイベントを発生させていたのですが、
他人にプレイしてもらっているときに、どうもタップイベントが起きてないようなそんな動きをしていました。
そのときは、この人がスマホに慣れていないからなどという楽観視をしていたんですが、他の人にもテストプレイしていたところ、どうも同じような症状になるんですよね。
5人のうち3人がタップイベントをうまく発生できてませんでした。
こりゃあまずいってことで考えたのが、タップではなくタッチ開始イベントにしたらどうか。ってことです。
TAPではなくTOUCH_BEGINで判定するってことですね。
タップっていうのは、タッチスクリーンに一旦触れてから離れるまでの動作を指します。なので単純にタッチするよりもやや発生確率が下がるんですね。
PCで検証する際はマウスクリックではなく、マウスダウンにします。
PCと端末の違いを吸収するためのコードが以下です。
ドキュメントクラスでの記述
if(Multitouch.supportsTouchEvents) {
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
} else {
Multitouch.inputMode = MultitouchInputMode.NONE;
}これはドキュメントクラスのコンストラクタに記述して必ず実行されるようにしときます。
これでAndroid端末ではタッチポイントモードになり、PCならばマウスモード?になります。
ボタンなどでの記述
if(Multitouch.supportsTouchEvents) {
this.addEventListener(TouchEvent.TOUCH_BEGIN, onBtnClick);
} else {
this.addEventListener( MouseEvent.MOUSE_DOWN, onBtnClick );
}
function onBtnClick( e:Event ):void{
//ボタン押下時処理
}端末ではTOUCH_BEGINにします。これでPCと実機とで同じ動作になります。
この状況下で再び同じ人物にテストを頼んだところ、今度はタッチイベントがうまくいかないということはなく、大丈夫でした。
やっぱり色々な人にテストをしてもらうのがよいですなあ。
実際に作ったのが下です。
| 「山川悟の詰将棋」はスマートフォン用詰将棋アプリです。 Android端末(google play)⇒ iOS端末(app store)⇒ Technology By: Adobe AIR |