作者Jedic (真诚的勇者)
看板Flash
标题Re: [求救]swf档转fla档
时间Fri Apr 22 09:28:37 2005
※ 引述《soso1 (笨笨)》之铭言:
: 小弟线在有这一个swf档案http://w3.nctu.edu.tw/~u9311085/clock124.swf
: 想参考他的原始档
: 来学script和一些动画的制作方法
: 希望知道如何转原始档的大大帮忙<(_ _)>
: 大感激
: 小弟很急><
: 麻烦各位大大了
: 再次感谢^^
参考看看吧
一开启抓系统时间
可拖曳分针调整时间
但是我没做数字显示
要的话再放进文字框就好了
或者再加上reset成系统时间的按钮
场景上放时针(hourPointer)分针(minPointer)秒针(secPointer)的MC和时间刻度盘
所有code都写在场景第一格,场景也只有一格
刚从一般时钟做成可调整时间的钟时
遭遇了一些问题
实际自己做做看的话会发现很有意思喔
有些code是用来整点校正用的
所以所有旋转度数都先存在变数里
而非惯例上直接抓取指针MC的_rotation
//令时针的原点等於分针
hourPointer._x = minPointer._x;
hourPointer._y = minPointer._y;
//调整时间後与系统时间之间的差距
var baseHours = 0;
var baseMinutes = 0;
//时间与分针的旋转度数
var minRotation;
var hoursRotation;
//
myDate = new Date();
myHours = myDate.getHours();
if (myHours>12) {
myHours = myHours-12;
}
myMinutes = myDate.getMinutes();
minRotation = myMinutes*6;
if (minRotation>=360) {
minRotation = minRotation-360;
}
minPointer._rotation = minRotation;
//时针的旋转度数要加上分针带动的量
hoursRotation = myHours*30+int(myMinutes/2);
hourPointer._rotation = hoursRotation;
var mySec;
//决定时针是否跟随分针被拖曳时旋转的变数
var follow = 0;
//
minPointer.onPress = function() {
follow = 1;
};
minPointer.onRelease = minPointer.onReleaseOutside=function () {
follow = 0;
};
//
minPointer.onMouseMove = function() {
if (follow == 1) {
prevRotation = minRotation;
minRotation = Math.atan2(_root._ymouse-minPointer._y,
_root._xmouse-minPointer._x)*180/Math.PI+90;
if (minRotation<0) {
minRotation = int((360-Math.abs(minRotation))/6)*6;
} else {
minRotation = int(minRotation/6)*6;
}
if (minRotation>=360) {
minRotation = minRotation-360;
}
minPointer._rotation = minRotation;
if (minRotation*prevRotation>0) {
rotateDrift = minRotation-prevRotation;
if (rotateDrift<-180) {
rotateDrift = 360-Math.abs(rotateDrift);
} else if (rotateDrift>180) {
rotateDrift = 0-(360-rotateDrift);
}
}
if ((minRotation) == 0 or (minRotation == 360)) {
myHours = Math.round(hoursRotation/30);
if (myHours>12) {
myHours = myHours-12;
}
hoursRotation = myHours*30+rotateDrift/12;
} else {
myHours = int(hoursRotation/30);
hoursRotation = hoursRotation+rotateDrift/12;
}
hourPointer._rotation = hoursRotation;
}
};
//所有指针自动前进的涵式
function moveAllPointers() {
if (follow == 0) {
myDate = new Date();
mySec = myDate.getSeconds();
secPointer._rotation = mySec*6;
minRotation = minRotation+0.1;
tempNum = int(minRotation/6)*6;
if (tempNum>=360) {
tempNum = 0;
}
minPointer._rotation = tempNum;
if ((tempNum) == 0 or (tempNum == 360)) {
myHours = Math.round(hoursRotation/30);
} else {
myHours = int(hoursRotation/30);
}
if (myHours>12) {
myHours = myHours-12;
}
hoursRotation = myHours*30+int(tempNum/12);
hourPointer._rotation = hoursRotation;
updateAfterEvent();
}
}
setInterval(moveAllPointers, 1000);
--
宫本武藏的必胜心法:
一、诚心为思想之本。二、忘我以求道。三、遍习诸艺。
四、广涉百业之道。五、了解诸事的利弊得失。六、培养辨别事物的眼光。
七、洞悉肉眼不可见之事。八、留心细节小事。九、不做无功效之事。
※ 编辑: Jedic 来自: 61.66.87.212 (04/22 09:51)