
Код AS3:
public override function set width(value:int):void{
g = this.graphics;
g.clear();
g.beginFill(0xFFFFFF);
g.drawRect(0,0,value,20);
g.endFill();
// так же здесь переставляем внутренние элементы по новым местам
}
Ну и теперь нам не надо фу.

Код AS3:
obj.width = value;
И вообще, кто бы откуда ни попытался изменить ширину кнопки, получит ее правильно преобразованной - расширенной, а не растянутой. Никакого предательского метода width теперь просто нет. Есть только правильный.
И если честно, я не понял почему обязательно перерисовывать (хотя сам всегда так и делаю, но я вообще не пользуюсь IDE, то есть рисую все кодом или встраиваю битмап). Растягивать клипик, засунутый на фон в кнопку, думаю ничем не сложнее. Надо только дать ему имя и включить enable 9Grid scaling, если надо.