Вы можете создать пользовательское событие, которое будет отправляться при каждом нажатии на элемент. Событие будет иметь два свойства: уровень мощности и свойство статуса.
Когда это событие получено, вы можете обновить значение вашего индикатора. если значение состояния «Выкл.», уменьшите значение шкалы счетчика на значение мощности, если «Вкл.», увеличьте на значение мощности.
Я бы создал два класса
- ToggleClickButton, будет иметь свойство статуса, которое обновляется при каждом нажатии
- CustomEvent, как описано выше
Конечно, вы должны добавить недостающие элементы (meterLevel, meterBar и т. Д.)
CustomEvent можно избежать, если все это происходит в одном и том же классе, в таком случае вам просто нужно знать состояние нажатой кнопки и передавать его функции со значением powerData.
function toggleClick(event:MouseEvent):void
{
var button:ToggleClickButton = event.currentTarget as ToggleClickButton;
dispatchEvent( new CustomEvent( powerData , button.status) );
}
function customEventListener(event:CustomEvent ):void
{
if( event.status == 0 )
{
meterLevel -= event.powerData;
}else {
meterLevel += event.powerData;
}
updateMeterDisplay();
}
function updateMeterDisplay()
{
//for instance if you have a maxPower and a meterBar maxHeight
meterBar.height = meterLevel * (maxHeight/maxPower );
}