AppleがiPhoneやiPadなどでFlash技術をサポートしない理由について、「バグだらけ」「リソース食いで重い」「HTML5で代用できる」といった同社CEOのSteve Jobs氏の発言に加え、裏の政治的理由として「Flashにプラットフォーム環境を乗っ取られる」といった話が指摘されていたりする。だが、あるFlash開発者の弁によれば「そもそもFlashアプリがタッチ動作を想定した作りになっていない」といった根本的な問題があるようだ。
これは、BlogサイトのRoughlyDrafted Magazineの中でFlashデベロッパーのMorgan Adams氏のコメントを引用して紹介されている。同氏はFlashを使ったインタラクティブコンテンツ開発者で、同技術について非常に詳しいという。
同氏によれば、既存のFlashコンテンツを使ったサイトをiPad上で利用したいという要望はあるものの、実際には難しいという。その原因はモバイル機器のパフォーマンス不足やバッテリ消費量の多さ、あるいはすぐにクラッシュするといったバグ的なものではなく、マウス移動や対象オブジェクトにカーソルを重ねたときの処理の問題に依存するという。ゲーム、メニュー構造、果てはビデオプレイヤーまで、その多くはマウスポインターの存在に依存しており、単にマウスカーソルを対象オブジェクトに重ねている状態とクリック状態の区別を必要としているためだ。
下記が、Adams氏が挙げているマウスカーソルのオブジェクトとの重なり状態(mouseover)の例だ。
- マウスカーソルが重なっている状態に出現して、それ以外のときに隠れるビデオプレイヤー上のコントロール(例えば「Pause」ボタンなど。Huluの例が分かりやすいだろう)
- クリック動作なしでマウス移動のみで操作するゲーム(非常によく見かける)
- マウスカーソルを重ねるとサブページへのリンクが出現するが、クリックすると直接メインカテゴリへとジャンプするような「メインボタン」
- マウスカーソルを重ねると説明文や注意書きが出現するボタン。ここにはクリック前に決定を判断すべき内容が記されている
- マウスカーソルを重ねた状態でプレビュー、クリック状態で決定のような場合(例えばSNSにおけるアバターの髪色変更などの機能)
- クリックを必要としない地図や図表などの要素。だがマウスカーソルを周囲に重ねると情報がポップアップされる
- マウスの利用を前提とした各種カスタマイズされた機能
- 右クリックなど、2つめ以降のボタンや特殊デバイスを必要とするもの
これはほんの一端だが、アプリの作りによってはタッチスクリーンとの相性が悪いことは理解できる。また右クリックによるコンテキストメニューは最近Flashに追加されたばかりのフィーチャーだが、こうした付加操作を必要とする場合のナビゲーションも考慮に入れないといけないだろう。アクションゲームなどの継続的なボタン入力やキーパッドを必要とされるケースでも、タッチスクリーン用のチューニングが必要となる。
以上に対して、Adams氏が提案する解決策は次の通りだ。
A) すべてのFlashアプリを考え直して、最初からコーディングし直す
B) マウスの重なりをシミュレーションできるようなフィンガージェスチャーや追加のボタン操作を検討する
C) 自身でクリック動作を追加する。例えばダブルタップや2本指によるタップ動作をユーザーに要求して、マウスの重なりを意図的に作り出す。iPhoneのMobile Safariの場合、1回目のクリックでサブメニュー表示、2回目のクリックで選択といったことが可能
D) 指の動きに沿ってマウスカーソルを出現させる。VNC for iPhoneなどのクライアントアプリで見られる動作
E) "タップ動作"をユーザーに要求する。例えば"軽い"タップや"重い"タップなど、接触時間でタップ動作を区別する。ただし直感的ではなく、例えフィードバック(本体のバイブレーションなど)があってもユーザーに操作ミスを起こさせやすい
以上はAdams氏自身が言うように、あまりスマートな解決方法ではない。最近のFlash 10以降に作られているアプリとは異なり、そもそも既存のFlashアプリ自体がタッチスクリーンを前提にしていないため、UIを最初から考え直す必要があるということのようだ。だが問題は、多くのユーザーがiPhoneでのFlash動作に望んでいることは、既存のFlashアプリがそのまま利用できるという点にある。作り直しというアイデアは本来あるべき解答ではない。