as3钟表学习代码
as3教程_flash_ActionScrip_3
ActionScript 3教程系列【黑羽】ActionScript 3.0系列教程(1):与Flash9先来一次亲密接触!如蒙转载,请留下我的Blog链接:,thx)Flash Professional 9 ActionScript 3.0 Preview版本今天发布了,意味着从此我们从此不仅仅只能使用Flex 2来使用AS3.0,更可以使用我们一直很熟悉的Flash IDE来进行AS3.0开发了。
与Flex 2不同,Flash 9 alpha(即上面的Flash Professional 9 ActionScript 3.0 Preview )允许我们创建基于时间轴的ActionScript 3.0的Fla文档,而不是基于State的MXML文档。
在Flash 9 alpha里,我们和以前一样可以在舞台上直接手绘矢量图,创建元件,添加动画,等等。
我黑羽是急性子,先跳开一些特色的介绍,单刀直入,马上来个实例。
边讲解边说说Flash 9的特点。
点击看大图,清楚点。
为了照顾新手xdjm们,看图说话一把。
老鸟略过勿看,省得嫌我罗嗦。
呵呵。
新建一个fla,随便画一个方块什么的,双击选中按F8转换成MovieClip。
在属性面板中命名为kingda_mc。
和以前一模一样。
再新建一层,命名为actions,这是个好习惯,要保持。
选中第一帧,按F9打开动作面板,写入如下代码。
Control+Enter,在测试窗口中,双击那个方块,就会有trace信息显示出来。
//【黑羽】ActionScript 3.0系列教程(1)//kingda_mc.doubleClickEnabled = true;kingda_mc.addEventListener(MouseEvent.DOUBLE_CLICK, clickHandler);function clickHandler(event:MouseEvent):void {trace("哈哈,你双击我了");}//直接支持双击了,兄弟们,爽不爽^_^稍作解释,这儿有几个和AS2.0不同的地方了。
钟表(电子摆钟)代码
////作者:莫智豪
//#include<iostream>
//#include <graphics.h>
//#include <conio.h>
//#include <math.h>
//
//#definePI3.14159ace std;
//
////画出时针
//setlinestyle(PS_SOLID, NULL, 10);
//setcolor(WHITE);
//line(320 + x_hour, 240 - y_hour, 320 - x_hour / 7, 240 + y_hour / 7);
//
////画出分针
//setlinestyle(PS_SOLID, NULL, 6);
//void DrawHand(int hour, int minute, int second)
//{
//double a_hour, a_min, a_sec;//时、分、秒针的弧度值
//int x_hour, y_hour, x_min, y_min, x_sec, y_sec;//时、分、秒针的末端位置的横、纵坐标
//
//DrawDial();//绘制表盘
//
//setwritemode(R2_XORPEN);//设置XOR绘图模式
//
////绘制表针
//SYSTEMTIME ti;//定义变量保存当前时间
//while(!kbhit())//按任意键退出钟表程序
//{
//
//GetLocalTime(&ti);//获取当前时间
flashas3.0时钟源代码
flashas3.0时钟源代码// 文件 1.DTimer.aspackage{import flash.display.Shape;import flash.display.Sprite;import flash.display.StageAlign;import flash.display.StageScaleMode; import flash.text.StaticText;import flash.events.*;import flash.text.T extField;import flash.text.T extFormat;public class DTimer extends Sprite{// 设置时钟宽度public var w:uint=200;// 设置时钟高度public var h:uint=200;// 设置时钟半径public var radius:uint;// 设置时钟中心位置public var centerX:int;public var centerY:int;// 定义三个形状表示时钟指针public var hourHand:Shape;public var minuteHand:Shape;public var secondHand:Shape;// 定义时钟样式public var bgColor:uint=0xeeeeff;public var hourHandColor:uint=0x003366;public var minuteHandColor:uint=0x000099; public var secondHandColor:uint=0xcc0033; public var x0:uint;public var y0:uint;public var x1:uint;public var y1:uint;public var txt:TextField;// 定义时间public var currentTime:Date;public function init():void{// 绘制表盘drawBorder();// 绘制表盘显示文字drawLabels();// 绘制指针createHands();Drawlss();// 显示文本CreateTxt();}public function DTimer(w:uint){this.w=w;this.h=w; // 是圆盘所以取一样this.radius=Math.round(this.w/2);this.centerX=this.radius;this.centerY=this.radius;}public function drawBorder(){graphics.lineStyle(0.5,0x999999);graphics.beginFill(bgColor);graphics.drawCircle(centerX,centerY,radius); graphics.endFill();}public function drawLabels(){for(var i:Number=1;i<=12;i++){var label:TextField=new TextField();label.text=i.toString();// 小时位置var angleInRadians:Number=i*30*(Math.PI/180);/* 度*π弧度==---------180弧度*180度==------------π即:π弧度等于180度*/label.x=centerX+(0.9*radius*Math.sin(angleInRadians))-5; label.y=centerY-(0.9*radius*Math.cos(angleInRadians))-9;trace(Math.sin(angleInRadians));// 格式化文本内容var tf:TextFormat=new TextFormat();tf.font="Arial";tf.bold="true";tf.size=12;label.setTextFormat(tf);addChild(label);}}// 绘制分钟对应位置public function Drawlss(){for(var i:Number=0;i<=60;i++){var lshape:Shape=new Shape();Drawls(lshape,i*6,0x000000,1);addChild(lshape);}}// 绘制分针方法public function Drawls(hand:Shape,rot:uint,color:uint,thickness:Number):void{ var angleInRadius:Number=rot*(Math.PI/180);x1=centerX+(radius*Math.sin(angleInRadius));y1=centerY-(radius*Math.cos(angleInRadius));if(rot%30==0){x0=centerX+(0.95*radius*Math.sin(angleInRadius));y0=centerY-(0.95*radius*Math.cos(angleInRadius));}else{x0=centerX+(0.97*radius*Math.sin(angleInRadius));y0=centerY-(0.97*radius*Math.cos(angleInRadius));}hand.graphics.lineStyle(thickness,color);hand.graphics.moveTo(x0,y0);hand.graphics.lineTo(x1,y1);}public function createHands():void{var hourHandShape:Shape=new Shape();drawHand(hourHandShape,Math.round(radius*0.5),hourHa ndColor,3.0);this.hourHand=Shape(addChild(hourHandShape));this.hourHand.x=centerX;this.hourHand.y=centerY;// 绘制分针var minuteHandShape:Shape=new Shape();drawHand(minuteHandShape,Math.round(radius*0.8),minut eHandColor,2.0);this.minuteHand=Shape(addChild(minuteHandShape));this.minuteHand.x=centerX;this.minuteHand.y=centerY;// 绘制秒针var secondHandShape:Shape=new Shape();drawHand(secondHandShape,Math.round(radius*0.9),secon dHandColor,0.5);this.secondHand=Shape(addChild(secondHandShape));this.secondHand.x=centerX;this.secondHand.y=centerY;}public function drawHand(hand:Shape,distance:uint,color:uint,thickness:Numbe r):void{hand.graphics.lineStyle(thickness,color);hand.graphics.moveTo(0,distance);hand.graphics.lineTo(0,0);}public function draw():void{currentTime=new Date();showTime(currentTime);showT(currentTime);}public function CreateTxt():void{txt=new TextField();txt.width=300;txt.x=centerX-radius;txt.y=centerY-radius-20;addChild(txt);}public function showT(time:Date){var seconds:uint=time.getSeconds();var minutes:uint=time.getMinutes();var hours:uint=time.getHours();var year:uint=time.getFullYear();var month:uint=time.getMonth()+1;var date:uint=time.getDate();this.txt.text="现在时间是"+year+"年"+month+"月"+date+"日"+hours+"时"+minutes+"分"+seconds+"秒";}public function showTime(time:Date):void{var seconds:uint=time.getSeconds();var minutes:uint=time.getMinutes();var hours:uint=time.getHours();this.secondHand.rotation=180+(seconds*6);this.minuteHand.rotation=180+(minutes*6);this.hourHand.rotation=180+(hours*30)+(minutes*0.5);}}}//文件2. SimpleClock.aspackage{import flash.display.Sprite;import DTimer;import flash.events.TimerEvent;import flash.utils.Timer;public class SimpleClock extends Sprite{public var face:DTimer;public var ticker:Timer;public static const millisecondsPerMinute:int=1000*60;public static const millisecondsPerHour:int=1000*60*60;public static const millisecondsPerDay:int=1000*60*60*24;public function initClock(faceSize:Number=200){var invoiceDate:Date=new Date();var millisecondsPerDay:int=1000*60*60*24;var dueDate:Date =new Date(invoiceDate.getTime()+(30*millisecondsPerDay));var oneHourFromNow:Date=new Date();oneHourFromNow.setTime(oneHourFromNow.getTime()+m illisecondsPerHour);// 创建表盘,初始化参数face=new DTimer(Math.max(20,faceSize));face.init();addChild(face);face.draw();// 创建Timer对象ticker=new Timer(1000);ticker.addEventListener(TimerEvent.TIMER,onTick);ticker.start();}public function onTick(event:TimerEvent){face.draw();}}}// 文件3.DateTimer.aspackage{import flash.display.Sprite;import DTimer;import SimpleClock;public class DateTimer extends Sprite{ public function DateTimer(){var sc:SimpleClock=new SimpleClock(); sc.x=165;sc.y=100;addChild(sc);sc.initClock();}}}。
AS3高效率代码编写总结
使用对象池:在游戏初始化时,把所有需要的对象存放到一个数组中。当需要删除和重建对象是,只需要声明一个对象引用数组中的这个对象即可。这比重新new一个对象出来要快多了。
位运算有时候会更快:位运算的计算方法和CPU的处理数据本质上是一致的,跟CPU讲它的“母语”,它“理解”起来,做起来自然就更快了!
如果你需要设置一个空数组,有一个方便的办法去选择,就是通过设置它的length属性为0
或者你会认为这么做是不错的选择,原因是它能节省内存,但是事实上这样做的执行速度不如直接new array的效率高
当然,如果你需要在一次循环中清除多于510个数组为空时,用length设置为0的时候会更好
Var declarations on multiple lines vs. Var declarations on a single line
将变量声明在一行中,要比声明多行更好,效率更高
i.e.
var a:int=0, b:int=0, c:int=0;
vs.
var a:int=0;
var b:int=0;
var c:int=0;
Using Xor to swap variables
如果你想去交换变量,但是又不想创建新的变量的时候,可以用xor
Array & Object constructing
构造数组和对象的时候,new Array() and new Object()要比 [] and {}慢3倍的时间
Index Number type for Arrays
数组的数字索引类型
ist[int(0)] 比list[0]要快
尽量最小化函数的参数个数
用c语言实现钟表
1. 引入所需的头文件:你需要引入一些头文件来实现程序的功能,例如 stdio.h、stdlib.h、time.h 等。
2. 定义程序的数据结构:你可以定义一个结构体来表示钟表的时间,包括时、分、秒等字段。
3. 获取当前时间:使用 time 函数获取当前系统时间,并将其转换为时、分、秒等字段。
localTime->tm_sec);
22.
23.
// 暂停一秒钟
Байду номын сангаас
24.
sleep(1);
25. }
26.
27. return 0;
28. }
29. 这个程序会不断获取当前系统时间,并输出格式为"时:分:秒"的钟表界面。程序会每 秒钟更新一次时间,并在终端上显示。你可以根据需要进行适当的修改和扩展,例
time_t currentTime = time(NULL);
17.
struct tm *localTime = localtime(¤tTime);
18.
19.
// 输出钟表界面
20.
system("clear"); // 清屏(适用于 Linux 和 Mac)
21.
printf("%02d:%02d:%02d\n", localTime->tm_hour, localTime->tm_min,
7. 下面是一个简单的 C 语言实现钟表的代码示例:
8. c 复制代码
9. #include <stdio.h>
10. #include <stdlib.h>
AS3常用代码
flash常用代码!(精)flash, 代码flash AS3的全屏代码:this.stage.displayState=StageDisplayState.FULL_SCREEN; 退出代码:tc_btn.addEventListener(MouseEvent.CLICK, tuichu);//给overbtn这个按钮添加鼠标点击执行tuichu函数的侦听function tuichu(event:MouseEvent):void {fscommand("quit");//鼠标点击执行tuichu时swf退出}时间轴上停止代码:this.stop()按钮代码:红色代码为自定义函数,同一按钮中相同,不同按钮必须不同以区别开来。
播放和停止bf_btn.addEventListener(MouseEvent.CLICK,work1);function work1(event:MouseEvent){this.play()}tz_btn.addEventListener(MouseEvent.CLICK,work2);function work2(event:MouseEvent){this.stop()}跳转代码shou_btn.addEventListener(MouseEvent.CLICK,work1);function work1(event:MouseEvent){gotoAndStop("首页");}tz_btn.addEventListener(MouseEvent.CLICK,work2);function work2(event:MouseEvent){gotoAndPlay(1);}逐帧代码:xy_btn.addEventListener(MouseEvent.CLICK,work1);function work1(event:MouseEvent){this.nextFrame()}Sy_btn.addEventListener(MouseEvent.CLICK,work2);function work2(event:MouseEvent){this.prevFrame()}按钮控制影片剪辑tz_btn.addEventListener(MouseEvent.CLICK,work1);function work1(event:MouseEvent){this.ai_mc.gotoAndPlay(3)}按钮暂停代码;(1)控制主场景暂停的方法是,在舞台上建立个播放暂停按钮,起名pause_btn。
as3的Timer类学习实例类库
public class r{
import flash.events.TimerEvent;
import flash.utils.Timer;
private static var timer:Timer;
public static function beginTimerFunc():void{
timer.addEventListener(TimerEvent.TIMER, MyTimer.onTimerHandler);
timer.start();
}
private static function onTimerHandler(event:TimerEvent):void{
package{
/**
* actionScript3.0的flash.utils.Timer计时器学习
* @author xuechong 10/21/2010 flex4.0 actionScript3.0
* 调用方式: MyTimer.beginTimerFunc();
trace(timer.currentCount); //计时器从0开始后触发的总次数。如果已重置了计时器,则只会计入重置后的触发次数
}
}
}
timer = new Timer(100, 1); //一参表示从此时过多少时间(毫秒)开始执行计时器,二参表示指定执行的次数(为0时表示无数次)
timer.delay = 1000; //计时器的执行频率,即隔多少时间执行一次,单位为毫秒,默认为1000毫秒
timer.repeatCount = 0; //指定计时器总共执行多少次,即重新设置new Timer的二参,即动态改变间隔时间功能
再学AS3(三):动态绘制钟表
再学AS3(三):动态绘制钟表知识点:1、动态画圆:实际上圆的边线就是无数个小圆点的集合,也就是这些小圆点一个一个地显示便形成了大圆的边线。
下面是小圆点的坐标X=Math.cos(j1 / 180 * Math.PI) * 100 + w;Y=Math.sin(j1 / 180 * Math.PI) * 100 + h;j1++;且坐标随着j1的改变而改变。
2、进一步学习TIMER类;3、动态画直线(让直线一点一点地显示出来);下面是动态绘制的秒针语句:秒针.graphics.lineStyle(1.5,0x00CCCC);秒针.graphics.moveTo(0,0);秒针.graphics.lineTo(0,-j4);j4++;秒针.x=w;秒针.y=h;4、注意钟表中指针的坐标设定(不然就与实际指针走的方向不一致),见第3点中。
5、使绘制的钟表居于舞台中央,首先设定变量值,如下:var w:Number=stage.stageWidth/2;var h:Number=stage.stageHeight/2;然后再调用。
(否则你改变舞台的大小时就会错位)var w:Number=stage.stageWidth/2; var h:Number=stage.stageHeight/2; var半径:Sprite= new Sprite(); addChild(半径);var外圆:Sprite= new Sprite(); addChild(外圆);var内圆:Sprite= new Sprite(); addChild(内圆);var表格:Sprite= new Sprite(); addChild(表格);var时针:Sprite= new Sprite(); addChild(时针);var分针:Sprite= new Sprite(); addChild(分针);var秒针:Sprite= new Sprite(); addChild(秒针);//画圆心varyx:Sprite=new Sprite;yx.graphics.beginFill(0x00CCCC); yx.graphics.drawCircle(w,h,5); yx.graphics.endFill();addChild(yx);//申明变量var X:Number=0;var Y:Number=0;var X1:Number=0;var Y1:Number=0;var X2:Number=0;var Y2:Number=0;var j1:uint= 0;var j2:uint=0;var j3:uint=0;var j4:uint=0;var j5:uint=0;var j6:uint=0;var画外圆计时:Timer=new Timer(10,360);var画内圆计时:Timer=new Timer(10,360);var画表格计时:Timer=new Timer(200,12);var画秒针计时:Timer=new Timer(10,90);var画分针计时:Timer=new Timer(10,75);var画时针计时:Timer=new Timer(10,60);画外圆计时.start();画外圆计时.addEventListener(TimerEvent.TIMER,画外圆);画外圆计时.addEventListener(TimerEvent.TIMER_COMPLETE,画外圆完成); function 画外圆(event:TimerEvent):void {X=Math.cos(j1 / 180 * Math.PI) * 100 + w;Y=Math.sin(j1 / 180 * Math.PI) * 100 + h;j1++;外圆.graphics.beginFill(0xAAAAAA);外圆.graphics.drawCircle(X, Y, 1.5);外圆.graphics.endFill();}function 画外圆完成(event:TimerEvent):void {画内圆计时.start();画内圆计时.addEventListener(TimerEvent.TIMER,画内圆);画内圆计时.addEventListener(TimerEvent.TIMER_COMPLETE,画内圆完成);}function 画内圆(event:TimerEvent):void {X1=Math.cos(j2 / 180 * Math.PI) * 92 + w;Y1=Math.sin(j2 / 180 * Math.PI) * 92 + h;j2++;内圆.graphics.beginFill(0x999999);内圆.graphics.drawCircle(X1, Y1, 1.5);内圆.graphics.endFill();半径.graphics.lineStyle(3,0x000000);半径.graphics.moveTo(w,h);半径.graphics.lineTo(X1,Y1);}function 画内圆完成(event:TimerEvent):void {画表格计时.start();画表格计时.addEventListener(TimerEvent.TIMER,画表格);画表格计时.addEventListener(TimerEvent.TIMER_COMPLETE,画表格完成); }function 画表格(event:TimerEvent):void {X2=Math.cos(j3 / 180 * Math.PI) * 80 + w;Y2=Math.sin(j3 / 180 * Math.PI) * 80 + h;j3+=30;表格.graphics.beginFill(0x00CCCC);表格.graphics.drawCircle(X2, Y2, 2);表格.graphics.endFill();}function 画表格完成(event:TimerEvent):void {画秒针计时.start();画秒针计时.addEventListener(TimerEvent.TIMER,画秒针);画秒针计时.addEventListener(TimerEvent.TIMER_COMPLETE,画秒针完成); }function 画秒针(event:TimerEvent):void {//画秒针秒针.graphics.lineStyle(1.5,0x00CCCC);秒针.graphics.moveTo(0,0);秒针.graphics.lineTo(0,-j4);j4++;秒针.x=w;秒针.y=h;}function 画秒针完成(event:TimerEvent):void {画分针计时.start();画分针计时.addEventListener(TimerEvent.TIMER,画分针);画分针计时.addEventListener(TimerEvent.TIMER_COMPLETE,画分针完成); }function 画分针(event:TimerEvent):void {//画分针分针.graphics.lineStyle(3,0x00AAAA);分针.graphics.moveTo(0,0);分针.graphics.lineTo(0,-j5);j5++;分针.x=w;分针.y=h;}function 画分针完成(event:TimerEvent):void {画时针计时.start();画时针计时.addEventListener(TimerEvent.TIMER,画时针);}function 画时针(event:TimerEvent):void {//画时针时针.graphics.lineStyle(4,0x008888);时针.graphics.moveTo(0,0);时针.graphics.lineTo(0,-j6);j6++;时针.x=w;时针.y=h;}//画针动起来stage.addEventListener(Event.ENTER_FRAME,gx); function gx(e:Event):void {varsj:Date=new Date();varhm:uint=sj.getMilliseconds();var m:uint=sj.getSeconds();var f:uint=sj.getMinutes();var s:uint=sj.getHours();秒针.rotation =(m+hm/1000)*6;分针.rotation =f* 6+m*0.1;时针.rotation =s * 30 +f * 0.5;}。
flash AS代码 时钟 (2)
一、时钟:需要用到动态文本,用于显示年、月、日、时、分、秒等动态信息,需要给每个动态文本设定一个变量名,日历是使用了窗口—>组件—>User Interface中的DateChooser,闹钟设定的组件是User Interface中的NumericStepper,需要给每个NumericStepper组件设置一个实例名称,便于读取其中设定的值。
闹钟声音的设置:导入声音文件到库面板,然后在库面板中选中声音文件,点击鼠标右键,在弹出菜单中选“链接”,在弹出窗口中选中“为ActionScript导出”,输入一个标识符。
1、创建一个新层,在第一个关键帧中加入如下代码onEnterFrame = function () {var now:Date = new Date();var year = now.getFullYear();var month = now.getMonth();var day = now.getDate();var week = now.getDay();var hour = now.getHours();var minute = now.getMinutes();var second = now.getSeconds();_global.flag = true; //缺省时闹钟设定为关闭//首先获得系统的时,分,秒,年、月、日hc._rotation = hour*30; //hc为时针原件mc._rotation = minute*6; //mc为分针原件sc._rotation = second*6; //sc为秒针原件/*小时:一圈是360度,共12小时,每一小时30度分钟:一圈是360度,共60分钟,每一分钟6度秒钟:一圈是360度,共60秒钟,每一秒钟6度*/hn = hour; //hn为显示小时数的动态文本的变量名称mn = minute;sn = second;wn = week;yt = year;mt = month+1;dt = day;gugu = new Sound();gugu.attachSound("闹铃");if (flag == false){ //设定闹钟开关打开if (hn == hh.value && mn == mm.value && sn == ss.value){ //hh、mm、ss为设定闹钟的组件//的实例名称gugu.start();}}delete now; //删除now变量,以获取当前时间的新的值if(wn == 0) wn = "星期天";if(wn == 1) wn = "星期一";if(wn == 2) wn = "星期二";if(wn == 3) wn = "星期三";if(wn == 4) wn = "星期四";if(wn == 5) wn = "星期五";if(wn == 6) wn = "星期六";if (hour <10) {hn = "0"+ hn;}if (minute <10) {mn = "0"+ mn;}if (second <10) {sn = "0"+ sn;}if (month <10) {mt = "0"+ mt;}if (day <10) {dt = "0"+ dt;}};2、闹钟设定按钮on (release) {flag = false;}3、闹钟取消按钮on (release) {flag = true;}二、动画控制1、动画选择按钮(ani为舞台元件的名称)on (release) {unloadMovie(ani);loadMovie("ball.swf", ani);ani._x = -50;ani._y = 20;}2、播放按钮on (release) {ani.play();}3、停止按钮on (release) {ani.stop();}。
as3 settimeout 简单写法
文章标题:深度解析AS3中setTimeOut的简单写法在AS3编程中,setTimeOut是一种常用的延迟执行函数,它可以让我们在指定的时间后执行某段代码。
然而,对于初学者来说,对于setTimeOut的正确使用可能会感到困惑,特别是在简单写法方面。
本文将对AS3中setTimeOut的简单写法进行深入探讨,旨在让读者更深入地理解并掌握这一重要的编程技巧。
1. setTimeOut的简单使用方法在AS3中,setTimeOut可以通过以下简单的写法来使用:```javascriptvar delay:uint = 1000; // 设置延迟时间,单位为毫秒var callBack:Function = function():void {// 在这里编写需要延迟执行的代码};setTimeout(callBack, delay);```2. setTimeOut的深度解析接下来,让我们分步对上面的简单写法进行深度解析。
2.1 设置延迟时间在上面的代码中,我们首先定义了一个delay变量,它用来指定代码延迟执行的时间。
对于初学者来说,要注意延迟时间的单位是毫秒,因此在设置延迟时间时需要进行转换。
在实际应用中,我们可以根据具体需求来调整延迟时间,以确保代码执行的时机是符合要求的。
2.2 编写延迟执行的代码在上面的代码中,我们使用了一个匿名函数来定义需要延迟执行的代码。
这段代码可以是任何合法的AS3代码,包括函数调用、属性赋值、条件判断等。
在实际应用中,我们可以根据具体需求来编写需要延迟执行的代码,以实现特定的功能和逻辑要求。
3. 总结和回顾通过以上对AS3中setTimeOut简单写法的深入探讨,我们可以看到,正确使用setTimeOut不仅需要设置延迟时间,还需要编写需要延迟执行的代码。
只有深入理解和掌握了这一点,我们才能在实际编程中正确、灵活地使用setTimeOut来实现各种功能和逻辑。
4. 个人观点和理解作为文章写手,我认为掌握AS3中setTimeOut的简单写法对于提高编程效率和质量是非常重要的。
flash as3获取系统时间
var date:Number=nowdate.getDate();
//获取当前日期
var day:Number=nowdate.getDay();
//获取当年的星期
var hour:Number=nowdate.getHours();
//获取当前小时
var minute:Number=nowdate.getMinutes();
//获取当前的分钟
var second:Number=nowdate.getSeconds();
//获取当前的秒钟
}
timelist();
setInterval(timelist, 1000);
as3.0的写法
------------------------------------------------------------------
function timelist() {
var nowdate:Date = new Date();
//创建新的日期对象,用来获取现在的时间
var second:Number = nowdate.getSeconds();
//获取当前的秒钟
trace("今天是"+year+"年"+month+"月"+date+"日"+"星期"+day+"现在时刻"+hour+":"+minute+":"+second);
AS3菜鸟教程
一、了解类一直想写个关于AS3.0的教程,但公司太忙都没时间写,最近看到群里有些朋友对3.0还不是很了解,所以从现在开始抽时间写点教程,从基本的东西开始.很多人还习惯用2.0去写一些东西,我已经有半年多没用2.0,很多2.0的习惯不能带到3.0中来,比如说在MC或BUTTON 上去写代码,当然3.0 里面还是可以在帧上写代码(这里用到的版本是FLASH CS3,FLEX对于初学者来说还不适合),但要想把AS学好,不管是2.0还是3.0都应该用类的方式来写代码.现在来写一个简单的类,了解一下类的结构:package{public class MyClass{public function MyClass(){}}}这里是一个类的简单结构,package是包的意思,学过JAVA的朋友应该知道这个概念,其实说简单点就是这个类文件所放的位置,假设现在我们这个项目是放在d:\exam这个文件夹里面,那么我们刚才写的类直接保存在exam这个文件夹里面,取名叫MyClass.as就可以了(注意:类的文件名应该跟类名一样),因为现在package后面没有任何东西,如果代码写成这样:package net.smilecn{public class MyClass{public function MyClass(){}}}那么MyClass.as就应该放在d:\exam\net\smilecn这个路径下面.public class MyClass : 这里是表示我们要建的这个类的名字是MyClass,这个名字可以随便起,习惯上以大写开头public function MyClass(){} : funciton 代表一个方法名,可以说是函数,跟类名相同的方法,我们称为构造函数,就是这个类被实例化时执行的函数,现在我们在把代码改一下:package net.smilecn{public class MyClass{public function MyClass(){trace("这个我写的第一个类");}}}我们在d:\exam下建立一个FLA文件,在第一帧写如下代码:import net.smilecn.MyClass;var myClass:MyClass = new MyClass();那么在输出面板里就会看到“这个我写的第一个类” 这段信息了,import net.smilecn.MyClass:导入我们的类(类在使用前要导入net.smilecn是包名,MyClass是类名)var myClass:MyClass = new MyClass() : 实例化MyClass这个类(实例化的时候会执行构造函数,那么就会执行trace 这句代码)今天就到这里,下节继续讲解类的使用.二、包概念,构造函数着上一节的内容,上一节中我们建了一个简单的类,讲解了包的概念,构造函数的概念,接下来再看看成员常、变量和成员函数的概念,再来看一段代码:package net.smilecn{public class MyClass{public const PI:Number = 3.1415926;public var r:Number;private var s:Number;public function MyClass(){trace("这个我写的第一个类");}}这里我们在以前的基础上增加了几句代码,const是定义常量,var是定义变量,所谓的常量就是永远不能改变的量,变量就是能够改变的量;public、private是属性关键字,在AS3中属性关键字有这样几个:public:指定类、变量、常量或方法可用于任何调用者private:指定变量、常量或方法仅可供声明或定义它的类使用protected:指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类internal:指定类、变量、常量或函数可用于同一包中的任何调用者这里我们先重点看一下public、private这两个属性关键字,从字面上理解public是公共的意思,说简单点就是任何地方都可以调用,private是私有的意思,就是说只有这个类中才可以调用,我们用一个例子做一个简单的说明,还是在上一节中我们用的FLA文件中的第一帧加上这个的代码:import net.smilecn.MyClass;var myClass:MyClass = new MyClass();myClass.r = 3;//正确myClss.s = 18;//错误可以看到因为r声明为public,所以我们在外部调用是正确的,s声明为private,所以不直接在外部访问s这个变量,这就是public和private的区别,那我们要在外部改变s的值应该怎么做呢,我们可以这样做,在来修改MyClass类:package net.smilecn{public class MyClass{public const PI:Number = 3.1415926;public var r:Number;private var s:Number;public function MyClass(){trace("这个我写的第一个类");}public function setSValue(value:Number):void{s = value;}}}这样我们通过一个公共方法(方法就是函数的意思)设置了s的值,在FLA文件中这样调用:myClass.setSValue(18);就可以了,当然跟其它语言一样,我们也可以用get和set方法来读取或写入private变量的值:package net.smilecn{public class MyClass{public const PI:Number = 3.1415926;public var r:Number;private var s:Number;public function MyClass(){trace("这个我写的第一个类");}public function set sValue(value:Number):void{s = value;}public function get sValue():Number{return s;}}}我们在调用的时候就可以用这样的语句了:myClass.sValue =18;(当使用过set后可以这样操作)var a = myClass.sValue;(当使用过get后可以这样操作)下节继续!三、类的继承这一节,我们讲到一个我们用的比较多的一个概念—-继承.继承是指一种代码重用的形式,允许程序员基于现有类开发新类。
Flash AS 实例进阶 制作时钟实现代码
基本思路①作3 个指针MC ,分别按不同的速度旋转,实现时钟效果。
②若要拖拽效果,则要把12 个数字分别作成MC 。
然后作鼠标跟随。
新知识点① Date 类的方法的应用:复制代码代码如下:MY Date= new Date()// 构造一个新的Date 对象Date.getHours()// 按照本地时间返回小时值。
Date.getMinutes()// 按照本地时间返回分钟值。
Date.getSeconds()// 按照本地时间返回秒数。
Date.getMilliseconds()// 按照本地时间返回毫秒值。
②一种缓冲公式应用实例说明①此时钟实例是由数字和指针共15 个MC 组成,并又是嵌套在MC “ biao” 中,各MC 的注册点一定要确定准确,②分别将MC “ biao” 放在主时间轴的 3 个帧上,为各帧上的MC 编写不同的脚本。
③设一按钮用于各帧之间的跳转编写动作脚本①在第1 帧到第 2 帧的MC 上输入:复制代码代码如下:onClipEvent (enterFrame) {// 以影片剪辑帧频不断触发的动作s = new Date();// 创健日期对象Hours = s.getHours();// 读取系统时间- 时if (12<Hours) {Hours = Hours-12;}// 把24 小时制转换为12 小时制this.b13._rotation = ((Hours*30)+(s.getMinutes()/2)); // 把时和分转换为旋转角度this.b14._rotation = (6*s.getMinutes()); // 把获取的系统时间分转换为旋转角度this.b15._rotation = (6*s.getSeconds()); // 把获取的系统时间秒转换为旋转角度}②在第3 帧的MC 上输入:复制代码代码如下:onClipEvent (load) {变量初始化for (i=1; i<16; i++) {this["b"+i].xl = 0;this["b"+i].yl = 0;}}onClipEvent (enterFrame) {s = new Date();Hours = s.getHours();if (12<Hours) {Hours = Hours-12;}this.b13._rotation = ((Hours*30)+(s.getMinutes()/2));this.b14._rotation = (6*s.getMinutes());this.b15._rotation = (6*s.getSeconds());this.b1._x = _xmouse;this.b1._y = _ymouse+120; // 让第一个MC 跟随鼠标移动,并要MC低于鼠标120个像素。
as3.0常用代码
角度 = 弧度 * 180 / Math.PI
计算两点间距离:
dx = x2 – x1;
dy = y2 – y1;
dist = Math.sqrt(dx*dx + dy*dy);
缓动公式:
sprite.x += (targetX - sprite.x) * easing;//easing为缓动系数变量
波形运动:
public function onEnterFrame1(event:Event):void {
ball.y=centerScale+Math.sin(angle)*range;
angle+=speed;
}
心跳:
public function onEnterFrame1(event:Event):void {
ball.scaleX=centerScale+Math.sin(angle)*range;
ball.scaleY=centerScale+Math.sin(angle)*range;
angle+=speed;
}
圆心旋转:
public function onEnterFrame(event:Event):void {
blue = color24 & 0xFF;
alpha = color32 >> 24;
red = color32 >> 16 & 0xFF;
green = color32 >> 8 & 0xFF;
blue = color232 & 0xFF;
As3快速入门(1)—编程基础
计算机程序的用途首先,对计算机程序的概念及其用途有一个概念性的认识是非常有用的。
计算机程序主要包括两个方面:∙程序是计算机执行的一系列指令或步骤。
∙每一步最终都涉及到对某一段信息或数据的处理。
通常认为,计算机程序只是您提供给计算机并让它逐步执行的指令列表。
每个单独的指令都称为语句。
正如您将在本手册中看到的那样,在 ActionScript 中编写的每个语句的末尾都有一个分号。
实质上,程序中指令所做的全部事情是操作存储在计算机内存中的一些数据位。
举一个简单的例子,您可能指示计算机将两个数字相加并将结果存储在计算机的内存中。
举一个较复杂的例子:假设在屏幕上绘制了一个矩形,您希望编写一个程序将它移动到屏幕上的其它位置。
计算机跟踪该矩形的某些信息—该矩形所在位置的 x 和 y 光标、其宽度和高度以及颜色等等。
这些信息位中的每一位都存储在计算机内存中的某个位置。
为了将矩形移动到其它位置,程序将采取类似于“将 x 坐标更改为 200;将 y 坐标更改为150”的步骤(也就是说,为 x 和 y 坐标指定新值)。
当然,计算机的确会对这些数据进行某些处理,以便切实地将这些数字转变为显示在计算机屏幕上的图像;但考虑到我们所感兴趣的详细程度,我们只要知道“在屏幕上移动矩形”这一过程确实只涉及更改计算机内存中的数据位就足够了。
变量和常量由于编程主要涉及更改计算机内存中的信息,因此在程序中需要一种方法来表示单条信息。
变量是一个名称,表示计算机内存中的值。
在编写语句来操作值时,编写变量名来代替值;只要计算机看到程序中的变量名,就会查看自己的内存并使用在内存中找到的值。
例如,如果两个名为 value1 和 value2 的变量分别包含一个数字,则可以编写如下语句将这两个数字相加:value1 + value2在实际执行这些步骤时,计算机会查看每个变量中的值,并将这些值相加。
在 ActionScript 3.0 中,一个变量实际上包含三个不同部分:∙变量的名称∙可以存储在变量中的数据的类型∙存储在计算机内存中的实际值刚才我们讨论了计算机如何将名称用作值的占位符。
as3.0编程-编程基础
Action Script3.0事件机制
Flash ActionScript 3.0
对象
事件
事件处理函数
舞台
sbtn.addEventListener(MouseEvent.CLICK,stopf );
stop
play
function stopf(e:MouseEvent):void{
stop(); }
代码编辑窗口:【动作】窗口
代码执行顺序
1. 帧的播放顺序:按时间轴的先后顺序执行代码
Flash ActionScript 3.0
2. 图层的加载顺序:在同一时间轴而不图层中,同一帧上的代码由上而下的执行。
代码基本规范
Flash ActionScript 3.0
1. AS代码区分大小写。 2. AS每行以“ ; ”结束。 3. AS注释语句有两种:// 适合注释单行 ;/* */适合注释多行。 4. 使用“ . ”语法:一是表示路径,二是用来连接对象和对象属性与方法。 5. 使用[ ]语法,也称数组符号。 6. 标点符号必须是英文状态下输入
Name:sbtn Name:pbtn
pbtn.addEventListener(MouseEvent.CLICK,playf ); function playf(e:MouseEvent):void{ play(); }
Trace函数
Flash ActionScript 3.0
使用目的:将运算结果、变量值显示在“输出”对话框中。 说 明:
舞台
Flash ActionScript 3.0
显示对象(Display Object):指flash中所有可视的元素,图形、按钮、补间动 画、文本等都是显示对象。
Flash as3 日期时间的学习
第三,您可以将多个数值参数传递给 Date() 构造函数。该构造函数将这些 参数分别视为年、月、日、小时、分钟、秒和毫秒, 并将返回一个对应的 Date 对象。 var date:Date = new Date(2012, 0, 1, 0, 0, 0, 0); 第四,您可以将单个字符串参数传递给 Date() 构造函数。该构造函数将尝 试把字符串分析为日期或时间部分,然后返回对应的 Date 对象。(不常用) var nextDay:Date = new Date(Mon May 1 2006 11:30:00 AM); 获取时间值 // 实例化 当前日期时间对象 var date:Date = new Date(); // 显示当前日期时间 timer.text = 当前时间:+date.fullYear+年+(date.month+1)+月+date.date+日 +date.hours+:’+date.minutes+:’+date.seconds;
trace(getTimer()); // 返回程序开始运行到现在的毫秒数 重要 以上就是我们给大家介绍的 Flash as3 日期时间的内容了,希望大家学业有 成,工作顺利
关于定时器(Timer 类)的使用 var mytime:Timer = new Timer(1000, 60); // 间隔一秒,执行 60 次,第二次 参数不写的话,标识一直执行 mytime.addEventListener(TimerEvent.TIMER,settimers); // 添加监听时间 每 次执行都运行的函数 mytime.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); // 60 次执行完成后,执行的函数 mytime.start(); // 启动定时器 其他常用方法属性(重要) // 实例化 当前日期时间对象 var date:Date = new Date(); trace(date.time); // 返回时间戳 (毫秒)重要 trace(Date.parse(2012/06/01 12:05:52′)); // 字符串转时间戳 重要 trace(date.timezoneOffset()); // 本地和 UTC 时间差 单位分钟 重要
As3.0制作一个炫酷小时钟
As3.0制作一个炫酷小时钟制作环境:FLASH CS3以上版本步骤:(1)将以下代码复制到动作面版中;(2)按CTRL+ENTER运行import flash.display.MovieClip;import flash.text.TextField;import flash.text.TextFormat;import flash.filters.BevelFilter;//创建一个时间文本var txt:TextField =new TextField ();var txtf:TextFormat = new TextFormat();txtf.font = "黑体";txtf.size = 24;txtf.color = 0x0000ff;addChild(txt);txt.defaultTextFormat = txtf;txt.filters = [new GlowFilter(0xFF00FF,0.5,6,6,6)];//生成径向渐变球function ball(r:int,col:uint ):MovieClip{var mc:MovieClip =new MovieClip ();mc.graphics.beginGradientFill(GradientType.RADIAL,[col,0x000000],[1,1],[0,255]);mc.graphics.drawCircle(0,0,r);mc.graphics.endFill();return mc;}//生成三层环形球for (var i:int=0; i<12; i++){var mc1 = ball(20,0x00ffff);var mc2 = ball(30,0x000000);var mc3 = ball(20,0x00ffff);addChild(mc1);addChild(mc2);addChild(mc3);mc1.z = -90;mc2.z = 0;mc3.z = 90;mc1.x=mc2.x=mc3.x=150*Math.cos (i*30*Math.PI /180)+275;mc1.y=mc2.y=mc3.y=150*Math.sin (i*30*Math.PI /180)+200; }//生成60个红色小球for (var j:int=0; j<60; j++){var mc4 = ball(4,0xff0000);addChild(mc4);mc4.x=100*Math.cos (j*6*Math.PI /180)+275;mc4.y=100*Math.sin (j*6*Math.PI /180)+200;}//生成以粗细、长度、颜色为参数的线function line(cx:Number ,cd:Number ,ys:uint ):MovieClip {var lin:MovieClip =new MovieClip ();lin.graphics.lineStyle(cx,ys);lin.graphics.moveTo(0,0);lin.graphics.lineTo(0,-cd);return lin;}//实例化时针、分针、秒针,并对齐位置var shiz = line(6,60,0x000000);var fenz = line(4,80,0xff00ff);var miaoz = line(2,160,0x00ff00);addChild(shiz);addChild(fenz);addChild(miaoz);shiz.x = fenz.x = miaoz.x = 275;shiz.y = fenz.y = miaoz.y = 200;//获取当前时、分秒,并使时针、分针、秒针正确旋转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
var second = date.getSeconds();
var weekday = date.getDay();
var week:Array = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
clock.addEventListener(TimerEvent.TIMER,clockFunction);
inputHours_txt.text = "";
inputMinute_txt.text = "";
inputSecond_txt.text = "";
setTime_btn.addEventListener(MouseEvent.CLICK,shezhi);
hourHand_mc.rotation = hourHand * 30 + date.getMinutes() / 2;
}
setTime_btn.addEventListener(MouseEvent.CLICK,shezhi);
function shezhi(event:MouseEvent)
if (hourHand > 12)
{
hourHand -= 12;
}
secondHand_mc.rotation = date.getSeconds() * 6 + date.getMilliseconds() / 160;
minuteHand_mc.rotation = date.getMinutes() * 6 + date.getSeconds() / 10;
hour_txt.text = hour;
minute_txt.text = minute;
second_txt.text = second;
mouth_txt.text = mouth + 1;
year_txt.text = year;
day_txt.text = day;
clock.addEventListener(TimerEvent.TIMER,clockFunction);
clock.start();
function clockFunction(e:TimerEvent):void
{
var date:Date = new Date();
var hourHand = date.getHours();
import flash.events.TimerEvent;
import flash.text.FontType;
var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER,timeUpdate);
timer.start();
function callFunction()
{
var date:Date = new Date();
var year = date.getFullYear();
var mouth = date.getMonth();
var day = date.getDate();
var hour = date.getHours();
var ss:Number = Number(inputSecond_txt.text);
secondHand_mc.rotation = ss * 6;
minuteHand_mc.rotation = mm * 6 + ss / 10;
hourHand_mc.rotation = hh * 30 + mm / 2;
{
clock.removeEventListener(TimerEvent.TIMER,clockFunction);
var hh:Number = Number(inputHours_txt.text);
var mm:Number = Number(inputMinute_txt.text);
}
}
restore_btn.addEventListener(MouseEvent.CLICK,huanyuan);
function huanyuan(ev:MouseEvent)
{
setTime_btn.removeEventListener(MouseEvent.CLICK,shezhi);
weekday_txt.text = week[weekday];
}
callFunction();
fud
{
callFunction();
}
var clock:Timer = new Timer(1000);