The changes you speak of can be done with the button component as is.
var btn:Button = new Button();
var ct:ColorTransform = new ColorTransform();
ct.color = 0x00000;
btn.transform.colorTransform = ct;
btn.enabled = false;
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.
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.