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. 查看Linux下端口占用情况的命令

    在使用Linux系统的过程中,有时候会遇到端口被占用而导致服务无法启动的情况.比如HTTP使用80端口,但当启动Apache时,却发现此端口正在使用. 这种情况大多数是由于软件冲突.或者默认端口设置不 ...

  2. JVM——三个ClassLoader详解

    类装载工作由ClassLoader及其子类负责,ClassLoader是一个重要的Java执行时系统组件,它负责在运行时查找和装入Class字节码文件.JVM在运行时会产生三个ClassLoader: ...

  3. JBPM4入门——8.等待节点的分支执行

    JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...

  4. MySQL与Oracle 差异比较之三函数

    函数 编号 类别 ORACLE MYSQL 注释 1 数字函数 round(1.23456,4) round(1.23456,4) 一样:ORACLE:select round(1.23456,4) ...

  5. Js对象转String的函数 和 JSON转String

    js对象转string的函数 function obj2str(o){ var r = []; if(typeof o =="string") return "" ...

  6. 基于Web的数据推送技术(转)

    基于Web的数据推送技术 对于实时性数据显示要求比较高的系统,比如竞价,股票行情,实时聊天等,我们的解决方案有以下几种.1. HTTP请求发送模式,一般可以基于ajax的请求,比如每3秒一次访问下服务 ...

  7. 从高铁G18中高端如厕看12306的验证码

    1.引子 最近疯狂的吐槽12306网站的虐心验证码. 从对铁老大的一贯作风来说,这个事不过是芝麻绿豆的事情.这个事件只是因为发生在网络上,而引起了广大网民的一致谴责而已. 相信更丰富的如厕经历,大家只 ...

  8. Java与云计算有什么关系呢

    在如今这个信息技术高速发展的今天,云计算已经不是一个陌生的概念了,但是,当云计算遇到java将会有什么样的问题产生呢?下面,新霸哥将会为你揭晓Java与云计算之间的关系. 众所周知,java是一种应用 ...

  9. 关于DIV+CSS和XHTML+CSS的理解

    WEB标准是一系列标准的集合,并不是仅“DIV+CSS”布局就可以实现.以CSS网页布局只是标准的基础之一.“DIV+CSS”布局只是一种通俗的称呼罢了.而我们学习的目标在于以XHTML建立良好的语义 ...

  10. 25个CSS3 渐变和动画效果教程

    随着最新版CSS3渐变和动画功能发布,Web开发者在开发的过程中有了更多的选择.实际上,已经有了一些替代的技术,目的都是使网站的建设变得简易,高效和快速.不过CSS3所提供的渐变功能有着显著的优点,特 ...