第4節(jié) 三角函數(shù)值計(jì)算
在Flash 中,算術(shù)計(jì)算函數(shù)十分有限,很多函數(shù)計(jì)算都必須手寫很多代碼得以進(jìn)行,這對(duì)一些不太懂編程的朋友來說是一件很痛苦的事情,此實(shí)例提供了一些常用的三角函數(shù)例如正弦和余弦的計(jì)算,表單最終效果如圖4.1所示:
圖4.1 最終效果
1.首先啟動(dòng)Flash,新建一個(gè)影片,設(shè)置影片舞臺(tái)大小為250px*200px(單位為象素),影片背景色為白色.
2.選擇工具箱中的文本工具,在舞臺(tái)上的適當(dāng)位置輸入提示文本"在此輸入角度:",然后還是使用文本工具在右邊繪制一個(gè)文本框,此文本框用來輸入一個(gè)角度值,此角度值可以被轉(zhuǎn)化為相應(yīng)的弧度值,然后在屬性面板中設(shè)置其為輸入文本,文本框變量名為angle,其它相關(guān)設(shè)置如圖4.2所示:
圖4.2 設(shè)置文本框?qū)傩?br>
此時(shí)舞臺(tái)如圖4.3所示:
圖4.3 繪制輸入文本框
3.按照相同的方法在舞臺(tái)的下方輸入提示文字:"在此輸入角度",還是使用文本工具在右邊繪制一個(gè)文本框,此文本框用來輸出和輸入文本框中角度值相對(duì)應(yīng)的弧度值.然后在屬性面板中設(shè)置其為動(dòng)態(tài)文本框,設(shè)置文本變量為output,其它相關(guān)設(shè)置如圖4.4所示;
圖4.4 設(shè)置動(dòng)態(tài)文本框?qū)傩?br>
此時(shí)舞臺(tái)如圖4.5所示;
圖4.5 繪制動(dòng)態(tài)文本框
4.下面制作用來控制角度轉(zhuǎn)換的部分,我們?cè)谝粋€(gè)影片剪輯里實(shí)現(xiàn)這樣的功能.新建一個(gè)影片剪輯元件,命名為trig,進(jìn)入元件的編輯區(qū)后,添加3個(gè)圖層,自上向下分別命名為stop, set values和Action.
選中圖層stop,在第1幀添加Action: stop();
5.選擇圖層set values,在第1幀添加如下Action:
sin0 = 0;
sin1 = .0175;
sin2 = .0349;
sin3 = .0523;
sin4 = .0698;
sin5 = .0872;
sin6 = .1045;
sin7 = .1219;
sin8 = .1392;
sin9 = .1564;
sin10 = .1736;
sin11 = .1908;
sin12 = .2079;
sin13 = .2250;
sin14 = .2419;
sin15 = .2588;
sin16 = .2756;
sin17 = .2924;
sin18 = .3090;
sin19 = .3256;
sin20 = .3420;
sin21 = .3584;
sin22 = .3746;
sin23 = .3907;
sin24 = .4067;
sin25 = .4226;
sin26 = .4384;
sin27 = .4540;
sin28 = .4695;
sin29 = .4848;
sin30 = .5;
sin31 = .5150;
sin32 = .5299;
sin33 = .5446;
sin34 = .5592;
sin35 = .5736;
sin36 = .5878;
sin37 = .6018;
sin38 = .6157;
sin39 = .6293;
sin40 = .6428;
sin41 = .6561;
sin42 = .6691;
sin43 = .6820;
sin44 = .6947;
sin45 = .7071;
sin46 = .7193;
sin47 = .7314;
sin48 = .7431;
sin49 = .7547;
sin50 = .7660;
sin51 = .7771;
sin52 = .7880;
sin53 = .7986;
sin54 = .8090;
sin55 = .8192;
sin56 = .8290;
sin57 = .8387;
sin58 = .8480;
sin59 = .8572;
sin60 = .8660;
sin61 = .8746;
sin62 = .8829;
sin63 = .8910;
sin64 = .8988;
sin65 = .9063;
sin66 = .9135;
sin67 = .9205;
sin68 = .9272;
sin69 = .9336;
sin70 = .9397;
sin71 = .9455;
sin72 = .9511;
sin73 = .9563;
sin74 = .9613;
sin75 = .9659;
sin76 = .9703;
sin77 = .9744;
sin78 = .9781;
sin79 = .9816;
sin80 = .9848;
sin81 = .9877;
sin82 = .9903;
sin83 = .9925;
sin84 = .9945;
sin85 = .9962;
sin86 = .9976;
sin87 = .9986;
sin88 = .9994;
sin89 = .9998;
sin90 = 1;
count = 91;
while (Number(count)<=180) {
set("sin" add count, eval ("sin" add (180 - count)));
count = Number(count)+1;
}
count = 181;
while (Number(count)<=270) {
set("sin" add count, eval ("sin" add (count - 180)) * -1);
count = Number(count)+1;
}
count = 271;
while (Number(count)<=360) {
set("sin" add count, eval ("sin" add (360 - count)) * -1);
count = Number(count)+1;
}
count = 0;
while (Number(count)<=90) {
set("cos" add count, eval ("sin" add (90 - count)));
count = Number(count)+1;
}
count = 91;
while (Number(count)<=180) {
set("cos" add count, eval ("cos" add (180 - count)) * -1);
count = Number(count)+1;
}
count = 181;
while (Number(count)<=270) {
set("cos" add count, eval ("cos" add (count - 180)) * -1);
count = Number(count)+1;
}
count = 271;
while (Number(count)<=360) {
set("cos" add count, eval ("cos" add (360 - count)) );
count = Number(count)+1;
}
上面的代碼設(shè)置不同范圍內(nèi)"整數(shù)角度"的正弦、余弦值,請(qǐng)注意這里是"整數(shù)角度"。
6.回到圖層Action,在第10幀插入關(guān)鍵幀,設(shè)置此幀的標(biāo)簽為Sin ,在此幀添加如下Action:
call("adjustAngle");
output = eval ("sin" add intDegree);
獲得正弦的值并在輸出框"output"中輸出,第1條語句表示調(diào)用標(biāo)簽為"adjustAngle",即第3個(gè)關(guān)鍵幀中的程序,第2條語句表示從輸出框中輸出正弦的值。
7.在第20幀插入關(guān)鍵幀,設(shè)置此幀的標(biāo)簽為Cos,在此幀添加如下Action:
call("adjustAngle");
output = eval ("cos" add intDegree);
表示獲得余弦的值并在輸出框"output"中輸出
在第33幀插入關(guān)鍵幀,設(shè)置此幀的標(biāo)簽為adjustAngle,在此幀添加如下Action:
call("adjustAngle2");
if (Number(intDegree)>360) {
intDegree = intDegree-(int(intDegree/360)*360);
}
if (Number(intDegree)<0) {
if (Number(intDegree)
intDegree = intDegree-(int(intDegree/360)*360);
}
intDegree = Number(intDegree)+360;
}
第1條語句表示調(diào)用標(biāo)簽為"adjustAngle2"的幀,即第4個(gè)關(guān)鍵幀的程序。下面的語句表示:輸入角度大于360或小于0兩種情況下的角度取值。
最后在第43幀插入關(guān)鍵幀,設(shè)置此幀的標(biāo)簽為adjustAngle2,在此幀添加如下Action:
if (Number(arg)>0) {
if (Number(int(Number(arg)+.5))>Number(int(arg))) {
intDegree = int(Number(arg)+.5);
} else {
intDegree = int(arg);
}
} else {
if (Number(int(arg-.5))
intDegree = int(arg-.5);
} else {
intDegree = int(arg);
}
}
以上程序表示:當(dāng)輸入的角度為小數(shù)時(shí),把角度值化為整數(shù)。
8. 接下來制作用來轉(zhuǎn)化角度的按鈕.新建一個(gè)按鈕元件,命名為btn,進(jìn)入元件的編輯區(qū),隨意繪制一個(gè)按鈕即可,根據(jù)自己的喜好來設(shè)置,本例中所繪按鈕如圖4.6所示;
圖4.6 制作控制按鈕
9.回到主場景中,將元件trig拖到工作區(qū)中,在屬性面板中設(shè)置其實(shí)例名為trig,然后分兩次將按鈕元件btn拖到舞臺(tái)中,并分別給每個(gè)按鈕添加如圖4.7所示的提示信息:
圖4.7 設(shè)置按鈕
10.其中正弦按鈕用來將輸入的角度值轉(zhuǎn)化為正弦值,下面的余弦按鈕將角度值轉(zhuǎn)化為余弦值.最后給正弦按鈕添加如下Action;
on (release) {
/trig:arg = angle;
call("/trig:Sin");
output = /trig:output;
}
給余弦按鈕添加如下Action;
on (release) {
/trig:arg = angle;
call("/trig:Cos");
output = /trig:output;
}
------------------------------- · 相關(guān)文檔瀏覽 · --------------------------------------------------------------------- · 熱門文檔瀏覽 · -------------------------------------