FlexでWiiコントローラー
FlexでWiiのコントローラーを使ってみようってことでやってみました。
参考になるサイト
http://cs3book.flashoop.jp/wiki/index.php?Wii%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3%E3%81%A8AS3
下準備
サーバー(Wiiコンを操作するのに必要)
http://wiiflash.bytearray.org/
.netが必要でとりあえずインストールしておきます。
次に、http://code.google.com/p/wiiflash/からサーバープログラムとクラスライブラリ(API)をダウンロードします。
サーバープログラムは解答すればexeファイルがありますので、ダブルクリックで起動。
APIのほうは、解答して、WiiFlash.swcファイルをFlexプロジェクトのlibsフォルダに入れればOK。
実際の動作
こんな感じに。
簡易ソースコードはこちら。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import org.wiiflash.events.ButtonEvent; import org.wiiflash.Wiimote; private var wiimote:Wiimote = new Wiimote(); private function init():void{ wiimote.addEventListener( Event.CONNECT, onWiimoteConnect ); wiimote.connect(); } private function onWiimoteConnect( event:Event ):void{ wiimote.addEventListener( ButtonEvent.A_PRESS, onAPress ); wiimote.addEventListener( ButtonEvent.A_RELEASE, onARelease ); this.addEventListener(Event.ENTER_FRAME , onEnterFrame ); } private function onAPress( event:ButtonEvent ): void{ trace("A Press"); wiimote.rumbleTimeout = 500; wiimote.rumble = true; //Wiiリモコンを振動させる } private function onARelease( event: ButtonEvent ): void{ wiimote.rumble = false; } private var i:int = 0; private function onEnterFrame( event: Event ): void{ //Rumble while A and B are pressed myLog.text = "on"; myLog.text += wiimote.up + "\n"; myLog.text += wiimote.down + "\n"; myLog.text += wiimote.left + "\n"; myLog.text += wiimote.right + "\n"; myLog.text += wiimote.a + "\n"; myLog.text += wiimote.b + "\n"; myLog.text += wiimote.ir.p1 + "\n"; myLog.text += wiimote.ir.p2 + "\n"; myLog.text += wiimote.ir.point1 + "\n"; myLog.text += wiimote.ir.point2 + "\n"; myLog.text += wiimote.ir.x1 + "\n"; myLog.text += wiimote.ir.x2 + "\n"; myLog.text += wiimote.ir.y1 + "\n"; myLog.text += wiimote.ir.y2 + "\n"; myLog.text += wiimote.sensorX + "\n"; myLog.text += wiimote.sensorY + "\n"; myLog.text += wiimote.sensorZ + "\n"; wiimote.rumble = wiimote.a && wiimote.b; } ]]> </mx:Script> <mx:TextArea x="10" y="10" width="182" height="371" id="myLog"/> </mx:Application>