首先看一下Label的继承结构:
Label-UIComponent-FlexSprite-Sprite- DisplayObjectContainer- InteractiveObject-DisplayObject-EventDispatcher-Object
再看看可以设置背景颜色的Textfield的继承:TextField - InteractiveObject -DisplayObject -EventDispatcher - Object
很容易发现幻想找到Label的backgroudcolor属性是不可能了。那在研究下Label的属性会发现两个有用的地方。
先说第一个:继承自sprite的graphics属性。通过这个属性我们可以取到Label的graphics,那么我们就可以借助这个graphics来画背景了,方法很简单,比如我们要画个红色的背景:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="xx();"> <mx:Script> <![CDATA[ public function xx():void{ lblTest.graphics.beginFill(0xff0000); lblTest.graphics.drawRect(0,0,lblTest.width,lblTest.height); lblTest.graphics.endFill(); } ]]> </mx:Script> <mx:Label id="lblTest" text="wfwefwerjigioerigiegieriogieroiti"/> </mx:Application>
?
同样我们还可以借助graphics画更复杂的背景。
第二个是drawRoundRect方法,如果我们动态创建一个Label,则可以调用该方法画出背景,该方法提供了很多参数可以画多种效果,它是继承自uicomponent的方法。
比如:?
var lblTest:Label=new Label(); lblTest.y=30; lblTest.x=100; lblTest.width=200; lblTest.height=20; lblTest.text="hello world"; lblTest.drawRoundRect(0,0,lblTest.width,lblTest.height,null,0xff0000,1,null,null,null,null); addChild(lblTest);
?