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. Java中数组复制的几种方法

    /** * @author zhengbinMac */ public class Test { public static void main(String[] args) { int[] arra ...

  2. Arduino报错

    avrdude: stk500_recv(): programmer is not respondingavrdude: stk500_getsync() attempt 1 of 10: not i ...

  3. Linux下停用和启用用户帐号

    有时候某个用户不乖,但是还不想删除他的帐号只是想给他点儿颜色看看,或者出于某种权限管理不想让他/她使用这个帐号,那么冻结帐号就是最好的方法了,linux中的帐号密码保存在/etc/shadow文件里面 ...

  4. CSS使jsp图片旋转90度

    <style > img{ margin:100px auto 0; -moz-transform:rotate(-90deg); -webkit-transform:rotate(-90 ...

  5. jvm调优之四:生产环境参数实例及分析【生产环境实例增加中】

    java application项目(非web项目) 改进前: -Xms128m-Xmx128m-XX:NewSize=64m-XX:PermSize=64m-XX:+UseConcMarkSweep ...

  6. LR录制脚本IE不能打开解决方法

    运行环境:win7 64位 解决方法:1.卸载IE11 2.计算机——属性——高级系统设置——性能里的设置——数据执行保护——选择“为除下列选定程序之外的所有程序和服务启用”——添加IE浏览器和VUG ...

  7. Unity 5 引擎收费版和免费版的区别(转)

    最新Unity 5的Professional Edition(收费版)具备全新而强大的功能,除了全局动态光照或是最新的基于物理的着色器之外,也把原本分开销售的Team License放入,并含有12个 ...

  8. 【LeetCode】228 - Summary Ranges

    Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ...

  9. Http状态码的种类及含义

    1xx 临时响应:2xx 成功:3xx 重定向: 4xx 请求错误: 5xx 服务器错误: http://www.hostspaces.net/wenzhang-detail.php?id=198 常 ...

  10. Web Farm和Web Garden的区别

    在这篇博文中,我将确切剖析Web Farm和Web Garden的区别和原理,以及使用它们的利弊.进一步地,我将介绍如何在各个版本的IIS中创建Web Garden. 英文原文 | Abhijit J ...