荣誉翻译成英语:《Flash AS3.0全代码实现模拟时钟第11703教程》干群共产主义国家名牌大学义务教育编号2012011703

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 14:19:46

干群共产主义国家名牌大学义务教育编号2012011703:
《Flash AS3.0全代码实现模拟时钟第11703教程》

干群共产主义国家名牌大学义务教育编号2012011703
《Flash  AS3.0全代码实现模拟时钟第11703教程》


干群教授:大家好!欢迎你们来访中国参观考察学习!
第11703教程:Flash AS3.0全代码实现模拟时钟

',1)">
',2)">
想学好AS3.0,最重要的还是实践环节,多多将理论付诸实践,这样才能真正的把学到的东西用到实处。记得自己两年前刚开始碰AS的时候,就特别想做一个模拟时钟,别说制作模拟时钟了,就是看懂一段代码也得查好多资料啊!现在对AS有了认识,敢动手实践了,觉得自己还有了一定的进步了!
看效果:
',3)">
新建一个Flash文件,设置其文档类为clockAS3,如下图(最好将Flash的帧频也改下,使出来的影片更舒缓):



我们将时钟分成了两个文档,即clock.as(定义时钟的外表)和clockAS3.as(文档类,添加外表和定义指针)这两个文件。当然我们也可以只定义一个AS文件,我们这样做只是为了让条理更加清晰。
看我写的定义时钟外表的代码:
package {//将代码打包
import flash.display.Sprite;//因为外表是可视对象而且是容器,用Sprite类再合适不过了
import flash.text.TextField;//在时钟里可以写入我们的诸如版权等等信息
import flash.text.TextFieldAutoSize;//为使文字书写时居中,需导入此类
public class clock extends Sprite {//我们将外表定义为clock类
public function clock() {//我为了省事,把所有的代码都写在了构造函数里,大家也可以分成块来写
//------为表盘添加背景------
this.graphics.beginFill(0xAAAAAA);
this.graphics.drawCircle(200,200,150);
this.graphics.endFill();
//------为表盘添加计数------
for (var i=0; i<60; i++) {
var info:Sprite=new Sprite();
if (i%5==0) {
info.graphics.lineStyle(1,0xFFFFFF);
} else {
info.graphics.lineStyle(1,0xFFFF00);
}
info.graphics.moveTo(0,0);
info.graphics.lineTo(150,0);
info.rotation=i*6;
info.x=200;
info.y=200;
addChild(info);
}
//------为表盘添加前景------
var fg:Sprite=new Sprite();
fg.graphics.beginFill(0xAAAA80);
fg.graphics.drawCircle(200,200,140);
fg.graphics.endFill();
addChild(fg);
//-----显示12点的指示-----
var show12:TextField=new TextField();
show12.selectable=false;
show12.autoSize=TextFieldAutoSize.CENTER;
show12.text="XII";
show12.x=200-show12.width/2;
show12.y=60;
addChild(show12);
//-----显示3点的指示------
var show3:TextField=new TextField();
show3.selectable=false;
show3.autoSize=TextFieldAutoSize.CENTER;
show3.text="III";
show3.x=330-show3.width/2;
show3.y=190;
addChild(show3);
//-----显示6点的指示------
var show6:TextField=new TextField();
show6.selectable=false;
show6.autoSize=TextFieldAutoSize.CENTER;
show6.text="VI";
show6.x=200-show6.width/2;
show6.y=320;
addChild(show6);
//-----显示9点的指示------
var show9:TextField=new TextField();
show9.selectable=false;
show9.autoSize=TextFieldAutoSize.CENTER;
show9.text="IX";
show9.x=65;
show9.y=190;
addChild(show9);
//------添加背景文字------
var AuthorInfo:TextField=new TextField();
AuthorInfo.selectable=false;
AuthorInfo.autoSize=TextFieldAutoSize.CENTER;
AuthorInfo.text="有梦可依制作";
AuthorInfo.x=200-AuthorInfo.width/2;
AuthorInfo.y=210;
addChild(AuthorInfo);
}
}
}
好了,我们把时钟外表做好了,看下效果(当然是现将它作为文档类测试)


package{
import flash.events.Event;//因为要用到ENTERFRAME事件,要导入他所在的类包
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
public class clockAS3 extends Sprite{
public function clockAS3(){
var surface:clock=new clock();//在一开始我们就把外表给添加上了
addChild(surface);
//------添加日期,没有使用事件,我偷了个懒,呵呵------
var myTime:Date=new Date();
var dat:TextField=new TextField();
dat.selectable=false;
dat.autoSize=TextFieldAutoSize.CENTER;
dat.text="今天是"+myTime.getFullYear()+"年"+(myTime.getMonth()+1)+"月"+myTime.getDate()+"日\n";
switch(myTime.getDay()){
case 0:dat.appendText("\t\t 星期日");break;
case 1:dat.appendText("\t\t 星期一");break;
case 2:dat.appendText("\t\t 星期二");break;
case 3:dat.appendText("\t\t 星期三");break;
case 4:dat.appendText("\t\t 星期四");break;
case 5:dat.appendText("\t\t 星期五");break;
case 6:dat.appendText("\t\t 星期六");break;
}
dat.x=200-dat.width/2;
dat.y=230;
addChild(dat);
//------添加秒针------
var sec:Sprite=new Sprite();
sec.graphics.lineStyle(1,0xFFFFFF);
sec.graphics.moveTo(0,0);
sec.graphics.lineTo(120,0);
sec.x=200;
sec.y=200;
addChild(sec);
//------添加分针------
var min:Sprite=new Sprite();
min.graphics.lineStyle(2,0xFFFFFF);
min.graphics.moveTo(0,0);
min.graphics.lineTo(110,0);
min.x=200;
min.y=200;
addChild(min);
//------添加时针------
var hou:Sprite=new Sprite();
hou.graphics.lineStyle(3,0xFFFFFF);
hou.graphics.moveTo(0,0);
hou.graphics.lineTo(90,0);
hou.x=200;
hou.y=200;
addChild(hou);
//------为指针设置角度------
sec.addEventListener(Event.ENTER_FRAME,showSec);
min.addEventListener(Event.ENTER_FRAME,showMin);
hou.addEventListener(Event.ENTER_FRAME,showHou);
//------在表盘中间添加一个小点遮住指针,不能定义在外表上~------
var bc:Sprite=new Sprite();
bc.graphics.beginFill(0x000000);
bc.graphics.drawCircle(200,200,5);
bc.graphics.endFill();
addChild(bc);
}
private function showSec(e:Event){
var myTime:Date=new Date();
e.target.rotation=myTime.getSeconds()*6+myTime.getMilliseconds()/1000*6-90;
}
private function showMin(e:Event){
var myTime:Date=new Date();
e.target.rotation=myTime.getMinutes()*6+myTime.getSeconds()/10-90;
}
private function showHou(e:Event){
var myTime:Date=new Date();
e.target.rotation=myTime.getHours()%12*30+myTime.getMinutes()/10-90;
}
}
}
这一次我们制作了一个非常平面化的,但是完全用代码实现的模拟时钟,看看刚制作的模拟时钟的效果吧!


',4)">
',5)">


干群共产主义国家网易博客网址- http://blog.163.com/heimudan_ok/
环球总裁CEO名人世界网址-http://ganqunqueen.blog.163.com/干群新浪博客网址- http://blog.sina.com.cn/heimudanbest/干群搜狐博客网址- http://heimudan88888.blog.sohu.com/干群皇太后360doc个人图书馆- http://ganqun19691104.360doc.com/
健康长寿是做人最大财富!世界人民是一家人,让我们携手成为好朋友!
干群在此感谢国际互联网网友博友们的大力支持和关心厚爱!!
博客女王创造发明法制新闻PS教程U5教程健康长寿
成功励志奇闻怪事世界名人婚姻家庭国际航空国际时尚
世界儿童世界名画干群皇太后欢迎你们来访我国并留言交流 顶级佛学
☆名博基本技巧☆
☆电脑操作技巧☆
☆电脑专家门诊☆
☆电脑系统加速☆
☆制作个性印章☆
☆制作精彩电影☆
☆神秘魔方相册☆
☆闪动边框制作☆
☆制作精美相册☆
☆透明睡衣制作☆
☆制作闪亮紫钻☆
☆飞翔气球制作☆
☆质感美女油画☆
☆怀旧照片制作☆
☆实用网页制作☆
☆光影魔术日历☆
☆图片制作水波☆
☆名博技巧经典☆
☆各种表格制作☆
☆特效个性签名☆
☆图片自由舞动☆
☆应用编程制作☆
☆快速还原系统☆
☆图片艺术特效☆
☆制作个性音乐☆
☆快捷办公技巧☆
☆博客日志背景☆
☆屏幕截图方法☆
☆制作发光文字☆
☆释放磁盘空间☆
☆制作美食效果☆
☆鼠标助理弹琴☆
☆精美动画素材☆
☆制作精美邮票☆
☆美图动画欣赏☆
☆绘图软件技巧☆
☆特效动态文字☆
☆文字扫光处理☆
☆移动硬盘分区☆
☆美妙音画背景☆
☆提高博客票房☆
☆网易颜色代码☆