- 2007-05-24 (木)
- action script
一昨日、Wii 公式サイト内に「インターネットチャンネル向けのウェブページを作りたいのですが…。」が公開され、インターネットチャンネル向けに作った自作ウェブページでも、Wii リモコンの傾きとセンサーバーまでの距離が検出できることが分かって、開発者の方々が大喜びしているご様子。
僕も昨晩「TAKESAKO @ Yet another Cybozu Labs」様の記事を参考に、初心者レベルの JavaScript を書いてテストして検出できて大喜びしました。今日になったら、上記 Wii サイトに「インターネットチャンネルの拡張機能を使ったサンプルページ」が追加されているようで、このページを Wii で見るのが手っ取り早いですね。
あとはやっぱり、この「傾き」と「TVまでの距離」を生かした Flash コンテンツを作りたくなってきます。どうすれば良いのかを悩んでみました。
Wii × Flash に関しては、それほど関連記事を見つけていない状態。ウノウラボ様の記事がよくまとまっているそうなので、じっくり拝見しました。その記事の中でも言及されている、Quasimondoさんの方法とは、
- Wii の各ボタンのキーコードは JavaScript で取得できるから、これをどうにかして Flash に渡したい。
- Flash8 の ExteranalInterface クラスを使えれば楽だけど、Wii は FlashPlayer7なので使えない。どうしよう。
- そこで、HTML上に、1px×1pxにサイズ固定したダミーの swf と、実際のコンテンツとなる swf の2つのファイルを置く。
- JavaScript で、ダミーswfのステージサイズを、キーコードの値にリサイズする。
(ウェブページ上の表示領域は1px四方のままなので、無変化に見える)ダミー用の swf は z-index:1、コンテンツ用 swf が z-index:100 で重なっているので、見た目上は問題ない。ステージ幅として渡された値(キーコード)は swf 側で onResize 時の Stage.width で取得できる。(Stage.height はキーダウン/キーアップのフラグとして使われている。) - そのダミー swf から、コンテンツ用 swf に LocalConnection を使って、カスタムメソッド+引数という形で、値を通信させる。
- 受け取った引数に応じて、キーコードを判断し、コンテンツを操作する。
要は「値を渡す窓口はステージサイズしかないけど、コンテンツ用swfをリサイズしまくるとマズいので、ゲートとなるダミーswfを踏み台に使う」ってことかな。
今回僕が渡そうとしている情報は上の例よりも多い。マウス位置は swf 単体でも取得できるとして、残るは、キーコード+傾き+距離+リモコン番号。Stage のプロパティで渡さないとダメなので、配列やオブジェクトではなく、1個(あるいはheightを使って2個)の数値にしないといけない。ステージサイズなので、負の数や法外に大きい値はダメそう(未検証)。各値の取るべき範囲をイメージして、JavaScript側で事前に整頓し、Flashに渡した後、元の値に再分解しないといけないのかな?で、それを JavaScript の onMouseMove なり setInterval で渡し続ける感じかな。もっとスマートな方法はないものか。。
あと、LocalConnection にも不慣れなので、検証が面倒っぽくて時間がかかる。。
と悩んでいたら夜中の3時で眠くなりました。明日目覚めたら、任天堂の中の人が「インターネットチャンネル向けのFlashページを作りたいのですが…。」のページを増設してくれていることを願って今日は寝ます。
追記:
コメントを頂いた通り、uranodai様が早速 JS - SWF on Wii のサンプルを制作されています。ここまで書いておいてアレですが、uranodai様の記事の方がまとまっているので、そちらをご覧ください。
- Newer: carlosulloa.com
- Older: ブログパーツ「ジョネレーター」を作ったよ
Comment:4
- 通りすがり 2007-05-25 (金) 09:40
-
こんにちわ。
ダミーのswfを使う形のFlash/JavaScript連携なら、Flash / JavaScript Integration kit ってのがありますよ。
http://weblogs.macromedia.com/flashjavascript/作業が軽減するかどうかはわかりませんが。。。
- uranodai 2007-05-25 (金) 11:23
-
はじめまして。FlashPlayer7でのJS-SWF通信は、Flash / JavaScript Integration Kitでうまくいきそうです。 http://d.hatena.ne.jp/uranodai/20070524#1180020518 サンプルつくってみましたので、よろしければご覧になってみてくださいm(_ _)m
- tera 2007-05-25 (金) 12:38
-
>通りすがり様、
>uranodai様
はじめまして。そしてありがとうございます。
早速のアドバイスに本当に感激です。
これからじっくり Flash / JavaScript Integration Kit 拝見させていただきます。最近こんな感じで、情報を頂いてばっかりなので、何か作って少しでも還元できるよう頑張ります。
ありがとうございました。>uranodai様
いつもdel.icio.us拝見しています。お世話になってます。 - disable 2007-05-25 (金) 15:42
-
参考になれば
http://www.bytearray.org/wiiflash/?p=28
WiiFlash.org
Trackback:0
- TrackBack URL for this entry
- http://www.trick7.com/blog/mt-tb.cgi/545
- Listed below are links to weblogs that reference
- Wii リモコンの傾き&距離を Flash で取得したいのですが from trick7.com blog



