+---------------------------------------------------------- | | mod_smart.as | | Ver 3.44 (※注意:Ver 3.0以降から「hsp3dish.as」が必須となりました。事前に「hsp3dish.as」をインクルードしてください) | +---------------------------------------------------------- | | HSP3.4β1 以降 (スマートフォン(Android/iOS)/WindowsOS) 用 | | タップ | タッチ(長押し) | ドラッグ | ダブルタップ | スワイプ | ピンチアウト / ピンチイン | マルチタッチ | 仮想アナログスティック | | を擬似的に取得するモジュール | | | By. しまくろねこ | +---------------------------------------------------------- (1). 当モジュールの概要 HSP3Dishを利用したスマートフォン(Android/iOS)/WindowsOS上で擬似的に  タップ  タッチ(長押し)  ドラッグ  ダブルタップ  スワイプ  ピンチアウト / ピンチイン マルチタッチ 仮想アナログスティック の『アクション(操作)』を取得します。 タッチパネル上で操作する仮想ゲームコントロール用ボタン等を作ることも可能です。 (2). 配布等について 当モジュールはフリー(商用可)ですが、改造等はお止めください。 使う人がいるか不明ですが、もし使われる場合は配布用ReadMe等に当モジュールを使用している旨を記載する必要はありません。 もし使われる際は、メール(simakuroneko@gmail.com)もしくは、 掲示板(http://simakuroneko.bbs.fc2.com/)に使用するとだけ一言書いてもらえると作者が喜びます。 再配布もOKですが、その場合事後で結構ですのでE-Mail( simakuroneko@gmail.com )までご連絡ください。 また、書籍等に掲載する場合も自由に掲載していただいてOKです。 その場合も事後で結構ですのでE-Mail( simakuroneko@gmail.com )までご連絡頂けると嬉しいです。 (3). 動作確認OS ・Windows 8.1 ・Windows VISTA ・Windows XP ・Android (HSP3Dishを利用)※HSPTV!掲示板の方に動作確認していただきました ・iOS (HSP3Dishを利用) ※HSPTV!掲示板の方に動作確認していただきました (4). 当モジュール(mod_smart.as)のファイル配置フォルダ HSP3の[common]フォルダに "mod_smart.as" をコピーしてください。 (5). 当モジュールのHSP3上での使用準備 まず最初に、#includeで "hsp3dish.as" を読み込んでください。 次に、#includeで "mod_smart.as" を必ず呼び出します。 次に、当モジュールを初期化するために、プログラムの先頭などで "smart_init" 命令を1度呼び出してください。 これで当モジュールを使用する準備が整いました。タップなどの情報を取得することができます。 (6). Ver2.2までと、Ver3.0以降の注意点 Ver2.2までは各関数の引数[p2],[p3]にHSP3標準命令の「stick」からクリック情報を取得していましたが、 Ver3.0からは「hsp3dish.as」でマルチタッチを認識できる「mtlist / mtinfo」命令をmod_smart.as内部で使用しタップ等の取得するように仕様を変更しました。 そのためHSP3標準命令の「stick」でタップ等を認識する必要がないため、各関数の[p2],[p3]を削除しました。 また、Ver3.0からは必ず「hsp3dish.as」を事前に#includeにて読み込んでおく必要があります。 (7). 当モジュールのタップ等の認識について ■タップ ・Windows ↓指定した領域内でマウスボタンを押す ↓指定した領域内、時間内にマウスボタンを離す タップと認識 ・スマートフォン ↓指定した領域内で画面を指で押す ↓指定した領域内、時間内に画面から指を離す タップと認識 ■タッチ(長押し) ・Windows ↓指定した領域内でマウスボタンを押す ↓指定した領域内、時間までマウスボタンを押し続ける タッチと認識 (※認識後にマウスボタンを離さない限り再度タッチとは認識されない) ・スマートフォン ↓指定した領域内で画面を指で押す ↓指定した領域内、時間まで画面を指で押し続ける タッチと認識 (※認識後に画面から指を離さない限り再度タッチとは認識されない) ■ドラッグ(タッチ後にマウスカーソルを移動) ・Windows ↓指定した領域内でマウスボタンを押す ↓指定した領域内、時間までマウスボタンを押し続ける ↓指定した領域内でマウスボタンを離す ドラッグと認識 (※認識後にマウスボタンを離さない限り再度ドラッグと認識される) ・スマートフォン ↓指定した領域内で画面を指で押す ↓指定した領域内、時間まで画面を指で押し続ける ↓指定した領域内で画面から指を離す ドラッグと認識 (※認識後に画面から指を離さない限り再度ドラッグと認識される) ■ダブルタップ(ダブルクリック) ・Windows ↓指定した領域内でマウスボタンを押す ↓指定した時間内にマウスボタンを離す ↓指定した領域内、時間内にマウスボタンを押す ダブルタップと認識 (※認識後にマウスボタンを離さない限り再度ダブルタップとは認識されない) ・スマートフォン ↓指定した領域内で画面を指で押す ↓指定した時間内に画面から指を離す ↓指定した領域内、時間内に画面から指を押す ダブルタップと認識 (※認識後に画面から指を離さない限り再度ダブルタップとは認識されない) ■スワイプ ・Windows ↓指定した領域内でマウスボタンを押す ↓指定した時間内に決められた移動量までマウスカーソルを移動する ↓指定した領域内、時間内にマウスボタンを離す スワイプと認識 ・スマートフォン ↓指定した領域内で画面を指で押す ↓指定した時間内に決められた移動量まで画面を指で押す ↓指定した領域内、時間内に画面から指を押す スワイプと認識 ■ピンチアウト / ピンチイン ・スマートフォン ↓画面を2本の指で押す ↓2本の指で押された最初の位置から、現在の2本の指の位置が長くなる ピンチアウトと認識 ↓画面を2本の指で押す ↓2本の指で押された最初の位置から、現在の2本の指の位置が短くなる ピンチインと認識 (8). 命令/関数 ■命令 ============================================= ■smart_init ・概要 当モジュールの初期化処理を行ないます。 必ず一番最初に呼び出してください。 また、アクション番号をリセット(メモリを節約)する意味で、途中で使っていただいても構いません。 その場合、それまでsmart_addで追加したアクション領域はすべて消去されます。 ・引数 なし ・戻り値 なし ■smart_add p1 ・概要 タップ等の操作を取得するためのアクションを追加します。 ・引数 p1 (int) : アクションモード (※省略可能です) (※アクションモードとは、例えばタップを[1]、タッチを[2]、ドラッグを[3]...と、識別するために付ける数値です) (※アクションモードは、後で「このアクション番号で取得できるのはタップだったかな?」と分からなくなったときでも、 smart_mode_get にてアクションの種類を識別できるので、自分であとで識別しやすい数値を自由に付けてください) ・戻り値 smart_addが実行された後、システム変数(stat)に追加されたアクション番号が帰ります。 (※アクション番号とは、個別を識別するための番号です) (※一番最初に smart_add が使用された場合、アクション番号は[0]から始まります) (※次に smart_add が使用された場合、アクション番号は[1]になります) (※ようするに、smart_add が使用された場合、前のアクション番号に[+1]された値となります) ・注意 smart_init を途中で使用された場合、smart_add で追加されたアクション番号はすべてリセット(削除)されます。 ■smart_keep p1, p2, p3, p4, p5, p6, p7 ・概要 タッチ(ここでは画面に触っている)しているXY座標を継続的な座標で引数(パラメーター[p1], [p2])に足します。 ・マルチタッチ対応 ○(対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : タッチを識別する左上のX座標 p3 (int) : タッチを識別する左上のY座標 p4 (int) : タッチを識別する右下のX座標 p5 (int) : タッチを識別する右下のY座標 p6 (int) : タッチしているX座標を保持するX座標の数値変数。 p7 (int) : タッチしているY座標を保持するY座標の数値変数。 ・戻り値 p6 = タッチしているX座標を保持するX座標の数値。 p7 = タッチしているY座標を保持するY座標の数値。 システム変数(stat)にマルチタッチ(画面に触れている指の数)されている値が帰ります。 ■smart_analog p1, p2, p3, p4, p5 ・概要 仮想アナログスティック操作を取得することができます。 指定の座標を中心点として、指定の半径の長さの円内でタッチ操作を自動制御します。 ・マルチタッチ対応 ○(対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (array) : 仮想アナログスティック操作情報を取得する数値配列変数。 p3 (int) : 仮想アナログスティック操作を可能とする円の中心点とするX座標。 p4 (int) : 仮想アナログスティック操作を可能とする円の中心点とするY座標。 p5 (int) : 仮想アナログスティック操作を可能とする円のX/Y座標からの半径。 ・戻り値(引数[p2]の配列インデックス) p2(0) = タッチ中フラグ(0:未タッチ, 1:タッチ中) p2(1) = X座標(円領域内のみ) p2(2) = Y座標(円領域内のみ) p2(3) = 中心点座標からドット距離(円領域内のみ) p2(4) = X座標(円領域外も含む) p2(5) = Y座標(円領域外も含む) p2(6) = 中心点座標からドット距離(円領域外も含む) p2(7) = 角度(0〜359) p2(8) = ラジアン角(実数の1,000,000(100万)倍された整数値) ・備考 操作中の指が離されると、戻り値のXY座標である p2(1), p2(2), p2(4), p2(5) には、smart_analog 命令の第3引数[p3]と第4引数[p4]に指定した値がセットされます。 つまり指を離すとXY座標は中心点に戻ります。 ラジアン角の値を利用する場合は、1,000,000(100万)で割った値を利用してください。[例: a = double(p2(8)) / 1000000 ] ■関数 ============================================= ■smart_mode_get(p1) ・概要 指定のアクション番号からアクションモードを取得。 ・引数 p1 (int) : アクション番号(0〜) ・戻り値 アクションモード (※追加されていないアクション番号を指定すると、戻り値として[-1]が返ります) ■smart_mousearea(p1, p2, p3, p4) ・概要 指定の領域内にマウスカーソルがあるか取得。 ・マルチタッチ対応 ×(未対応) ・引数 p1 (int) : 左上のX座標 p2 (int) : 左上のY座標 p3 (int) : 右下のX座標 p4 (int) : 右下のY座標 ・戻り値 0 = 指定の領域内にマウスカーソルがない 1 = 指定の領域内にマウスカーソルがある ■smart_one(p1, p2, p3, p4、p5) ・概要 タップされた(画面を押した)瞬間を一度だけ取得。(※離したときは含まれず) 一度「1」が検出された後は、タップし続けても「0」が返ります。 検出する領域を外れた場合は「0」が返ります。 ・マルチタッチ対応 ○(対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : 左上のX座標 p3 (int) : 左上のY座標 p4 (int) : 右下のX座標 p5 (int) : 右下のY座標 ・戻り値 0 = タップされていない(もしくは押し続けられている) 1 = タップ(画面を押した)がされた ■smart_tap(p1, p2, p3, p4, p5, p6) ・概要 タップを取得。(※画面を押して離すまでの動作) ・マルチタッチ対応 ×(未対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : タップを認識する画面左上のX座標 p3 (int) : タップを認識する画面左上のY座標 p4 (int) : タップを認識する画面右下のX座標 p5 (int) : タップを認識する画面右下のY座標 p6 (int) : 指定の時間の間に画面を指で押して離すまでをタップと認識する(単位:ミリ秒)。省略時は、[400]ミリ秒とする。 認識時間に[-1]を指定すると、押されている間は戻り値は[1]が返ります。 ・戻り値 0 = タップされていない 1 = タップされ始めた(画面に指をつけられた) 2 = タップが終わった(画面から指を離された) ←(タップと認識) ■smart_touch(p1, p2, p3, p4, p5, p6) ・概要 タッチ(長押し)を取得。(※タッチが認識された後、そのまま指が押されていてもタッチと認識されません) ・マルチタッチ対応 ×(未対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : タッチを認識する画面左上のX座標 p3 (int) : タッチを認識する画面左上のY座標 p4 (int) : タッチを認識する画面右下のX座標 p5 (int) : タッチを認識する画面右下のY座標 p6 (int) : タッチと認識するまでの時間(単位:ミリ秒)。省略時は、[1000]ミリ秒とする。 ・戻り値 0 = タッチ(長押し)されていない 1 = タッチ(長押し)された ←(タッチと認識) 2 = 画面から指を離された ←(あまり利用されないかもしれませんが、指が離されたときも値を返しますのでご利用ください) ■smart_drag(p1, p2, p3, p4, p5, p6) ・概要 ドラッグを取得。 ・マルチタッチ対応 ×(未対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : ドラッグを認識する画面左上のX座標 p3 (int) : ドラッグを認識する画面左上のY座標 p4 (int) : ドラッグを認識する画面右下のX座標 p5 (int) : ドラッグを認識する画面右下のY座標 p6 (int) : ドラッグと認識するまでの時間(単位:ミリ秒)。省略時は、[1000]ミリ秒とする ・戻り値 0 = ドラッグされていない 1 = ドラッグされている(長押しされている) ←(ドラッグと認識) 2 = ドラッグが終了された(画面から指を離された) ←(ドラッグ後の処理としてご利用してください) ・注意 smart_touch関数とほぼ同じですが、smart_drag関数は長押し(タッチ)後も継続して長押し(タッチ)と認識します。 また、長押し後にマウスボタンを離すことにより、戻り値としてボタンを離したときの値を取得することができます。 戻り値が「1」のときに、smart_drag関数のp2〜p5の座標をマウスカーソルを基準として値を変更することにより擬似的に ドラッグすることができます。 ■smart_dtap(p1, p2, p3, p4, p5, p6) ・概要 ダブルタップ(ダブルクリック)を取得。 ・マルチタッチ対応 ×(未対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : ダブルタップを認識する画面左上のX座標 p3 (int) : ダブルタップを認識する画面左上のY座標 p4 (int) : ダブルタップを認識する画面右下のX座標 p5 (int) : ダブルタップを認識する画面右下のY座標 p6 (int) : 指定の時間の間に画面を指で押して離して再度押すまでをダブルタップと認識する(単位:ミリ秒)。省略時は、[700]ミリ秒とする。 ・戻り値 0 = ダブルタップされていない 1 = 1回目のタップがされた(画面に指をつけられた) 2 = 1回目のタップが終わった(画面から指を離された) 3 = 2回目のタップ(ダブルタップ)がされた(画面に指をつけられた) ■smart_vswipe(p1, p2, p3, p4, p5, p6, p7, p8) ・概要 縦スワイプを取得。 ・マルチタッチ対応 ×(未対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : 縦スワイプを認識する画面左上のX座標 p3 (int) : 縦スワイプを認識する画面左上のY座標 p4 (int) : 縦スワイプを認識する画面右下のX座標 p5 (int) : 縦スワイプを認識する画面右下のY座標 p6 (int) : 指定の時間の間に画面を指で押して離すまでを縦スワイプと認識する(単位:ミリ秒)。省略時は、[600]ミリ秒とする。 認識時間に[-1]を指定すると、押されている間は戻り値は[1]が返ります。 p7 (int) : 縦スワイプと認識する縦の最小移動量 p8 (int) : 縦スワイプと認識する縦の最大移動量 ・戻り値 0 = スワイプされていない 1 = タップがされた(画面に指をつけられた) 2 = 上から下にスワイプされた(画面から指が離された) (小さく指を払った) 3 = 上から下にスワイプされた(画面から指が離された) 4 = 上から下にスワイプされた(画面から指が離された) 5 = 上から下にスワイプされた(画面から指が離された) 6 = 上から下にスワイプされた(画面から指が離された) 7 = 上から下にスワイプされた(画面から指が離された) 8 = 上から下にスワイプされた(画面から指が離された) 9 = 上から下にスワイプされた(画面から指が離された) 10 = 上から下にスワイプされた(画面から指が離された) 11 = 上から下にスワイプされた(画面から指が離された) (大きく指を払った) -2 = 下から上にスワイプされた(画面から指が離された) (小さく指を払った) -3 = 下から上にスワイプされた(画面から指が離された) -4 = 下から上にスワイプされた(画面から指が離された) -5 = 下から上にスワイプされた(画面から指が離された) -6 = 下から上にスワイプされた(画面から指が離された) -7 = 下から上にスワイプされた(画面から指が離された) -8 = 下から上にスワイプされた(画面から指が離された) -9 = 下から上にスワイプされた(画面から指が離された) -10 = 下から上にスワイプされた(画面から指が離された) -11 = 下から上にスワイプされた(画面から指が離された) (大きく指を払った) ・注意 当モジュールでのスワイプはあくまで、「スワイプ操作を取得する」のみであって、 スワイプの機能そのものを持っているわけではありません。 そのため、スワイプ操作を行なったときのスクロール処理は、ユーザー側でプログラミングする必要があります。 ■smart_hswipe(p1, p2, p3, p4, p5, p6, p7, p8) ・概要 横スワイプを取得。 ・マルチタッチ対応 ×(未対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : 横スワイプを認識する画面左上のX座標 p3 (int) : 横スワイプを認識する画面左上のY座標 p4 (int) : 横スワイプを認識する画面右下のX座標 p5 (int) : 横スワイプを認識する画面右下のY座標 p6 (int) : 指定の時間の間に画面を指で押して離すまでを横スワイプと認識する(単位:ミリ秒)。省略時は、[600]ミリ秒とする。 認識時間に[-1]を指定すると、押されている間は戻り値は[1]が返ります。 p7 (int) : 横スワイプと認識する横の最小移動量 p8 (int) : 横スワイプと認識する横の最大移動量 ・戻り値 0 = スワイプされていない 1 = タップがされた(画面に指をつけられた) 2 = 左から右にスワイプされた(画面から指が離された) (小さく指を払った) 3 = 左から右にスワイプされた(画面から指が離された) 4 = 左から右にスワイプされた(画面から指が離された) 5 = 左から右にスワイプされた(画面から指が離された) 6 = 左から右にスワイプされた(画面から指が離された) 7 = 左から右にスワイプされた(画面から指が離された) 8 = 左から右にスワイプされた(画面から指が離された) 9 = 左から右にスワイプされた(画面から指が離された) 10 = 左から右にスワイプされた(画面から指が離された) 11 = 左から右にスワイプされた(画面から指が離された) (大きく指を払った) -2 = 右から左にスワイプされた(画面から指が離された) (小さく指を払った) -3 = 右から左にスワイプされた(画面から指が離された) -4 = 右から左にスワイプされた(画面から指が離された) -5 = 右から左にスワイプされた(画面から指が離された) -6 = 右から左にスワイプされた(画面から指が離された) -7 = 右から左にスワイプされた(画面から指が離された) -8 = 右から左にスワイプされた(画面から指が離された) -9 = 右から左にスワイプされた(画面から指が離された) -10 = 右から左にスワイプされた(画面から指が離された) -11 = 右から左にスワイプされた(画面から指が離された) (大きく指を払った) ・注意 当モジュールでのスワイプはあくまで、「スワイプ操作を取得する」のみであって、 スワイプの機能そのものを持っているわけではありません。 そのため、スワイプ操作を行なったときのスクロール処理は、ユーザー側でプログラミングする必要があります。 ■smart_pinch(p1, p2, p3, p4, p5) ・概要 指定の領域内でのピンチアウト / ピンチインを取得。 2本の指で押された最初の位置から、現在の2本の指の位置までの距離を返します。 ・マルチタッチ対応 ○(対応) ・引数 p1 (int) : アクションを取得するアクション番号 p2 (int) : ピンチアウト / ピンチインを認識する画面左上のX座標 p3 (int) : ピンチアウト / ピンチインを認識する画面左上のY座標 p4 (int) : ピンチアウト / ピンチインを認識する画面右下のX座標 p5 (int) : ピンチアウト / ピンチインを認識する画面右下のY座標 ・戻り値 0 = マルチタッチされていない 1 以上 = ピンチアウトされている -1 以下 = ピンチインされている ・備考 一度に複数のピンチアウト/ピンチインを取得する場合、スマートフォン側の最大マルチタッチ数が(取得したい数×2)無いといけません。 例えば、2つのピンチアウト/ピンチインを取得したい場合は、スマートフォン側の最大マルチタッチ数が4以上無ければなりません。 ・注意 当モジュールでのピンチアウト/ピンチインはあくまで、「操作を取得する」のみであって、 ピンチアウト/ピンチインの機能そのものを持っているわけではありません。 そのため、ピンチアウト/ピンチイン操作を行なったときの拡大縮小処理は、ユーザー側でプログラミングする必要があります。 ■smart_mtouch(p1, p2, p3, p4) ・概要 指定の領域内をタッチしている(ここで言うタッチとは画面に触れている)かを取得。 ・マルチタッチ対応 ○(対応) ・引数 p1 (int) : 左上X座標 p2 (int) : 左上Y座標 p3 (int) : 右上X座標 p4 (int) : 右上Y座標 ・戻り値 0 = 指定の領域内をタッチしていない 1 = 指定の領域内をタッチしている ■smart_max ・概要 smart_add命令により追加されたアクションの数を取得。 ・引数 なし ・戻り値 0 〜 = smart_add命令により追加されたアクションの数 (9). 一連の流れ 1. [smart_init] で初期化する。 2. [smart_add] でアクションを追加 3. [smart_tap] 等のアクション(操作)を取得する関数(または命令)から値を取得。(後は3.の繰り返し) (10). 実際の使用方法(例) #include "mod_smart.as" smart_init smart_add : act_number = stat repeat redraw 0 i = smart_tap(act_number, 0, 0, 319, 479, 700) if i = 2 : mes "TAP OK" redraw 1 wait 1 loop (11). 履歴 2015/10/14 (Ver3.44) ・動作環境がAndroid上で、命令(smart_analog)にて取得するアクションが2つ以上ある場合に特定の操作をすると  2つ目以降のアクションが、一度未タッチ状態から領域外で再タッチしたときにタッチ情報を返してしまう不具合を修正。 2015/04/05 (Ver3.43) ・一部関数のタッチ位置をmousex/mouseyから取得していたのを、mtinfo命令から取得するように変更。 これにより標準命令のgetkeyやstick命令を同時に使用してもマウス(タッチ)座標が取得できなくなる不具合が無くなる。 2015/02/17 (Ver3.42) ・命令(smart_analog)の引数を[p2]に戻り値の配列変数を指定するように追加。 これにより命令(smart_analog_res)を削除。 ・一部内部の配列変数(tv)の次元を1つ下げる。 ・同梱のサンプルプログラムの画面サイズを480*320に統一。 2015/02/12 (Ver3.41) ・関数(smart_pinch)の引数を[p1]だけ指定していたが、[p1]〜[p5]まで指定するように引数を追加。 具体的には、取得する検出する座標の指定の追加。 これにより複数のピンチアウト/ピンチインを取得することが可能となる。 ・同梱のサンプルプログラムのファイル名を変更。 2015/02/08 (Ver3.4) ・命令(smart_mkeep)の名称を(smart_keep)に変更。 ・命令(smart_mkeep)の引数を[p1]〜[p3]まで指定していたが、[p1]〜[p7]まで指定するように引数を追加。 具体的には、取得するアクション番号を指定を追加。検出する座標の指定の追加。マルチタッチを許可する最大数を削除。 ・関数(smart_one)の引数を[p1]〜[p4]まで指定していたが、[p1]〜[p5]まで指定するように引数を追加。 具体的には、取得するアクション番号を指定を追加。 ・smart_keep命令とsmart_one関数を修正したため、サンプルプログラム(test_6.hsp , test_9.hsp)を修正。 2015/01/25 (Ver3.31) ・仮想アナログスティック操作を取得する命令(smart_analog_res)の戻り値にラジアン角(100万倍された整数値)を返すように追加。 2015/01/16 (Ver3.3) ・仮想アナログスティック操作を取得する命令(smart_analog, smart_analog_res)を追加。 2014/09/14 (Ver3.22) ・関数(smart_one)にパラメーターを追加。また関数(smart_one)の仕様を画面全体からパラメーターで指定された範囲のみで取得するように変更。 2014/05/04 (Ver3.21) ・ソース内の値を極力定数に。 2013/11/04 (Ver3.2) ・マルチタッチしているXY座標を継続的な座標で引数(パラメーター)に足すためのsmart_mkeep命令を追加。 2013/10/25 (Ver3.11) ・各命令、関数の引数(パラメーター)を省略するとスマートフォン実機で強制終了してしまう現象を出ないようにする。 2013/07/06 (Ver3.1) ・指定の領域内を押されているかを取得する関数(smart_mtouch)を追加。マルチタッチでの認識が可能です。 2013/04/28 (Ver3.0) ・「hsp3dish.as」でマルチタッチを認識できる「mtlist / mtinfo」命令をmod_smart.as内部で使用。 そのためHSP3標準命令の「stick」でタップ等を認識する必要がないため、各関数の[p2],[p3]を削除。 ・ピンチアウト/ピンチインを取得する関数(smart_pinch)を追加。 2013/03/09 (Ver2.2) ・関数(smart_tap, smart_vswipe, smart_hswipe)の第8引数[p8]の認識時間で[-1]を指定できるように変更。 認識時間に[-1]を指定することで、認識時間を無制限にすることが可能。 ・タップ(画面を押された)瞬間を一度だけ取得する関数(smart_one)を追加。 2013/02/19 (Ver2.1) ・操作を取得時に日付をまたいだときの処理でまちがった時間で処理しようとしていたのを修正。 2013/02/12 (Ver2.0) ・ドラッグやダブルタップで、同じ種類が2つ以上あると正常にアクションを取得できない不具合を修正。 そのため各関数の第1引数[p1]にアクション番号(個別を識別するための番号)を追加するように仕様を変更。 ・スワイプ(smart_vswipe, smart_hswipe)取得を実装。 2013/02/05 (Ver1.1) ・タッチの指を離したときの情報に戻り値「2」を追加。 2013/02/04 (Ver1.0) ・初版。指定領域内のマウスカーソルの有無取得、タップ(smart_tap)、タッチ(smart_touch)、ドラッグ(smart_drag)、ダブルタップ(smart_dtap)取得を実装。 (12). 作者情報 ハンドルネーム : しまくろねこ Webページ : http://www.geocities.jp/simakuroneko646/ Google+ : https://plus.google.com/108269656292156038015/posts E-Mail : simakuroneko@gmail.com 掲示板(新BBS) : http://simakuroneko.bbs.fc2.com/