package {
 
 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();
   
  }
 }
}

  • <?xml version="1.0" encoding="utf-8"?>
  • <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  • layout="vertical" backgroundImage="" backgroundColor="white">
  • <mx:Style>
  • .gradient
  • {
  • border-style: solid;
  • border-thickness: 0;
  • border-skin: ClassReference("GradientBorder");
  • fill-colors: #0099FF, #000099;
  • corner-radius: 10;
  • drop-shadow-enabled: true;
  • }
  • </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="gradient" 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:Application>

Flex 拾色器改变背景的更多相关文章

  1. 使用css3和javascript开发web拾色器实例

    本实例中的web拾色器功能使用css3实现页面效果,即在页面上显示的元素用css3样式来实现的.再使用js生成拾色器颜色数据,并控制各元素的鼠标事件.当事件作为反应时,获取到对应的数据并显示颜色值. ...

  2. 原生js编写的安全色拾色器

    <html > <head> <meta http-equiv="Content-Type" content="text/html; cha ...

  3. PS拾色器(前景色背景色)快捷键

    快捷键 I 是拾色器 X 是前后色切换

  4. Android Studio中如何设置颜色拾色器工具

    Android Studio如何设置颜色拾色器工具Color Picker? 你可能下载过一些获取颜色值的一些小工具, 这种方式获取颜色,需要先切换窗口转跳到桌面,然后打开拾色器小工具程序,然后去拾取 ...

  5. Linux下的高级拾色器—Pick

    导读 虽然大多数设计师都在使用 Mac,但也有一少部分在使用 Windows 甚至是 Linux 系统.在 Mac 和 Windows 中都有非常丰富的拾色器工具或插件可用,反而在开源界中这类颜色选择 ...

  6. 优动漫PAINT基础系列之拾色器教学

    在优动漫PAINT中有类似Photoshop的拾色器功能么?在优动漫PAINT中,可以直接输入颜色数值选择颜色么?当然是可以的啦!怎么呼出拾色器界面~ 看这边... 前段时间小编有收到一些小伙伴的疑问 ...

  7. 使用 HTML5 canvas制作拾色器

    自制的拾色器漂亮吧,哈哈 废话不多说直接上代码,希望可以帮到需要的朋友 <html><head>    <style>        .canvas_color{p ...

  8. HTML-参考手册: HTML 拾色器

    ylbtech-HTML-参考手册: HTML 拾色器 1.返回顶部 1. HTML 拾色器 选取颜色:     或输入颜色值: OK 或使用 HTML5: 选择的颜色: 黑色文本 阴影 白色文本 阴 ...

  9. 拾色器,可以取出电脑屏幕的任何颜色,ui以及程序员前端等常用软件,文件很小,300K

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985,转载请说明出处. 今天给大家介绍一个小软件,挺实用的,叫做拾色器. 用途:取出电脑屏幕的任意颜色,当你 ...

随机推荐

  1. 【解题报告】[动态规划] RQNOJ PID5 / 能量项链

    原题地址:http://www.rqnoj.cn/problem/5 解题思路: 今天刚刚才知道了区间DP..Orz..本来以为是状态压缩DP,后来看到数据量才发现原来不是.后来参考了别人的题解.自己 ...

  2. Java中传值与传引用

    不管Java参数类型是什么,一律传递参数的副本. <Thinking In Java>:“When you're passing primitives into a method,you ...

  3. 用xsd验证xml

    using System; using System.Text; using System.Xml; namespace WebApplication1 { public partial class ...

  4. 深入理解Linux内核-第七章 进程调度

    原文:http://blog.csdn.net/sailor_8318/article/details/2460177

  5. Android 中像素px和dp的转化

    在Android的布局文件中,往往使用dp作为控件的宽度和高度尺寸,但是在Java代码中,调用getWidth()方法获得的尺寸单位却是像素px,这两个单位有明显的区别:dp和屏幕的密度有关,而px与 ...

  6. pssh 不能执行指定用户命令

    问题: 一个脚本a.sh(必须root用户执行),在本地可以运行,通过pssh  -h ip_file "cd /home/byte/a.sh"不能执行. 原因: 分析应该是ssh ...

  7. css3 --- 翻页动画 --- javascript --- 3d --- Action

    用css3和javascript做一个翻页动画<Action> 如有疑问请参照我的上一篇随笔:http://www.cnblogs.com/kodoyang/p/Html_Css3_Car ...

  8. sendip简单使用

    sendip是linux下一个比较好用的发包软件,简单记录一下它的用法 下载源码,编译安装后,可通过  man sendip,查看具体选项介绍,其中说明sendip支持的协议包括:ipv4 ipv6 ...

  9. WCF寄宿方式

    WCF开发框架形成之旅---WCF的几种寄宿方式 WCF寄宿方式是一种非常灵活的操作,可以在IIS服务.Windows服务.Winform程序.控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者 ...

  10. delphi 中怎么知道某一个月有多少天

    if (month in (1,3,5,7,8,10,12)) return 31; else if (month in(4,6,9,11)) return 30; else if (year 是闰年 ...