<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" viewSourceURL="srcview/index.html"> <mx:Script> <![CDATA[ import mx.controls.Alert; import com.paulofierro.wii.events.WiiClientEvent; import com.paulofierro.wii.events.WiiButtonEvent; import com.paulofierro.wii.events.WiiAxisEvent; import com.paulofierro.wii.WiiRemoteClient; private var wiiClient:WiiRemoteClient = new WiiRemoteClient(); private function init():void { Alert.show("Start up MoteDaemon, pair the Wiimote and then click Connect", ""); btnConnect.addEventListener(MouseEvent.CLICK, toggleConnection); wiiClient.addEventListener(WiiClientEvent.CONNECTED, onConnectionChange); wiiClient.addEventListener(WiiClientEvent.DISCONNECTED, onConnectionChange); wiiClient.addEventListener(WiiClientEvent.ERROR, onError); wiiClient.addEventListener(WiiAxisEvent.UPDATE, onAxisChange); wiiClient.addEventListener(WiiButtonEvent.PRESS, onButtonEvent); wiiClient.addEventListener(WiiButtonEvent.RELEASE, onButtonEvent); } private function toggleConnection(event:MouseEvent):void { var btn:Button = event.currentTarget as Button; if(btn.selected) { wiiClient.connect(); } else { wiiClient.disconnect(); } } private function onConnectionChange(event:Event):void { btnConnect.label = (event.type == WiiClientEvent.CONNECTED) ? "Disconnect" : "Connect"; } private function onAxisChange(event:WiiAxisEvent):void { wx.text = String("wx: " + event.wx); wy.text = String("wy: " + event.wy); wz.text = String("wz: " + event.wz); wp.text = String("wp: " + event.wp); wr.text = String("wr: " + event.wr); } private function onButtonEvent(event:WiiButtonEvent):void { var field:Text; switch(event.button) { case WiiButtonEvent.A: field = BUTTON_A; break; case WiiButtonEvent.B: field = BUTTON_B; break; case WiiButtonEvent.MINUS: field = BUTTON_MINUS; break; case WiiButtonEvent.PLUS: field = BUTTON_PLUS; break; case WiiButtonEvent.ONE: field = BUTTON_ONE; break; case WiiButtonEvent.TWO: field = BUTTON_TWO; break; case WiiButtonEvent.LEFT: field = BUTTON_LEFT; break; case WiiButtonEvent.RIGHT: field = BUTTON_RIGHT; break; case WiiButtonEvent.UP: field = BUTTON_UP; break; case WiiButtonEvent.DOWN: field = BUTTON_DOWN; break; case WiiButtonEvent.HOME: field = BUTTON_HOME; break; } if(event.type == WiiButtonEvent.PRESS) { field.text = "PRESS"; } else { field.text = ""; } } private function onError(event:WiiClientEvent):void { Alert.show(event.message, "ERROR"); } ]]> </mx:Script> <mx:VBox width="100%" height="100%"> <mx:Button id="btnConnect" toggle="true" label="Connect" /> <mx:HBox> <mx:Label text="Buttons: " /> <mx:Label text="A: " /> <mx:Text id="BUTTON_A" width="40"/> <mx:Label text="B: " /> <mx:Text id="BUTTON_B" width="40"/> <mx:Label text="-: " /> <mx:Text id="BUTTON_MINUS" width="40"/> <mx:Label text="+: " /> <mx:Text id="BUTTON_PLUS" width="40"/> <mx:Label text="1: " /> <mx:Text id="BUTTON_ONE" width="40"/> <mx:Label text="2: " /> <mx:Text id="BUTTON_TWO" width="40"/> <mx:Label text="home: " /> <mx:Text id="BUTTON_HOME" width="40" /> </mx:HBox> <mx:HBox> <mx:Label text="Pad:" /> <mx:Label text="left: " /> <mx:Text id="BUTTON_LEFT" width="40"/> <mx:Label text="right: " /> <mx:Text id="BUTTON_RIGHT" width="40"/> <mx:Label text="up: " /> <mx:Text id="BUTTON_UP" width="40"/> <mx:Label text="down: " /> <mx:Text id="BUTTON_DOWN" width="40"/> </mx:HBox> <mx:HBox> <mx:Label text="Axes: " /> <mx:Text id="wx" /> <mx:Text id="wy" /> <mx:Text id="wz" /> <mx:Text id="wp" /> <mx:Text id="wr" /> </mx:HBox> </mx:VBox> </mx:WindowedApplication>