如何设置mx:Label的背景颜色

xiaohongliang57 2010-11-29 03:12:38
各位大虾:
请问如何设置flex中mx:Label的背景颜色。
现实情况如下:
<mx:Label x="5" y="6" text="Display feedback panel" width="191" mouseOver="lblImage_add()" mouseOut="lblImage_clear()" enabled="true" fontWeight="normal"/>我想通过鼠标移动来控制label的背景颜色,从而实现“高亮显示”的效果。
急啊...知道的大哥请贴出解救代码,小弟先谢谢了!
...全文
1135 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
myeclipse0123 2010-11-30
  • 打赏
  • 举报
回复
帮 顶
herowach 2010-11-30
  • 打赏
  • 举报
回复
外面套一个不设置大小的容器,然后设置容器背景却是可以实现,但会有限制,做成一个组件后,无法直接设置label的属性,所以说这种方法是取巧的方法,当用的不多,并且每复杂逻辑的情况下,可以考虑,但用到的多了,还是建议直接继承label实现
水中影子 2010-11-30
  • 打赏
  • 举报
回复
label的backgroundColor是无效的

可以在外嵌套一个组件,HBox、Canvas等设置其背景色
herowach 2010-11-30
  • 打赏
  • 举报
回复
汗~~~,label有backgroundColor的style?这是Container才有的...

还是给你写个标准的吧
APP:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*"
backgroundColor="0xffffff" layout="vertical">
<local:ColorLabel id="cl" text="test" backgroundColor="0xffff00"
mouseOver="cl.setStyle('backgroundColor', 0xff0000)"
mouseOut="cl.setStyle('backgroundColor', 0x00ff00)"/>
</mx:Application>

ColorLabel :
package
{
import mx.controls.Label;

[Style(name="backgroundColor", type="uint", format="Color", inherit="no")]

public class ColorLabel extends Label
{
override public function styleChanged(styleProp:String):void
{
super.styleChanged(styleProp);

if("backgroundColor" == styleProp)
{
invalidateDisplayList();
}
}

override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
with(graphics)
{
clear();
beginFill(getStyle("backgroundColor"));
drawRect(0, 0, this.width, this.height);
endFill();
}
}
}
}

passself 2010-11-30
  • 打赏
  • 举报
回复

<mx:Label x="5" y="6" text="Display feedback panel" width="191" mouseOver="lblImage_add(event)" mouseOut="lblImage_clear(event)" enabled="true" fontWeight="normal"/>


private function lblImage_add(event:MouseEvent):void{
var obj:Object = new Object();
obj = event.currentTarget;
obj.setStyle("backgroundColor",颜色)
}

这样就可以了,去掉的话也是类似
leemiki 2010-11-30
  • 打赏
  • 举报
回复
建一个Label自定义组件
对外一个方法搞定
public function setColor(color:String){
this.setStyle("backgroundColor",color)
}
fw176170847 2010-11-29
  • 打赏
  • 举报
回复
为什么不用linkbutton
herowach 2010-11-29
  • 打赏
  • 举报
回复
汗~~~,懒得写,很简单,留给其他人写吧,应该就3排
xiaohongliang57 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 herowach 的回复:]
那你封装成一个组件不就完了,把这个功能写到自己的一个自定义组件里,直接用这个组件就好了啊
[/Quote]

哎,本人刚接触flex不久,不会啊....能否麻烦大哥帮忙做个Demo贴出来....
herowach 2010-11-29
  • 打赏
  • 举报
回复
那你封装成一个组件不就完了,把这个功能写到自己的一个自定义组件里,直接用这个组件就好了啊
xiaohongliang57 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 herowach 的回复:]
引用 3 楼 xiaohongliang57 的回复:
引用 2 楼 herowach 的回复:
label貌似没有改背景的css,要想有必须要自己用graphics画,不过我可以告诉你一个取巧的方法:
<mx:Canvas backgroundColor="0xffff00">
<mx:Label text="test"/>
</mx:Canvas>
在label外套一层容器,改变容……
[/Quote]
是这样的效果,但是我现在有多个mx:Label,鼠标滑过依次改变每个Label的背景颜色...
herowach 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaohongliang57 的回复:]
引用 2 楼 herowach 的回复:
label貌似没有改背景的css,要想有必须要自己用graphics画,不过我可以告诉你一个取巧的方法:
<mx:Canvas backgroundColor="0xffff00">
<mx:Label text="test"/>
</mx:Canvas>
在label外套一层容器,改变容器的背景色,效果是一样的


这样并不能实现“鼠标划……
[/Quote]
你的高亮显示时什么意思?不是改变label背景色吗?
你mouseOver的时候改下canvas的背景色,然后mouseOut的时候再改回来,不就是鼠标移上去就变色的效果吗?
Jason-Jin 2010-11-29
  • 打赏
  • 举报
回复
哦,看错了,以为是字体颜色

背景颜色还真不知道,获取你可以作一个自定义控件,canvas+label,作成自定义控件,然后改变canvas的颜色来试试看
xiaohongliang57 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jjx0224 的回复:]
可以监听label的鼠标事件,这个随你,moveout,moveover之类的事件

label有个htmlText属性,可是使用html标记改变颜色之类,或者使用css
[/Quote]

htmlText好像只能改变字体颜色,不能改变整行的背景颜色,能否把代码贴出来....
xiaohongliang57 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 herowach 的回复:]
label貌似没有改背景的css,要想有必须要自己用graphics画,不过我可以告诉你一个取巧的方法:
<mx:Canvas backgroundColor="0xffff00">
<mx:Label text="test"/>
</mx:Canvas>
在label外套一层容器,改变容器的背景色,效果是一样的
[/Quote]

这样并不能实现“鼠标划过,高亮显示”的效果啊......
herowach 2010-11-29
  • 打赏
  • 举报
回复
label貌似没有改背景的css,要想有必须要自己用graphics画,不过我可以告诉你一个取巧的方法:
<mx:Canvas backgroundColor="0xffff00">
<mx:Label text="test"/>
</mx:Canvas>
在label外套一层容器,改变容器的背景色,效果是一样的
Jason-Jin 2010-11-29
  • 打赏
  • 举报
回复
可以监听label的鼠标事件,这个随你,moveout,moveover之类的事件

label有个htmlText属性,可是使用html标记改变颜色之类,或者使用css

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧