Re: [求救]swf檔轉fla檔
※ 引述《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)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章