Один подвох - использовать маску, чтобы скрыть этот квадрат.
Примерно так:
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="creationComplete()">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
public function creationComplete():void
{
var compMask:UIComponent = new UIComponent;
compMask.graphics.beginFill( 0xff0000 );
compMask.graphics.drawRect( 0, 0, comp.width, comp.height - 16 );
compMask.graphics.drawRect( 0, comp.height - 16, comp.width - 16, 16 );
compMask.graphics.endFill();
addChild( compMask );
comp.mask = compMask;
}
]]>
</mx:Script>
<mx:Canvas id="comp" width="300" height="300" horizontalScrollPolicy="on" verticalScrollPolicy="on"/>
</mx:WindowedApplication>
Только что попробовал, все работает. Вам просто нужно будет перерисовывать маску каждый раз, когда размер компонента изменяется. Лучше всего было бы создать собственный класс, который расширяет Canvas, и выполнять всю работу.
РЕДАКТИРОВАТЬ: Конечно, вы хотите изменить "16" на вес ваших пользовательских полос прокрутки, если значение отличается.