请问Flex中 组件的遮挡关系有关问题,确实太困惑了

请教Flex中 组件的遮挡关系问题,确实太困惑了。
小弟最近在学习Flex开发,在研究在Canvas中放置多个组件以及他们的位置关系。从一些书中可以了解到,如果Canvas调用addChild()添加一幅图片,则添加的图片最被置为最顶层,现在我想改变Canvas中子组件的置顶关系,于是写出以下测试程序:
XML code
<?xml version="1.0"?>
<!-- Simple example to demonstrate the DateTimeAxis class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  creationComplete="init()">
<mx:Script>
    <![CDATA[
        internal function doclick():void
        {
            c.swapChildrenAt(0,1);
        }
    ]]>
</mx:Script>
 <mx:Canvas id="c" >
 <mx:Canvas backgroundColor="0xffffff" width="200" height="200" />
 <mx:Canvas backgroundColor="0xff0000" width="100" height="100" />
 </mx:Canvas>
 <mx:Button label="Button" click="doclick()"/>
</mx:Application>


  这个程序在c这个Canvas中画出了2个矩形,大的为白色,小的为红色。运行程序,可以通过点击button改变两个矩形位置关系。完全正常!
  下面做一点改动,在c这个Canvas中添加css效果,代码改变如下:
XML code
<?xml version="1.0"?>
<!-- Simple example to demonstrate the DateTimeAxis class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  creationComplete="init()">
<mx:Script>
    <![CDATA[
        internal function doclick():void
        {
            c.swapChildrenAt(0,1);
        }
    ]]>
</mx:Script>
 <mx:Canvas id="c" borderStyle="solid" >
 <mx:Canvas backgroundColor="0xffffff" width="200" height="200" />
 <mx:Canvas backgroundColor="0xff0000" width="100" height="100" />
 </mx:Canvas>
 <mx:Button label="Button" click="doclick()"/>
</mx:Application>


  运行程序,此时无反映。测试程序,如果将中间两个矩形去掉,只保留<mx:Canvas id="c" borderStyle="solid">
在doclick中设置断点,然后执行,查看c的值,发现c的numChildren值为1,太惊讶了,不是没有子组件吗?各位兄弟知道是怎么回事吗?

------解决方案--------------------
搞不懂,纯up一下~~~
------解决方案--------------------
好高级的问题,飘过……学习