• [ActionScript 3.0] 运用Color类interpolateColor静态方法绘制渐变色


    以下类可直接作为文档类测试,效果如图:

     1 package 
     2 {
     3     import fl.motion.Color;
     4     import flash.display.GradientType;
     5     import flash.display.Shape;
     6     import flash.display.Sprite;
     7     import flash.events.MouseEvent;
     8     import flash.geom.Matrix;
     9 
    10     /**
    11       * ...
    12       * @author FrostYen
    13       */
    14     [SWF(width=700,height=800,backgroundColor=0x000000)]
    15     public class GradientColor extends Sprite
    16     {
    17         public function GradientColor():void
    18         {
    19             setGradient(0xDFB920, 0x0000FF,70);
    20         }
    21 
    22         /**
    23            * 绘制从一种颜色过渡到另一种颜色的色块
    24            * @param fromColor 开始颜色值
    25            * @param toColor 最终颜色值
    26            * @param total 色块数量
    27            */
    28         public function setGradient(fromColor:uint,toColor:uint,total:int):void
    29         {
    30             for (var i:int=0; i<total; i++)
    31             {
    32                 var pro:Number=Math.ceil(1/(total-1)*i*100)/100;
    33                 var newcolor:uint = Color.interpolateColor(fromColor,toColor,pro);
    34                 var rect:Sprite=new Sprite();
    35                 rect.graphics.beginFill(newcolor);
    36                 rect.graphics.drawRect(0,0,30,30);
    37                 rect.graphics.endFill();
    38                 rect.x = 100 + 50 * (i % 10);
    39                 rect.y=100+50*Math.floor(i/10);
    40                 addChild(rect);
    41                 rect.name = newcolor.toString(16);
    42                 rect.addEventListener(MouseEvent.CLICK,onClick);
    43             }
    44 
    45             var shape:Shape = new Shape();
    46             var cols:Array = [fromColor,toColor];
    47             var alphas:Array = [1,1];
    48             var rats:Array = [0,255];
    49             var matr:Matrix = new Matrix();
    50             matr.createGradientBox(480, 100, 0, 0, 0);
    51             shape.graphics.clear();
    52             shape.graphics.beginGradientFill(GradientType.LINEAR,cols,alphas,rats,matr);
    53             //渐变填充颜色;
    54             shape.graphics.drawRect(0,0,480,100);
    55             shape.graphics.endFill();
    56             shape.x = 100;
    57             shape.y = this.stage.stageHeight - 150;
    58             this.addChild(shape);
    59         }
    60 
    61         private function onClick(e:MouseEvent):void
    62         {
    63             trace(e.currentTarget.name);//得出点击对象的颜色值
    64         }
    65     }
    66 
    67 }
  • 相关阅读:
    工厂与抽象工厂
    memcache的分布式配置
    Windows下的 mysql 5.5主从同步配置
    sql执行超时处理
    RabbitMQ远程访问配置
    事件驱动与流程驱动
    数据库连接池的配置和使用
    mysql常见的hint(转载的)
    数据库结构的设计与如何最大限度的利用索引
    [asp.net webfrom+spring.net Error] Resource handler for the 'web' protocol is not defined.
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4589263.html
Copyright © 2020-2023  润新知