下面说说第二种方法,来自互联网,实现左右,上下方向渐变。这两种方法都是flex 3实现的,有没有Flex 4的呢?
---------------------------------------------------------------------
这是个非常基本的需求,但是Flex只在Application这个东东上提供了backgroundGradientColors这个属性来作背景渐变。其他容器例如Panel,HBox之类的一概没有。网上一堆这样的问题和解决方法。当然都是自己去画背景了。
这个例子:
http://butterfliesandbugs.wordpress.com/2007/06/08/generic-background-gradient-for-containers/。
这个例子本身是有问题的,不过只需要修改3个小地方即可:
(1)把measuredWidth和 measuredHeight去掉。
(2)把style里的backgroundImage: ClassReference("GradientBackground");改成
border-skin: ClassReference("GradientBackground");
(3)把updateDisplayList的第一句加上graphics.clear(); 否则背景会越来越多。
它支持多个属性,这里解释一下:
fillColors:这个很容器理解,就是渐变的起止颜色。是个数组 [colorA,colorB]
fillAlphas: 这个是说填充的透明度,1是完全不透明,0是完全透明
gradientType:这是说怎样的渐变,模式是线性渐变
angle:这是说渐变的方向,0是从左到右,180是从右大左,90是从上到下。可以看这里了解更多:http://livedocs.adobe.com/flex/3/html/help.html?content=Drawing_Vector_Graphics_6.html
focalPointRatio:这个我还没用上,搞不懂。
http://www.richinternet.de/blog/index.cfm?mode=month&month=11&year=2006,这里有另外一个例子,代码原理都一样。
原文出处:http://linmingren2003.blog.163.com/blog/static/56751003201041195949175/