Windows Touch でSilverlightでイナーシア (Inertia)
「Windows Slate/Windows 7/マルチタッチ対応アプリケーション開発者会議」というのが去年12月にあって参加して来た。参加者はなんらかのアプリケーションを公開しなくてはならないので、夢は大きいものの中身がしょぼくて申し訳無いがここに公開する。
開発者会議に関しては、「Impress / 窓の森」の記事が非常に詳細で、自分の手元のメモよりも良く書かれている。開発者会議では、半日でざっとWindowsタッチ・アプリケーション開発に関するノウハウを教えて貰えるのであるが、話を聞いた時にはわかったつもりでも、実際にやってみるとなかなか難しい。そういう訳でタイトルで期待した方には申し訳ないが「Windows Touch でSilverlightでイナーシア」が出来れば良いのに!というのは願望であり、当面の目標でもあるが、現在のところはそのコードはまだ出来ていない。
やってみてわかるのは次のような問題だ。
- SilverlightではSilverlight 3は勿論Silverlight 4でもマニピューション(Manipulation, ジェスチャの事)のAPIをサポートしていない。会議で聞いていたはずだが、今になればWP7と比べて見劣りするのは事実。Silverlight 5はどうなのだろうか?
- 即動かすデバッグにはスレートPCだと結構不便。開発用にはマルチタッチ・ディスプレイが欲しい。
- Silverlightで頑張ってマニピューションを実現している事例をみつけたが、イナーシア(Inertia, 慣性動作の事)まではサポートしていない。
日本語で「Silverlight で作るマルチタッチアプリケーション」という別の事例も紹介されている。 - Windows SDKのサンプルの中で、かっこ良いイナーシアのデモ・アプリケーション「MTManipulationInertia」をみつけたが、なが~いC++で書かれている。
- Code Recipeの中にイナーシアのサンプルをみつけたが、なぜかうまく動作しない。
Windows Phone 7を持ち始めてからは、マルチタッチのアプリケーションと言えばビロ~ンと「イナーシア」ができなくては始まらないのである。「Silverlightで開発するのがおすすめ」と言われても簡単にできなくては始まらない。
という訳で、手始めに前述のCode Recipieのコードをイナーシアが動くように改造した。とは言ってもわかる人はご存知の様にXAMLに次の1行を足しただけである。ついでにイナーシアのパラメーターも「より滑り易く動く」ように直した。
ManipulationInertiaStarting="Window_ManipulationInertiaStarting"
一応これでコードの説明の意図する通りに動作するようになった。Code Recipeの説明はわかり易くて非常に良いのだが、コードをまとめて入手できないようなので、
ここに置いておく。勿論オリジナルと同じくApache License, Version 2.0である。
Windows TouchでSilverlightでイナーシア (Inertia)が出来るようになるまでの長い道のりが始まった。
- Atomu Hidakaさんのブログ
- ログインしてコメントを投稿