Сама идея простая: отделить код (AS) от разметки (mxml). Как это сделать?
Способ 1. Создается базовый as класс (например MyComponentBase.as), который наследуется от класса, который вы бы использовали как базовый для mxml-компонента. mxml-компонент (MyComponent.mxml), в свою очередь, создается на базе MyComponent.as. В mxml-компоненте расставляются необходимые контролы. Все контролы, которые используются в коде, должны иметь id. В базовом классе (MyComponentBase.as) для этих контролов создаются публичные переменные соответсвующего типа. Весь код пишется в myComponentBase.as.
Способ 2. Создается as класс (от чего наследоваться неважно, хоть вообще не от чего не наследоваться) MyComponentMediator.as (например), который в конструктор принимает в качестве параметра ссылку на экземпляр MyComponent.mxml. По событию creationComplete (например) в MyComponent.mxml, создаете экземпляр MyComponentMediator.as и в конструктор передаете ссылку на свой компонент:

Код AS3:
private var _mediator:MyComponentMediator = new MyComponentMediator(this);
Весь код пишется в MyComponentMediator.as обращение к контролам осуществляется через ссылку на экземпяр MyComponent.