I'm sure that a lot of us have tried over the years to extend some Flex
controls. We all have soon realized that a lot of important methods are
private and that if we want to tweak something, we have to copy these
private functions into our derived class. Fortunately, there is the
mx_internal namespace that sometime saves us many headaches.
My question is: If you want to build something that's easy to extend
from, what do you do? Have almost all methods protected? Use another
namespace? When do you use static methods? I like the namespace twist
but then, it also makes the methods and variables available to outside
classes when they import and use the namespace. I know that sound design
should alleviate a good portion of these but it's inevitable, developers
will always try to use your work in ways you never thought of ...
So, what's your take on this?