<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" minWidth="800" minHeight="600">
<mx:Script>
<![CDATA[
import mx.controls.sliderClasses.Slider;
[Bindable]
public var toneGenerator:ToneGenerator = new ToneGenerator();
public function handlePlayClick():void {
if (playbutton.label == "PLAY") {
playbutton.label = "STOP";
toneGenerator.startTone();
} else {
playbutton.label = "PLAY";
toneGenerator.stopTone();
}
}
public function handleFreqSliderChange(e:Event):void {
var currentSlider:Slider=Slider(e.currentTarget);
if (freqLockCheck.selected) {
toneGenerator.freq_left = toneGenerator.freq_right = currentSlider.value;
freqLeftSlider.value = freqRightSlider.value = currentSlider.value;
} else {
if (currentSlider.id == "freqLeftSlider") {
toneGenerator.freq_left = currentSlider.value;
} else if (currentSlider.id == "freqRightSlider") {
toneGenerator.freq_right = currentSlider.value;
}
}
}
public function handleAmpSliderChange(e:Event):void {
var currentSlider:Slider=Slider(e.currentTarget);
if (ampLockCheck.selected) {
toneGenerator.amp_multiplier_left = toneGenerator.amp_multiplier_right = currentSlider.value;
ampLeftSlider.value = ampRightSlider.value = currentSlider.value;
} else {
if (currentSlider.id == "ampLeftSlider") {
toneGenerator.amp_multiplier_left = currentSlider.value;
} else if (currentSlider.id == "ampRightSlider") {
toneGenerator.amp_multiplier_right = currentSlider.value;
}
}
}
]]>
</mx:Script>
<mx:HBox paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5" horizontalAlign="left" verticalAlign="top" width="80%">
<mx:VBox width="100%">
<mx:Button id="playbutton" label="PLAY" width="100%" height="70" click="handlePlayClick()"/>
<mx:HRule width="100%" strokeWidth="1" />
<mx:HBox verticalAlign="middle" width="100%" >
<mx:VBox paddingBottom="10" paddingTop="10" paddingLeft="5" paddingRight="5" width="100%">
<mx:Label text="LEFT AMP: {toneGenerator.amp_multiplier_left}" width="100%" textAlign="center" />
<mx:HSlider id="ampLeftSlider" width="100%" minimum="0" maximum="1" snapInterval=".01" value="{toneGenerator.amp_multiplier_left}" showDataTip="true" liveDragging="false" change="handleAmpSliderChange(event)" />
<mx:Label text="RIGHT AMP: {toneGenerator.amp_multiplier_right}" width="100%" textAlign="center" />
<mx:HSlider id="ampRightSlider" width="100%" minimum="0" maximum="1" snapInterval=".01" value="{toneGenerator.amp_multiplier_right}" showDataTip="true" liveDragging="false" change="handleAmpSliderChange(event)" />
</mx:VBox>
<mx:CheckBox label="Lock Channels" id="ampLockCheck" labelPlacement="right" selected="true" />
</mx:HBox>
<mx:HRule width="100%" strokeWidth="1" />
<mx:HBox verticalAlign="middle" width="100%" >
<mx:VBox paddingBottom="10" paddingTop="10" paddingLeft="5" paddingRight="5" width="100%">
<mx:Label text="LEFT FREQ: {toneGenerator.freq_left}" width="100%" textAlign="center" />
<mx:HSlider id="freqLeftSlider" width="100%" minimum="10" maximum="2000" value="{toneGenerator.freq_left}" snapInterval="1" showDataTip="true" liveDragging="false" change="handleFreqSliderChange(event)" />
<mx:Label text="RIGHT FREQ: {toneGenerator.freq_right}" width="100%" textAlign="center" />
<mx:HSlider id="freqRightSlider" width="100%" minimum="10" maximum="2000" value="{toneGenerator.freq_right}" snapInterval="1" showDataTip="true" liveDragging="false" change="handleFreqSliderChange(event)" />
</mx:VBox>
<mx:CheckBox label="Lock Channels" id="freqLockCheck" labelPlacement="right" selected="true" />
</mx:HBox>
<mx:HRule width="100%" strokeWidth="1" />
</mx:VBox>
</mx:HBox>
</mx:Application>