FlashCCでiPhoneのゲームアプリを制作している件です。
タッチイベントはiPhone実機で動作確認するのですが、デバッグ中にパブリッシュで1分以上も待たされるのはしんどいです。
AirDebugLauncherならスグにデバッグできるので、デスクトップでも操作できるようにイベントの出し分けを設定してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
////インターフェース if(Capabilities.touchscreenType ==TouchscreenType.NONE){ //マウスイベント this.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); this.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); function onMouseDown(event:MouseEvent) { shoot(); body.gotoAndStop("dark"); } function onMouseUp(event:MouseEvent) { body.gotoAndStop("def"); } }else{/////タッチイベント Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; this.addEventListener(TouchEvent.TOUCH_TAP, onTouchTap); this.addEventListener(TouchEvent.TOUCH_ROLL_OVER, onTouchRollOver); this.addEventListener(TouchEvent.TOUCH_ROLL_OUT, onTouchRollOut); function onTouchTap(event:TouchEvent) { shoot(); body.gotoAndStop("dark"); } function onTouchEnd(event:TouchEvent) { body.gotoAndStop("def"); } function onTouchRollOver(event:TouchEvent) { shoot(); body.gotoAndStop("dark"); } function onTouchRollOut(event:TouchEvent) { body.gotoAndStop("def"); } } |
端末がタッチパネル対応か否かを調べるCapabilities.touchscreenTypeというプロパティを利用します。
TouchscreenType.NONEだったらタッチパネルに対応していないので、そちらのif分岐にPCで簡易デバッグに使うためのマウスイベントを記載しています。
また、タッチパネルに対応している側の分岐には、iPhoneで使うためにタッチイベントを記載しています。
タッチイベントについては、こちらのページ(「akihiro kamijo」)を参考にさせていただきました。
従来のFlashのマウスイベントでもタッチパネルに対応していますが、スマホ用には何となくタッチイベントを使った方が良いのかなぁと思った次第です。
これで、ちょっとADLで動作確認したい時だけの時に、実機書き出しのパブリッシュで1分以上待たされずに済みます。
こちらが完成したゲームです!