加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

红绿灯代码实现

(2012-01-11 15:00:07)
标签:

杂谈

import flash.display.Shape;

import flash.events.TimerEvent;

import flash.filters.BitmapFilterQuality;

import flash.filters.BitmapFilterType;

import flash.filters.DropShadowFilter;

import flash.filters.GlowFilter;

import flash.filters.GradientBevelFilter;

import flash.utils.Timer;

var count:Number = 1;

var distance:Number = 8;

var angleInDegrees:Number = 225; // 反向 45

var colors:Array = [0xFFFFCC, 0xFEFE78, 0x8F8E01];

var alphas:Array = [1, 0, 1];

var ratios:Array = [0, 128, 255];

var blurX:Number = 8;

var blurY:Number = 8;

var strength:Number = 1;

var quality:Number = BitmapFilterQuality.HIGH;

var type:String = BitmapFilterType.INNER;

var knockout:Boolean = false;

// 绘制交通信号灯的矩形背景。

var box:Shape = new Shape();

box.graphics.lineStyle();

box.graphics.beginFill(0xFEFE78);

box.graphics.drawRect(100, 50, 90, 200);

box.graphics.endFill();

// 绘制 3 个圆形表示三个交通灯。

var stopLight:Shape = new Shape();

stopLight.graphics.lineStyle();

stopLight.graphics.beginFill(0xFF0000);

stopLight.graphics.drawCircle(145,90,25);

stopLight.graphics.endFill();

var cautionLight:Shape = new Shape();

cautionLight.graphics.lineStyle();

cautionLight.graphics.beginFill(0xFF9900);

cautionLight.graphics.drawCircle(145,150,25);

cautionLight.graphics.endFill();

var goLight:Shape = new Shape();

goLight.graphics.lineStyle();

goLight.graphics.beginFill(0x00CC00);

goLight.graphics.drawCircle(145,210,25);

goLight.graphics.endFill();

// 将这些图形添加到显示列表中。

addChild(box);

addChild(stopLight);

addChild(cautionLight);

addChild(goLight);

// 对交通信号灯矩形应用渐变斜角。

var gradientBevel:GradientBevelFilter = new GradientBevelFilter(distance,

angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality,

type, knockout);

box.filters = [gradientBevel];

// 创建内侧阴影(用于灯关闭时)和发光

// (用于灯打开时)。

var innerShadow:DropShadowFilter = new DropShadowFilter(5, 45, 0, 0.5, 3, 3,

1, 1, true, false);

var redGlow:GlowFilter = new GlowFilter(0xFF0000, 1, 30, 30, 1, 1, false,

false);

var yellowGlow:GlowFilter = new GlowFilter(0xFF9900, 1, 30, 30, 1, 1, false,

false);

var greenGlow:GlowFilter = new GlowFilter(0x00CC00, 1, 30, 30, 1, 1, false,

false);

// 设置灯的起始状态(绿灯打开,红灯/ 黄灯关闭)。

stopLight.filters = [innerShadow];

cautionLight.filters = [innerShadow];

goLight.filters = [greenGlow];

// 根据计数值交换滤镜。

function trafficControl(event:TimerEvent):void

{

if (count == 4)

{

count = 1;

}

switch (count)

{

case 1:

stopLight.filters = [innerShadow];

cautionLight.filters = [yellowGlow];

goLight.filters = [innerShadow];

break;

case 2:

stopLight.filters = [redGlow];

cautionLight.filters = [innerShadow];

goLight.filters = [innerShadow];

break;

case 3:

stopLight.filters = [innerShadow];

cautionLight.filters = [innerShadow];

goLight.filters = [greenGlow];

break;

}

count++;

}

// 创建一个计时器,每隔 3 秒钟交换一次滤镜。

var timer:Timer = new Timer(3000, 9);

timer.addEventListener(TimerEvent.TIMER, trafficControl);

timer.start();

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有