当前位置: 代码迷 >> Web前端 >> 批改Label背景颜色
  详细解决方案

批改Label背景颜色

热度:250   发布时间:2012-10-07 17:28:51.0
修改Label背景颜色

首先看一下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); 

?

  相关解决方案