A: 

All you need is to set the scroll policy on B to be auto. This way, if A get's too large, B will have scroll bars. This should be done in the MXML.

<mx:Canvas name="B" width=100 height=100 scrollPolicy="auto">
    <mx:Canvas name="A" width=90 height=90>
        ...
    </mx:Canvas>
</mx:Canvas>
CookieOfFortune
scroll policy defaults to auto.
Joel Hooks
+1  A: 

The UIComponent class from which Canvas inherits has a minHeight and a minWidth property. You can bind A's minHeight/Width to the width and height of B, so whenever B is resized, the minimum dimensions of A also change. Binding to an expression is also supported (see example below). B will automatically show scrollbars when A grows too large to be shown all at once, you just need to supply a fixed height and width (or some other size constraint). A also automatically resizes once you add children.

<mx:Canvas id="B" width="..." height="...">
    <mx:Canvas id="A" minHeight="{B.height-20}" minWidth="{B.width-20}">
        <!-- your content widgets -->
    </mx:Canvas>
</mx:Canvas>
Simon