topical media & game development
actionscript-phidget-flex-PhidgetInterfaceKitExample.mx
actionscript-phidget-flex-PhidgetInterfaceKitExample.mx
[swf]
flex
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="386" height="404" horizontalAlign="center" verticalAlign="middle">
<mx:Script>
<![CDATA[
import com.phidgets.PhidgetInterfaceKit;
import com.phidgets.events.*;
public var phid:com.phidgets.PhidgetInterfaceKit;
public function connect():void{
phid = new PhidgetInterfaceKit();
phid.addEventListener(PhidgetEvent.CONNECT, onConnect);
phid.addEventListener(PhidgetEvent.DETACH, onDetach);
phid.addEventListener(PhidgetEvent.ATTACH, onAttach);
phid.addEventListener(PhidgetEvent.DISCONNECT, onDisconnect);
phid.addEventListener(PhidgetDataEvent.INPUT_CHANGE, onInputChange);
phid.addEventListener(PhidgetDataEvent.OUTPUT_CHANGE, onOutputChange);
phid.addEventListener(PhidgetDataEvent.SENSOR_CHANGE, onSensorChange);
phid.open(addressText.text, int(portText.text), passwordText.text);
}
public function setOutput(id:String):void {
switch(id)
{
case "output0": phid.setOutputState(0, output0.selected); break;
case "output1": phid.setOutputState(1, output1.selected); break;
case "output2": phid.setOutputState(2, output2.selected); break;
case "output3": phid.setOutputState(3, output3.selected); break;
case "output4": phid.setOutputState(4, output4.selected); break;
case "output5": phid.setOutputState(5, output5.selected); break;
case "output6": phid.setOutputState(6, output6.selected); break;
case "output7": phid.setOutputState(7, output7.selected); break;
}
}
public function setRatiometric(val:Boolean):void{
phid.Ratiometric = val;
}
private function onAttach(evt:PhidgetEvent):void{
statusText.text = "Attached";
phidgetNameText.text = phid.Name;
versionText.text = phid.Version.toString();
serialText.text = phid.serialNumber.toString();
}
private function onDetach(evt:PhidgetEvent):void{
statusText.text = "Detached";
}
private function onDisconnect(evt:PhidgetEvent):void{
connectedText.text = "Disconnected";
}
private function onConnect(evt:PhidgetEvent):void{
connectedText.text = "Connected";
}
private function onInputChange(evt:PhidgetDataEvent):void{
switch(evt.Index){
case 0: input0.selected = Boolean(evt.Data); break;
case 1: input1.selected = Boolean(evt.Data); break;
case 2: input2.selected = Boolean(evt.Data); break;
case 3: input3.selected = Boolean(evt.Data); break;
case 4: input4.selected = Boolean(evt.Data); break;
case 5: input5.selected = Boolean(evt.Data); break;
case 6: input6.selected = Boolean(evt.Data); break;
case 7: input7.selected = Boolean(evt.Data); break;
}
}
private function onOutputChange(evt:PhidgetDataEvent):void{
switch(evt.Index){
case 0: output0.selected = Boolean(evt.Data); break;
case 1: output1.selected = Boolean(evt.Data); break;
case 2: output2.selected = Boolean(evt.Data); break;
case 3: output3.selected = Boolean(evt.Data); break;
case 4: output4.selected = Boolean(evt.Data); break;
case 5: output5.selected = Boolean(evt.Data); break;
case 6: output6.selected = Boolean(evt.Data); break;
case 7: output7.selected = Boolean(evt.Data); break;
}
}
private function onSensorChange(evt:PhidgetDataEvent):void{
switch(evt.Index){
case 0: sensor0.value = Number(evt.Data); break;
case 1: sensor1.value = Number(evt.Data); break;
case 2: sensor2.value = Number(evt.Data); break;
case 3: sensor3.value = Number(evt.Data); break;
case 4: sensor4.value = Number(evt.Data); break;
case 5: sensor5.value = Number(evt.Data); break;
case 6: sensor6.value = Number(evt.Data); break;
case 7: sensor7.value = Number(evt.Data); break;
}
}
]]>
</mx:Script>
<mx:Button x="245" y="369" label="Connect" click="connect()"/>
<mx:HSlider x="145" y="124" minimum="0" maximum="1000" width="229" id="sensor0"/>
<mx:HSlider x="145" y="176" minimum="0" maximum="1000" width="229" id="sensor2"/>
<mx:HSlider x="145" y="202" minimum="0" maximum="1000" width="229" id="sensor3"/>
<mx:HSlider x="145" y="228" minimum="0" maximum="1000" width="229" id="sensor4"/>
<mx:HSlider x="145" y="254" minimum="0" maximum="1000" width="229" id="sensor5"/>
<mx:HSlider x="145" y="280" minimum="0" maximum="1000" width="229" id="sensor6"/>
<mx:HSlider x="145" y="306" minimum="0" maximum="1000" width="229" id="sensor7"/>
<mx:HSlider x="145" y="150" minimum="0" maximum="1000" width="229" id="sensor1"/>
<mx:TextInput x="110" y="341" id="addressText" text="localhost" width="107"/>
<mx:TextInput x="265" y="341" id="portText" width="60" text="5001"/>
<mx:TextInput x="130" y="369" id="passwordText" width="107"/>
<mx:Text x="48" y="343" text="Address:"/>
<mx:Text x="225" y="343" text="Port:"/>
<mx:Text x="61" y="371" text="Password:"/>
<mx:Text x="205" y="10" text="Phidget Status:"/>
<mx:Text x="10" y="10" text="Server Status:"/>
<mx:Text x="319" y="10" id="statusText" text="Unknown"/>
<mx:CheckBox x="23" y="124" id="input0"/>
<mx:CheckBox x="23" y="150" id="input1"/>
<mx:CheckBox x="23" y="176" id="input2"/>
<mx:CheckBox x="23" y="202" id="input3"/>
<mx:CheckBox x="23" y="228" id="input4"/>
<mx:CheckBox x="23" y="254" id="input5"/>
<mx:CheckBox x="23" y="280" id="input6"/>
<mx:CheckBox x="23" y="306" id="input7"/>
<mx:CheckBox x="86" y="124" id="output0" click="setOutput(output0.id)"/>
<mx:CheckBox x="86" y="150" id="output1" click="setOutput(output1.id)"/>
<mx:CheckBox x="86" y="176" id="output2" click="setOutput(output2.id)"/>
<mx:CheckBox x="86" y="202" id="output3" click="setOutput(output3.id)"/>
<mx:CheckBox x="86" y="228" id="output4" click="setOutput(output4.id)"/>
<mx:CheckBox x="86" y="254" id="output5" click="setOutput(output5.id)"/>
<mx:CheckBox x="86" y="280" id="output6" click="setOutput(output6.id)"/>
<mx:CheckBox x="86" y="306" id="output7" click="setOutput(output7.id)"/>
<mx:Text x="10" y="98" text="Inputs"/>
<mx:Text x="69" y="98" text="Outputs"/>
<mx:Text x="232" y="98" text="Sensors"/>
<mx:Text x="124" y="10" text="Unknown" id="connectedText"/>
<mx:Text x="10" y="54" text="Serial Number:"/>
<mx:Text x="11" y="72" text="Version:"/>
<mx:Text x="10" y="36" text="Phidget:"/>
<mx:Text x="124" y="36" text="Unknown" id="phidgetNameText"/>
<mx:Text x="124" y="54" text="Unknown" id="serialText"/>
<mx:Text x="124" y="72" text="Unknown" id="versionText"/>
<mx:CheckBox x="279" y="72" label="Ratiometric" click="setRatiometric(ratiometricCheckBox.selected)" id="ratiometricCheckBox"/>
</mx:Application>
(C) Æliens
27/08/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.