package com.oxylusflash.book { import caurina.transitions.Tweener; import flash.display.Sprite; import flash.events.MouseEvent; public class BarButtonToggle extends BarButton { /** * Background gfx for toggle. */ public var toggledMc:Sprite = new LibBgToggled; /** * Toggled or not. */ private var _isOn:Boolean = false; public function BarButtonToggle() { toggledMc.alpha = 0; toggledMc.mouseEnabled = false; toggledMc.x = Math.round((this.width - toggledMc.width) * 0.5); toggledMc.y = Math.round((this.height - toggledMc.height) * 0.5); this.addChildAt(toggledMc, 0); this.addEventListener(MouseEvent.CLICK, clickHandler, false, 1, true); } /** * Click handler. */ private function clickHandler(e:MouseEvent):void { _isOn = !_isOn; Tweener.addTween(toggledMc, { alpha: _isOn ? 1 : 0, base: Global.baseTween } ); } /** * Is toggled or not. */ public function get isOn():Boolean { return _isOn; } public function set isOn(value:Boolean):void { if (_isOn != value) { _isOn = value; overState.alpha = _isOn ? 1 : 0; toggledMc.alpha = overState.alpha; } } /** * Override roll over / out handlers. */ override protected function rollOverHandler(e:MouseEvent):void { if (!isOn) super.rollOverHandler(e); } override protected function rollOutHandler(e:MouseEvent):void { if (!isOn) super.rollOutHandler(e); } } }