Flex:Flex 给容器设置背景渐变(mx)
2011-06-24 23:22
363 查看
受到@大猫1977 新浪微博客户端的启发,终于可以把组件的背景色渐变一把了,下面看看样式是这样实现的吧。代码内容来自互联网,经稍微修改。
GradientBorder.as
Main.mxml
截图:
转摘请注明出处,谢谢!
原出处:http://www.cnblogs.com/sinbad/archive/2011/06/03/2072301.html
GradientBorder.as
/** * 背景渐变色 * whisht * */ package Script{ import flash.display.*; import flash.geom.*; import flash.utils.*; import mx.core.EdgeMetrics; import mx.skins.halo.HaloBorder; import mx.utils.ColorUtil; import mx.utils.GraphicsUtil; public class GradientBorder extends HaloBorder { private var topCornerRadius:Number; // top corner radius private var bottomCornerRadius:Number; // bottom corner radius private var fillColors:Array; // fill colors (two) private var setup:Boolean; private function setupStyles():void { fillColors = getStyle("fillColors") as Array; if (!fillColors) fillColors = [0xFFFFFF, 0xFFFFFF]; topCornerRadius = getStyle("cornerRadius") as Number; if (!topCornerRadius) topCornerRadius = 0; bottomCornerRadius = getStyle("bottomCornerRadius") as Number; if (!bottomCornerRadius) bottomCornerRadius = topCornerRadius; } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); setupStyles(); var g:Graphics = graphics; var b:EdgeMetrics = borderMetrics; var w:Number = unscaledWidth - b.left - b.right; var h:Number = unscaledHeight - b.top - b.bottom; var m:Matrix = verticalGradientMatrix(0, 0, w, h); g.beginGradientFill("linear", fillColors, [1, 1], [0, 255], m); var tr:Number = Math.max(topCornerRadius-2, 0); var br:Number = Math.max(bottomCornerRadius-2, 0); GraphicsUtil.drawRoundRectComplex(g, b.left, b.top, w, h, tr, tr, br, br); g.endFill(); } } }
Main.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" backgroundColor="#ffffff"> <mx:Style> .box { border-style: solid; border-thickness: 1; border-skin:ClassReference("Script.GradientBorder"); fill-colors: #483D8B, #cd0002; corner-radius: 10; drop-shadow-enabled: false; borderColor: #868397; borderAlpha: 0.99; roundedBottomCorners: true; cornerRadius: 0; <!--shadowDistance: 2; shadowDirection: left;--> } </mx:Style> <mx:Script> <!--[CDATA[ private function changeStyle():void { box.setStyle("fillColors", [col1.value, col2.value]); box.setStyle("cornerRadius", corner.value); } ]]--> </mx:Script> <mx:VBox id="box" styleName="box" width="400" height="300" verticalAlign="middle" horizontalAlign="center"> <mx:FormItem label="Color 1:"> <mx:ColorPicker id="col1" change="changeStyle()" selectedColor="0x0099FF"/> </mx:FormItem> <mx:FormItem label="Color 2:"> <mx:ColorPicker id="col2" change="changeStyle()" selectedColor="0x000099"/> </mx:FormItem> <mx:FormItem label="Corner radius:"> <mx:HSlider id="corner" value="10" minimum="0" maximum="100" change="changeStyle()"/> </mx:FormItem> </mx:VBox> </mx:WindowedApplication>
截图:
转摘请注明出处,谢谢!
原出处:http://www.cnblogs.com/sinbad/archive/2011/06/03/2072301.html
相关文章推荐
- Flex 给容器设置背景渐变
- Flex中如何通过backgroundImage和backgroundSize样式,设置VBox容器的背景图片以及大小
- Flex设置DataGrid单元格颜色以及表头背景颜色渐变
- Flex中设置面板容器(Panel container)背景透明度的例子
- Flex 设置容器背景的三种方法
- flex 容器填充渐变的背景颜色
- (Flex)Panel设置背景颜色
- C#设置Word文档背景的三种方法(纯色/渐变/图片背景)
- 使用css3背景渐变中的透明度来设置不同颜色的背景渐变
- 最简单设置Mdi容器背景图片方法-不用写一行代码(c#)
- 为UIView设置渐变背景
- Flex中通过creationCompleteEffect样式为Accordion容器设置创建完成特效的例子
- C# 设置Word文档背景(纯色/渐变/图片背景)
- Flex中设置弹出窗口的弹出效果(alpha值的渐变和scale值的渐变)
- CSS设置div背景渐变显示
- 设置Button背景渐变效果和点击效果
- 用网页技术CSS实现网页背景渐变的四种代码设置
- Flex 4中组件背景设置(填充方式)group为例子
- 为WPF程序设置渐变的背景颜色 为WPF程序设置渐变的背景颜色 为WPF程序设置渐变的背景颜色 为WPF程序设置渐变的背景颜色
- flex4设置背景图片