I frequently find myself wanting more granular control of the width/height properties.

Consider either of the following cases:
- The DisplayObject is clipped with DisplayObject.mask, but Flash reports unmasked width.
- An image is displayed with a transform cage drawn over it. The width of the cage shouldn't be calculated when determining the DisplayObject's width.

The naive way to solve this problem is to override the width getter of the DisplayObject in question. The problem is that the core implementation of DisplayObject.width is written in native code. If after overriding the width getter, I call overridenObject.width, I get what I want; however, if I call overriddenObject.parent.width, DisplayObject.width ignores my override and calculates the dimensions based on its own internal display list representation.

Does anyone know of a technique to limit which children are considered when calculating width without having to override every parent's width getter? I've tried overriding width, getRect, getBounds, and scrollRect, but none of them seem to be referenced by DisplayObject.width's native implementation.

Thanks.