Здесь я вижу 2 потенциальных класса:
- Панель инструментов
- Инструмент
С расширением ваших индивидуальных классов Инструмент
- DrawTool
- PointerTool
Ваш класс панели инструментов будет создавать объекты Tool и управлять ими.Инструмент будет содержать прослушиватели событий для кликов, где вы можете изменить состояние на нажатие и так далее.Я бы, вероятно, имел свойство типа _currentTool
на панели инструментов и вызывал бы установщик для этого свойства, когда вы щелкаете инструмент.Вроде как ..
public function set currentTool(tool:Tool):void
{
// deselect current tool
_currentTool.gotoAndStop(1);
// select new tool
_currentTool = tool;
tool.gotoAndStop(2);
// other code
}