1、新建一Flash文档, 文档类型设置为“ActionScript3.0”。
2、钟面的制作。新建一影片剪辑,命名为“Clock”。从文件中导入一张钟面的图片,或者自己制作一个钟面。
3、时针的制作。新建一影片剪辑,命名为“时钟”。利用基本绘图工具制作一个时针图形。
4、分针的制作。新建一影片剪辑,命名为“分针”。利用基本绘图工具制作一个时针图形。
5、秒针的制作。新建一影片剪辑,命名为“秒针”。利用基本绘图工具制作一个时针图形。
6、将图层1重命名为“钟面”,并将影片剪辑“Clock”拖动到主场景中。新建一名为“时针”的图层,将“时针”影片剪辑拖到到主场景并命名
为”sz_mc"。
7、新建一名为“分针”的图层,将“分针”影片剪辑拖到到主场景并命名为"fz_mc"。新建一名为“秒针”的图层,将秒针”影片剪辑拖到
到主场景并命名为“mz_mc"。摆放各个影片剪辑的位置。
代码
var jd = 0, i = 0, mr1, mr2, m, m1, m2, logo, mousex, mousey, cx, cy, shi = 0, prevr = 0, fen = 0;
logo = false;
mr = shizhen._rotation;
//时针旋转角度
shizhen.onPress = function() {
logo = true;
};
shizhen.onRelease = function() {
logo = false;
};
shizhen.onReleaseOutside = function() {
logo = false;
};
shizhen.onMouseMove = function() {
if (logo) {
mousex = _xmouse;
mousey = _ymouse;
cx = mousex-shizhen._x;
cy = mousey-shizhen._y;
mr1 = Math.atan2(cx, cy)*180/Math.PI;
//计算鼠标现在位置与参考元件Y轴的夹角
mr2 = 180-mr1;
//将夹角转换成时针的角度
shizhen._rotation = mr2;
//设置时针角度
jd = int(mr2*10)/10;
//显示时针角度(保留一位小数)
shi = int(mr2/30);
//时
fen = int((mr2*2-int(mr2/30)*60)*10)/10;
//分
fenzhen._rotation = mr2*12;
//分针旋转角度。
}
};
m = fenzhen._rotation;
//分针角度
fenizhen.onPress = function() {
logo = true;
};
fenzhen.onRelease = function() {
logo = false;
};
fenzhen.onReleaseOutside = function() {
logo = false;
};
fenzhen.onMouseMove = function() {
if (logo) {
mousex = _xmouse;
mousey = _ymouse;
cx = mousex-shizhen._x;
cy = mousey-shizhen._y;
m1 = Math.atan2(cx, cy)*180/Math.PI;
//计算鼠标现在位置与元件Y轴的夹角
m2 = 180-m1;
//将夹角转换成分针的角度
fenzhen._rotation = m2;
//设置分针角度
shizhen._rotation = i*30+m2/12;
//时针旋转角度
fen = int(10*m2/6)/10;
//计算时间分
shi = i;
if (i<0) {
shi = 12+i;
}
//时
if (m2/360>=0.9955) {
i = i+1;
//此代码运行有瑕疵,逆时针转动有问题。如果要流畅运转不知怎么写代码。
}
jd = i*360+int(m2*10)/10;
//分针旋转角度(保留一位小数)
}
};
fenzhen.onEnterFrame = function() {
if ((prevr<50 && prevr>0) && (fenzhen._rotation<0 && fenzhen._rotation>-50)) {
i = i-1;
}
prevr = fenzhen._rotation;
//转速要超过帧频才能实现。
};
//逆时针旋转代码,要转快才可以实现。