The changes you speak of can be done with the button component as is.
Change color:
Code:
var btn:Button = new Button();
addChild(btn);
var ct:ColorTransform = new ColorTransform();
ct.color = 0x00000;
btn.transform.colorTransform = ct;
Disable/enable:
Code:
btn.enabled = false;
//or
btn.enabled = true;
However, I'm not sure what you mean by changing the "Number" of a button.
To expand the button according to the amount of text you want in it, you can use code similar to this.
Code:
var str:String = "This is a lot of text for a button";
btn.label = str;
btn.width += str.length*3;
I'm not saying you shouldn't make a button from scratch, but this approach might be easiest and suit your needs.