我给大家送“钟”来了。。。。
时间:2011-06-06
来源:互联网
本人表达能力差,不多说了。 复制一下哈。 纯as制作效果。
*学习要点,对Sprite的属性应用,坐标,旋转等,细节点的就是秒针的运行,as绘制UI。其它点击变换背景,拖动,滚轮放大。
*重点是:白天看与晚上看是不一样的,脱了短裤与穿了短裤看效果也可以试试。。。
源文件看附件。
主要代码
view1.JPG (10.83 KB)
view2.JPG (15.91 KB)
clock_code.rar (13.77 KB)
*学习要点,对Sprite的属性应用,坐标,旋转等,细节点的就是秒针的运行,as绘制UI。其它点击变换背景,拖动,滚轮放大。
*重点是:白天看与晚上看是不一样的,脱了短裤与穿了短裤看效果也可以试试。。。
源文件看附件。
主要代码
复制内容到剪贴板
/**
*@author:MythLong;
*[email protected];
*学习要点,对Sprite的属性应用,坐标,旋转等,细节点的就是秒针的运行,as绘制UI。其它点击变换背景,拖动,滚轮放大。
*重点是:白天看与晚上看是不一样的,脱了短裤与穿了短裤看效果也可以试试。。。
*仅供学习参考,欢迎转载并美化,记得保留作者信息给我增加点名誉虚荣,谢谢啊。。 。 。
*
*/
import flash.display.*;
//import flash.display.MovieClip;
import flash.geom.*;
import flash.events.*;
import flash.text.*;
import flash.filters.GlowFilter;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.ui.*;
public class Clock2 extends Sprite {
/////////////
private var _myDates:Date;
private var date:uint;
private var day:Array=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
private var month:uint;
private var hour:uint;
private var second:uint;
private var minute:uint;
private var year:uint;
private var tween:Tween;
private var _stagebg:Sprite;
private var _bgColor:Number;
private var _timecon:Sprite;
private var _clockSkin:Sprite;
private var _reflectHi:Sprite;
private var _hourMC:Sprite;
private var _minuteMC:Sprite;
private var _secondMC:Sprite;
private var _hour_Bs:Sprite;
private var _minute_Bs:Sprite;
private var _second_Bs:Sprite;
private var _oldrot:Number;
private var tmpangle:Number;
private var _reAngle:int=90;
private var _pinColor:Number=0xDDDDDD;///指针颜色
private var _filter1:GlowFilter;
private var _filter2:GlowFilter;
private var daytext:TextField;
private var _yeartext:TextField;
private var format:TextFormat;
private var format2:TextFormat;
private var stageW:uint=stage.stageWidth;
private var stageH:uint=stage.stageHeight;
private var menulabel:Array;
/////////
public function Clock2() {
//stage.displayState="fullScreen";
//stage.align=StageAlign.TOP_LEFT;
//stage.quality=StageQuality.LOW;
//_pinColor=0xFFFFFF;///指针颜色
format=new TextFormat();
format.font="微软雅黑";
format.size=12;
format.color=0x000000;
format.align=TextFormatAlign.RIGHT;
//
format2=new TextFormat();
format2.font="_san";
format2.bold=true;
format2.size=12;
format2.color=0xDDDDDD;
format2.align=TextFormatAlign.LEFT;
//trace(_myDates.getSeconds());
_stagebg=new Sprite();
stage.addChild(_stagebg);
_init();
}
///////////初始化状态。
private function _init():void {
menulabel=new Array("[email protected]","Author:MYTHLONG");
_customMenu();
_buildingBG();
_buildingUI();
}
///
private function _changeBG(evt:MouseEvent):void {
_buildingBG();
}
private function _mouseBG(evt:MouseEvent):void {
_stagebg.alpha=mouseX/mouseY*.2;
trace(mouseX/mouseY*.2);
}
////
private function _dragMC(evt:MouseEvent):void {
evt.currentTarget.startDrag();
}
private function _stopdragMC(evt:MouseEvent):void {
evt.currentTarget.stopDrag();
}
private function _zoomMC(evt:MouseEvent):void {
if (evt.delta<0) {
evt.currentTarget.scaleX=evt.currentTarget.scaleY-=.1;
if (evt.currentTarget.scaleX<.1) {
evt.currentTarget.scaleX=evt.currentTarget.scaleY=.1;
}
} else if (evt.delta>0) {
evt.currentTarget.scaleX=evt.currentTarget.scaleY+=.1;
}
}
/////开始时间更新显示。
private function _runtime(evt:Event):void {
_myDates=new Date();
if (second!=_myDates.getSeconds()) {
date=_myDates.getDate();
month=_myDates.getMonth();
year=_myDates.getFullYear();
/////
hour=_myDates.getHours();
minute=_myDates .getMinutes();
second=_myDates.getSeconds();
//_secondMC.rotation=second*360/60;
tmpangle=second*360/60+6-_reAngle;
//tmpangle<180?tmpangle:tmpangle=tmpangle-360;
//trace(_oldrot+":"+tmpangle);
tween=new Tween(_secondMC,"rotation",None.easeNone,_oldrot,tmpangle,.999,true);
_minuteMC.rotation=minute*360/60+second*360/60/60-_reAngle;
_hourMC.rotation=hour*360/12+minute*360/60/12-_reAngle;
//trace(day[_myDates.getDay()]);
daytext.text=(month+1)+"月"+date+"日"+day[_myDates.getDay()];
//_yeartext.text=year+"年"+(month+1)+"月"+date+"日";
if (_myDates.getHours()>6 &&_myDates.getHours()<19) {
_hour_Bs.alpha=1;
_second_Bs.alpha=1;
_minute_Bs.alpha=1;
_clockSkin.alpha=1;
_reflectHi.alpha=1;
} else {
_hour_Bs.alpha=.1;
_second_Bs.alpha=.1;
_minute_Bs.alpha=.1;
_clockSkin.alpha=.1;
_reflectHi.alpha=.1;
daytext.appendText("XXX看到此信息说明你有穿短裤");
daytext.width=daytext.textWidth+5;
}
} else {
_oldrot=_myDates.getSeconds()*360/60+6-_reAngle;
if (_oldrot==270) {
_oldrot=-90;////这个判断是为了纠正秒针超过180度时,rotation变为负数,tween动画的问题。
}
}
daytext.x+=(mouseX-daytext.x)/6;
daytext.y+=(mouseY-daytext.y+daytext.height)/6;
}
/////////建立基本的时钟元素。
private function _buildingUI():void {
_timecon =new Sprite();
//_timecon.rotation=-_reAngle;
_timecon.x=300;
_timecon.y=300;
stage.addChild(_timecon);
_clockSkin=_drawBody();
_timecon.addChild(_clockSkin);
///////////
var i:int=-1;
while (++i<12) {
var _label2:Sprite=_drawCircle(0x00FFAA,1,2,122,0,true,0x00FFAA,0xFFFFFF,0,0);
_label2.rotation=360/12*i;
_timecon.addChild(_label2);
}
_hourMC=new Sprite();
_minuteMC=new Sprite();
_secondMC=new Sprite();
daytext=new TextField();
daytext.defaultTextFormat=format;
daytext.text="12月12日星期一";
daytext.width=daytext.textWidth+2;
daytext.height=daytext.textHeight+2;
daytext.x=20;
daytext.y=-10;
daytext.mouseEnabled=false;
daytext.background=true;
daytext.backgroundColor=0xA3FED9;
daytext.border=true;
_yeartext=new TextField();
_yeartext.defaultTextFormat=format;
//_yeartext.background=true;
_yeartext.autoSize=TextFieldAutoSize.CENTER;
_yeartext.x=-_yeartext.width/2;
_yeartext.y=-10;
_yeartext.mouseEnabled=false;
//_timecon.addChild(_yeartext);
//_stagebg.addChild(daytext);
stage.addChild(daytext);
_timecon.addChild(_hourMC);
_timecon.addChild(_minuteMC);
_timecon.addChild(_secondMC);
_hour_Bs =_drawSprite(_pinColor,.1,110,9,-25,-4,true,0x000000,0xFFFFFF,.25,.6);
_hour_Bs.addChild(_drawCircle(_pinColor,.1,10,0,0,false,0x000000,0xFFFFFF,.25,.6));
_hourMC.addChild(_hour_Bs);
var _hour_Pt:Sprite=_drawSprite(0x00FFAA,1,20,5,60,-2,false,0x00FFAA,0xFFFFFF,0,0);
_filter1=new GlowFilter(0x00FF00,1,3,3,2,2,true);
_filter2=new GlowFilter(0x00FF00,1,8,8,2,2,false);
_hour_Pt.filters=[_filter1,_filter2];
_hourMC.addChild(_hour_Pt);
_minute_Bs =_drawSprite(_pinColor,.1,130,5,-20,-2,true,0x000000,0xFFFFFF,.25,.6);
_minute_Bs.addChild(_drawCircle(_pinColor,.1,6,0,0,false,0x000000,0xFFFFFF,.25,.6));
_minuteMC.addChild(_minute_Bs);
var _minute_Pt:Sprite=_drawSprite(0x11E8FF,1,20,3,82,-1,true,0x11B8FF,0xFFFFFF,0,0);
_filter1=new GlowFilter(0x0055FF,1,3,3,2,2,true);
_filter2=new GlowFilter(0x0055FF,1,8,8,2,2,false);
_minute_Pt.filters=[_filter1,_filter2];
_minuteMC.addChild(_minute_Pt);
_second_Bs =_drawSprite(0xDD3300,.1,130,2,-10,-1,true,0x000000,0xFFFFFF,.25,.6);
_second_Bs.addChild(_drawCircle(0xDD3300,.1,4,0,0,false,0x000000,0xFFFFFF,.25,.6));
_secondMC.addChild(_second_Bs);
var _second_Pt:Sprite=_drawSprite(0xFF7011,1,5,5,74,-79,true,0xFF1A1A,0xFFFFFF,0,0,45);
_filter1=new GlowFilter(0xFF1A1A,1,3,3,2,2,true);
_filter2=new GlowFilter(0xFF1A1A,1,8,8,2,2,false);
_second_Pt.filters=[_filter1,_filter2];
_secondMC.addChild(_second_Pt);
////
///////
_reflectHi=_drawGraCir(134,.1,0,0x98,0x99,700,700,-380,-570,0xFFFFFF,0xFFFFFF);
_timecon.addChild(_reflectHi);
_reflectHi.addChild(_drawGraCir(134,.9,0,0x00,0x99,700,700,-380,-570,0xFFFFFF,0xFFFFFF));
//_reflectHi.addChild(_drawGraCir(134,.6,0,0x40,0x45,700,700,-380,-570,0xFFFFFF,0xFFFFFF,true));
_reflectHi.addChild(_drawGraCir(135,0,1,0xEE,0xFF,380,380,-180,-142,0xFFFFFF,0xFFFFFF,false));
//_oldrot=_secondMC.rotation=second*360/60;
_minuteMC.rotation=minute*360/60+second*360/60/60-_reAngle;
_hourMC.rotation=hour*360/12+minute*360/60/12-_reAngle;
stage.addEventListener(Event.ENTER_FRAME,_runtime);
_timecon.addEventListener(MouseEvent.MOUSE_DOWN,_dragMC);
_timecon.addEventListener(MouseEvent.MOUSE_UP,_stopdragMC);
_timecon.addEventListener(MouseEvent.MOUSE_WHEEL,_zoomMC);
_stagebg.addEventListener(MouseEvent.CLICK,_changeBG);
//_stagebg.addEventListener(MouseEvent.MOUSE_MOVE,_mouseBG);
}
////绘制时钟的刻度与表盘。
private function _drawBody():Sprite {
var _body:Sprite=new Sprite();
//addChild(_body);
var _bg:Sprite=new Sprite();
_bg.graphics.beginFill(0x361BA9,1);
_bg.graphics.drawCircle(0,0,135);
_bg.filters=[new GlowFilter(0x000000,.7,12,12,2,2,false,true)];
_body.addChild(_bg);
///////
var _reflect:Sprite=_drawGraCir(135,0,.2,0xBB,0xFF,500,500,-280,-400,0xFFFFFF,0xFFFFFF);
_body.addChild(_reflect);
//_reflect.addChild(_drawGraCir(135,0,.1,0xCC,0xFF,340,340,-180,-220,0xFFFFFF,0xFFFFFF));
_reflect.addChild(_drawGraCir(135,0,.6,0xEE,0xFF,276,276,-138,-138,0xFFFFFF,0xFFFFFF));
_reflect.addChild(_drawGraCir(135,0,.6,0xEE,0xFF,280,280,-142,-150,0xFFFFFF,0xFFFFFF));
_reflect.addChild(_drawGraCir(135,0,1,0xEE,0xFF,380,380,-200,-240,0xFFFFFF,0xFFFFFF,true));
///////////
var j:int=-1;
while (++j<60) {
var _labelmin:Sprite=_drawSprite(0xEEEEEE,1,3,1,120,0,false,0x00FFAA,0xFFFFFF,0,0);
_labelmin.rotation=360/60*j;
_body.addChild(_labelmin);
}
///////////
var i:int=-1;
while (++i<12) {
var _label:Sprite=_drawSprite(_pinColor,.25,20,6,105,-3,true,0x000000,0xFFFFFF,1,.6);
_label.rotation=360/12*i;
_body.addChild(_label);
}
var _copyright:TextField=new TextField();
_copyright.defaultTextFormat=format2;
_copyright.text="MYTHLONG";
_copyright.autoSize=TextFieldAutoSize.CENTER;
_copyright.x=-_copyright.width/2;
_copyright.y=60;
_copyright.mouseEnabled=false;
_body.addChild(_copyright);
return _body;
}
//////绘制定义属性的RECT.
private function _drawSprite(_Color:Number=0xDDDDDD,_ColorAlpha:Number=1,_W:uint=10,_H:uint=10,_X:int=0,_Y:int=0,_Shadow:Boolean=true,_ShadowColor:Number=0x000000,_lineColor:Number=0xFFFFFF,_lineSize:uint=0,_lineAlpha:Number=1,_Ro:int=0):Sprite {
var _myMC:Sprite=new Sprite();
_myMC.graphics.lineStyle(_lineSize,_lineColor,_lineAlpha);
_myMC.graphics.beginFill(_Color,_ColorAlpha);
_myMC.graphics.drawRect(_X,_Y,_W,_H);
if (_Shadow) {
_myMC.filters=[new GlowFilter(_ShadowColor,1,5,5,2,2,false,false)];
}
_myMC.rotation=_Ro;
return _myMC;
}
//////绘制定义属性的circle.
private function _drawCircle(_Color:Number=0xDDDDDD,_ColorAlpha:Number=1,_R:uint=5,_X:int=0,_Y:int=0,_Shadow:Boolean=false,_ShadowColor:Number=0x000000,_lineColor:Number=0xFFFFFF,_lineSize:uint=0,_lineAlpha:Number=1):Sprite {
var _myMC:Sprite=new Sprite();
_myMC.graphics.lineStyle(_lineSize,_lineColor,_lineAlpha);
_myMC.graphics.beginFill(_Color,_ColorAlpha);
_myMC.graphics.drawCircle(_X,_Y,_R);
if (_Shadow) {
_myMC.filters=[new GlowFilter(_ShadowColor,1,5,5,2,2)];
}
return _myMC;
}
////////////_buildingBG()
private function _buildingBG():void {
_bgColor=Math.random()*0xFFFFFF+0x002211;
_stagebg.graphics.clear();
_stagebg.graphics.beginFill(_bgColor,.3);
_stagebg.graphics.drawRect((stageW-stage.stageWidth)/2,(stageH-stage.stageHeight)/2,stage.stageWidth,stage.stageHeight);
}
////////////
private function _customMenu():void {
var _customMenu:ContextMenu=new ContextMenu();
var item0:ContextMenuItem=new ContextMenuItem(menulabel[0]);
var item1:ContextMenuItem=new ContextMenuItem(menulabel[1]);
_customMenu.customItems.push(item0,item1);
this.contextMenu=_customMenu;
}
///bg
private function _buildingGBG():void {
}
/////绘制渐变圆形。
private function _drawGraCir(_Radiu:uint=135,_Alpha1:Number=0,_Alpha2:Number=.6,_Ratio1:Number=0xBB,_Ratio2:Number=0xFF,_MatrW:uint=500,_MatrH:uint=500,_MatrX:int=-250,_MatrY:int=-400,_Color1:Number=0xFFFFFF,_Color2:Number=0xFFFFFF,_Shadow:Boolean=false):Sprite {
var _myMC:Sprite=new Sprite();
var fillType:String = GradientType.RADIAL;
//var fillType:String = GradientType.LINEAR;
var colors:Array = [_Color1, _Color2];
var alphas:Array = [_Alpha1, _Alpha2];
var ratios:Array = [_Ratio1, _Ratio2];
var matr:Matrix = new Matrix();
matr.createGradientBox(_MatrW, _MatrH, 0, _MatrX, _MatrY);
var spreadMethod:String = SpreadMethod.PAD;
var interpolationMethod:String=InterpolationMethod.RGB;
var focalPointRatio:Number=0;
_myMC.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod,interpolationMethod,focalPointRatio);
_myMC.graphics.drawCircle(0,0,_Radiu);
//_myMC.graphics.drawRect(0,0,100,100);
if (_Shadow) {
_myMC.filters=[new GlowFilter(_Color2,1,8,8,2,2)];
}
return _myMC;
}
}
}
代码:
package mythl{/**
*@author:MythLong;
*[email protected];
*学习要点,对Sprite的属性应用,坐标,旋转等,细节点的就是秒针的运行,as绘制UI。其它点击变换背景,拖动,滚轮放大。
*重点是:白天看与晚上看是不一样的,脱了短裤与穿了短裤看效果也可以试试。。。
*仅供学习参考,欢迎转载并美化,记得保留作者信息给我增加点名誉虚荣,谢谢啊。。 。 。
*
*/
import flash.display.*;
//import flash.display.MovieClip;
import flash.geom.*;
import flash.events.*;
import flash.text.*;
import flash.filters.GlowFilter;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.ui.*;
public class Clock2 extends Sprite {
/////////////
private var _myDates:Date;
private var date:uint;
private var day:Array=["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
private var month:uint;
private var hour:uint;
private var second:uint;
private var minute:uint;
private var year:uint;
private var tween:Tween;
private var _stagebg:Sprite;
private var _bgColor:Number;
private var _timecon:Sprite;
private var _clockSkin:Sprite;
private var _reflectHi:Sprite;
private var _hourMC:Sprite;
private var _minuteMC:Sprite;
private var _secondMC:Sprite;
private var _hour_Bs:Sprite;
private var _minute_Bs:Sprite;
private var _second_Bs:Sprite;
private var _oldrot:Number;
private var tmpangle:Number;
private var _reAngle:int=90;
private var _pinColor:Number=0xDDDDDD;///指针颜色
private var _filter1:GlowFilter;
private var _filter2:GlowFilter;
private var daytext:TextField;
private var _yeartext:TextField;
private var format:TextFormat;
private var format2:TextFormat;
private var stageW:uint=stage.stageWidth;
private var stageH:uint=stage.stageHeight;
private var menulabel:Array;
/////////
public function Clock2() {
//stage.displayState="fullScreen";
//stage.align=StageAlign.TOP_LEFT;
//stage.quality=StageQuality.LOW;
//_pinColor=0xFFFFFF;///指针颜色
format=new TextFormat();
format.font="微软雅黑";
format.size=12;
format.color=0x000000;
format.align=TextFormatAlign.RIGHT;
//
format2=new TextFormat();
format2.font="_san";
format2.bold=true;
format2.size=12;
format2.color=0xDDDDDD;
format2.align=TextFormatAlign.LEFT;
//trace(_myDates.getSeconds());
_stagebg=new Sprite();
stage.addChild(_stagebg);
_init();
}
///////////初始化状态。
private function _init():void {
menulabel=new Array("[email protected]","Author:MYTHLONG");
_customMenu();
_buildingBG();
_buildingUI();
}
///
private function _changeBG(evt:MouseEvent):void {
_buildingBG();
}
private function _mouseBG(evt:MouseEvent):void {
_stagebg.alpha=mouseX/mouseY*.2;
trace(mouseX/mouseY*.2);
}
////
private function _dragMC(evt:MouseEvent):void {
evt.currentTarget.startDrag();
}
private function _stopdragMC(evt:MouseEvent):void {
evt.currentTarget.stopDrag();
}
private function _zoomMC(evt:MouseEvent):void {
if (evt.delta<0) {
evt.currentTarget.scaleX=evt.currentTarget.scaleY-=.1;
if (evt.currentTarget.scaleX<.1) {
evt.currentTarget.scaleX=evt.currentTarget.scaleY=.1;
}
} else if (evt.delta>0) {
evt.currentTarget.scaleX=evt.currentTarget.scaleY+=.1;
}
}
/////开始时间更新显示。
private function _runtime(evt:Event):void {
_myDates=new Date();
if (second!=_myDates.getSeconds()) {
date=_myDates.getDate();
month=_myDates.getMonth();
year=_myDates.getFullYear();
/////
hour=_myDates.getHours();
minute=_myDates .getMinutes();
second=_myDates.getSeconds();
//_secondMC.rotation=second*360/60;
tmpangle=second*360/60+6-_reAngle;
//tmpangle<180?tmpangle:tmpangle=tmpangle-360;
//trace(_oldrot+":"+tmpangle);
tween=new Tween(_secondMC,"rotation",None.easeNone,_oldrot,tmpangle,.999,true);
_minuteMC.rotation=minute*360/60+second*360/60/60-_reAngle;
_hourMC.rotation=hour*360/12+minute*360/60/12-_reAngle;
//trace(day[_myDates.getDay()]);
daytext.text=(month+1)+"月"+date+"日"+day[_myDates.getDay()];
//_yeartext.text=year+"年"+(month+1)+"月"+date+"日";
if (_myDates.getHours()>6 &&_myDates.getHours()<19) {
_hour_Bs.alpha=1;
_second_Bs.alpha=1;
_minute_Bs.alpha=1;
_clockSkin.alpha=1;
_reflectHi.alpha=1;
} else {
_hour_Bs.alpha=.1;
_second_Bs.alpha=.1;
_minute_Bs.alpha=.1;
_clockSkin.alpha=.1;
_reflectHi.alpha=.1;
daytext.appendText("XXX看到此信息说明你有穿短裤");
daytext.width=daytext.textWidth+5;
}
} else {
_oldrot=_myDates.getSeconds()*360/60+6-_reAngle;
if (_oldrot==270) {
_oldrot=-90;////这个判断是为了纠正秒针超过180度时,rotation变为负数,tween动画的问题。
}
}
daytext.x+=(mouseX-daytext.x)/6;
daytext.y+=(mouseY-daytext.y+daytext.height)/6;
}
/////////建立基本的时钟元素。
private function _buildingUI():void {
_timecon =new Sprite();
//_timecon.rotation=-_reAngle;
_timecon.x=300;
_timecon.y=300;
stage.addChild(_timecon);
_clockSkin=_drawBody();
_timecon.addChild(_clockSkin);
///////////
var i:int=-1;
while (++i<12) {
var _label2:Sprite=_drawCircle(0x00FFAA,1,2,122,0,true,0x00FFAA,0xFFFFFF,0,0);
_label2.rotation=360/12*i;
_timecon.addChild(_label2);
}
_hourMC=new Sprite();
_minuteMC=new Sprite();
_secondMC=new Sprite();
daytext=new TextField();
daytext.defaultTextFormat=format;
daytext.text="12月12日星期一";
daytext.width=daytext.textWidth+2;
daytext.height=daytext.textHeight+2;
daytext.x=20;
daytext.y=-10;
daytext.mouseEnabled=false;
daytext.background=true;
daytext.backgroundColor=0xA3FED9;
daytext.border=true;
_yeartext=new TextField();
_yeartext.defaultTextFormat=format;
//_yeartext.background=true;
_yeartext.autoSize=TextFieldAutoSize.CENTER;
_yeartext.x=-_yeartext.width/2;
_yeartext.y=-10;
_yeartext.mouseEnabled=false;
//_timecon.addChild(_yeartext);
//_stagebg.addChild(daytext);
stage.addChild(daytext);
_timecon.addChild(_hourMC);
_timecon.addChild(_minuteMC);
_timecon.addChild(_secondMC);
_hour_Bs =_drawSprite(_pinColor,.1,110,9,-25,-4,true,0x000000,0xFFFFFF,.25,.6);
_hour_Bs.addChild(_drawCircle(_pinColor,.1,10,0,0,false,0x000000,0xFFFFFF,.25,.6));
_hourMC.addChild(_hour_Bs);
var _hour_Pt:Sprite=_drawSprite(0x00FFAA,1,20,5,60,-2,false,0x00FFAA,0xFFFFFF,0,0);
_filter1=new GlowFilter(0x00FF00,1,3,3,2,2,true);
_filter2=new GlowFilter(0x00FF00,1,8,8,2,2,false);
_hour_Pt.filters=[_filter1,_filter2];
_hourMC.addChild(_hour_Pt);
_minute_Bs =_drawSprite(_pinColor,.1,130,5,-20,-2,true,0x000000,0xFFFFFF,.25,.6);
_minute_Bs.addChild(_drawCircle(_pinColor,.1,6,0,0,false,0x000000,0xFFFFFF,.25,.6));
_minuteMC.addChild(_minute_Bs);
var _minute_Pt:Sprite=_drawSprite(0x11E8FF,1,20,3,82,-1,true,0x11B8FF,0xFFFFFF,0,0);
_filter1=new GlowFilter(0x0055FF,1,3,3,2,2,true);
_filter2=new GlowFilter(0x0055FF,1,8,8,2,2,false);
_minute_Pt.filters=[_filter1,_filter2];
_minuteMC.addChild(_minute_Pt);
_second_Bs =_drawSprite(0xDD3300,.1,130,2,-10,-1,true,0x000000,0xFFFFFF,.25,.6);
_second_Bs.addChild(_drawCircle(0xDD3300,.1,4,0,0,false,0x000000,0xFFFFFF,.25,.6));
_secondMC.addChild(_second_Bs);
var _second_Pt:Sprite=_drawSprite(0xFF7011,1,5,5,74,-79,true,0xFF1A1A,0xFFFFFF,0,0,45);
_filter1=new GlowFilter(0xFF1A1A,1,3,3,2,2,true);
_filter2=new GlowFilter(0xFF1A1A,1,8,8,2,2,false);
_second_Pt.filters=[_filter1,_filter2];
_secondMC.addChild(_second_Pt);
////
///////
_reflectHi=_drawGraCir(134,.1,0,0x98,0x99,700,700,-380,-570,0xFFFFFF,0xFFFFFF);
_timecon.addChild(_reflectHi);
_reflectHi.addChild(_drawGraCir(134,.9,0,0x00,0x99,700,700,-380,-570,0xFFFFFF,0xFFFFFF));
//_reflectHi.addChild(_drawGraCir(134,.6,0,0x40,0x45,700,700,-380,-570,0xFFFFFF,0xFFFFFF,true));
_reflectHi.addChild(_drawGraCir(135,0,1,0xEE,0xFF,380,380,-180,-142,0xFFFFFF,0xFFFFFF,false));
//_oldrot=_secondMC.rotation=second*360/60;
_minuteMC.rotation=minute*360/60+second*360/60/60-_reAngle;
_hourMC.rotation=hour*360/12+minute*360/60/12-_reAngle;
stage.addEventListener(Event.ENTER_FRAME,_runtime);
_timecon.addEventListener(MouseEvent.MOUSE_DOWN,_dragMC);
_timecon.addEventListener(MouseEvent.MOUSE_UP,_stopdragMC);
_timecon.addEventListener(MouseEvent.MOUSE_WHEEL,_zoomMC);
_stagebg.addEventListener(MouseEvent.CLICK,_changeBG);
//_stagebg.addEventListener(MouseEvent.MOUSE_MOVE,_mouseBG);
}
////绘制时钟的刻度与表盘。
private function _drawBody():Sprite {
var _body:Sprite=new Sprite();
//addChild(_body);
var _bg:Sprite=new Sprite();
_bg.graphics.beginFill(0x361BA9,1);
_bg.graphics.drawCircle(0,0,135);
_bg.filters=[new GlowFilter(0x000000,.7,12,12,2,2,false,true)];
_body.addChild(_bg);
///////
var _reflect:Sprite=_drawGraCir(135,0,.2,0xBB,0xFF,500,500,-280,-400,0xFFFFFF,0xFFFFFF);
_body.addChild(_reflect);
//_reflect.addChild(_drawGraCir(135,0,.1,0xCC,0xFF,340,340,-180,-220,0xFFFFFF,0xFFFFFF));
_reflect.addChild(_drawGraCir(135,0,.6,0xEE,0xFF,276,276,-138,-138,0xFFFFFF,0xFFFFFF));
_reflect.addChild(_drawGraCir(135,0,.6,0xEE,0xFF,280,280,-142,-150,0xFFFFFF,0xFFFFFF));
_reflect.addChild(_drawGraCir(135,0,1,0xEE,0xFF,380,380,-200,-240,0xFFFFFF,0xFFFFFF,true));
///////////
var j:int=-1;
while (++j<60) {
var _labelmin:Sprite=_drawSprite(0xEEEEEE,1,3,1,120,0,false,0x00FFAA,0xFFFFFF,0,0);
_labelmin.rotation=360/60*j;
_body.addChild(_labelmin);
}
///////////
var i:int=-1;
while (++i<12) {
var _label:Sprite=_drawSprite(_pinColor,.25,20,6,105,-3,true,0x000000,0xFFFFFF,1,.6);
_label.rotation=360/12*i;
_body.addChild(_label);
}
var _copyright:TextField=new TextField();
_copyright.defaultTextFormat=format2;
_copyright.text="MYTHLONG";
_copyright.autoSize=TextFieldAutoSize.CENTER;
_copyright.x=-_copyright.width/2;
_copyright.y=60;
_copyright.mouseEnabled=false;
_body.addChild(_copyright);
return _body;
}
//////绘制定义属性的RECT.
private function _drawSprite(_Color:Number=0xDDDDDD,_ColorAlpha:Number=1,_W:uint=10,_H:uint=10,_X:int=0,_Y:int=0,_Shadow:Boolean=true,_ShadowColor:Number=0x000000,_lineColor:Number=0xFFFFFF,_lineSize:uint=0,_lineAlpha:Number=1,_Ro:int=0):Sprite {
var _myMC:Sprite=new Sprite();
_myMC.graphics.lineStyle(_lineSize,_lineColor,_lineAlpha);
_myMC.graphics.beginFill(_Color,_ColorAlpha);
_myMC.graphics.drawRect(_X,_Y,_W,_H);
if (_Shadow) {
_myMC.filters=[new GlowFilter(_ShadowColor,1,5,5,2,2,false,false)];
}
_myMC.rotation=_Ro;
return _myMC;
}
//////绘制定义属性的circle.
private function _drawCircle(_Color:Number=0xDDDDDD,_ColorAlpha:Number=1,_R:uint=5,_X:int=0,_Y:int=0,_Shadow:Boolean=false,_ShadowColor:Number=0x000000,_lineColor:Number=0xFFFFFF,_lineSize:uint=0,_lineAlpha:Number=1):Sprite {
var _myMC:Sprite=new Sprite();
_myMC.graphics.lineStyle(_lineSize,_lineColor,_lineAlpha);
_myMC.graphics.beginFill(_Color,_ColorAlpha);
_myMC.graphics.drawCircle(_X,_Y,_R);
if (_Shadow) {
_myMC.filters=[new GlowFilter(_ShadowColor,1,5,5,2,2)];
}
return _myMC;
}
////////////_buildingBG()
private function _buildingBG():void {
_bgColor=Math.random()*0xFFFFFF+0x002211;
_stagebg.graphics.clear();
_stagebg.graphics.beginFill(_bgColor,.3);
_stagebg.graphics.drawRect((stageW-stage.stageWidth)/2,(stageH-stage.stageHeight)/2,stage.stageWidth,stage.stageHeight);
}
////////////
private function _customMenu():void {
var _customMenu:ContextMenu=new ContextMenu();
var item0:ContextMenuItem=new ContextMenuItem(menulabel[0]);
var item1:ContextMenuItem=new ContextMenuItem(menulabel[1]);
_customMenu.customItems.push(item0,item1);
this.contextMenu=_customMenu;
}
///bg
private function _buildingGBG():void {
}
/////绘制渐变圆形。
private function _drawGraCir(_Radiu:uint=135,_Alpha1:Number=0,_Alpha2:Number=.6,_Ratio1:Number=0xBB,_Ratio2:Number=0xFF,_MatrW:uint=500,_MatrH:uint=500,_MatrX:int=-250,_MatrY:int=-400,_Color1:Number=0xFFFFFF,_Color2:Number=0xFFFFFF,_Shadow:Boolean=false):Sprite {
var _myMC:Sprite=new Sprite();
var fillType:String = GradientType.RADIAL;
//var fillType:String = GradientType.LINEAR;
var colors:Array = [_Color1, _Color2];
var alphas:Array = [_Alpha1, _Alpha2];
var ratios:Array = [_Ratio1, _Ratio2];
var matr:Matrix = new Matrix();
matr.createGradientBox(_MatrW, _MatrH, 0, _MatrX, _MatrY);
var spreadMethod:String = SpreadMethod.PAD;
var interpolationMethod:String=InterpolationMethod.RGB;
var focalPointRatio:Number=0;
_myMC.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod,interpolationMethod,focalPointRatio);
_myMC.graphics.drawCircle(0,0,_Radiu);
//_myMC.graphics.drawRect(0,0,100,100);
if (_Shadow) {
_myMC.filters=[new GlowFilter(_Color2,1,8,8,2,2)];
}
return _myMC;
}
}
}
附件

2011-6-6 21:46
图一

2011-6-6 21:46
图二

2011-6-6 21:46, 下载次数: 2
源码文件
作者: mythl 发布时间: 2011-06-06

作者: liweing 发布时间: 2011-06-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28