package com.drawingapp.tools { import flash.display.Sprite; import flash.display.DisplayObjectContainer; public class Tool extends Sprite { protected var enabled:Boolean; public function get isEnabled():Boolean { return enabled; } public function get selected():Boolean { return alpha == .5; } public function set selected( selected:Boolean ):void { alpha = selected ? .5 : 1; buttonMode = !selected; } public function Tool() { selected = false; } public function enable( canvas:DisplayObjectContainer ):void { throw new Error( "Method is abstract and needs to be overridden." ); } public function disable():void { throw new Error( "Method is abstract and needs to be overridden." ); } } }