如何使用setInterval在Flash中實(shí)現(xiàn)元件沿對(duì)角線移動(dòng)
在Flash中,實(shí)現(xiàn)元件的循環(huán)運(yùn)動(dòng)有很多種方法。其中,使用setInterval函數(shù)來(lái)移動(dòng)對(duì)象是一種非常有效的方法。本文將介紹如何使用setInterval函數(shù)來(lái)實(shí)現(xiàn)元件沿對(duì)角線移動(dòng)的方法。準(zhǔn)備工作首
在Flash中,實(shí)現(xiàn)元件的循環(huán)運(yùn)動(dòng)有很多種方法。其中,使用setInterval函數(shù)來(lái)移動(dòng)對(duì)象是一種非常有效的方法。本文將介紹如何使用setInterval函數(shù)來(lái)實(shí)現(xiàn)元件沿對(duì)角線移動(dòng)的方法。
準(zhǔn)備工作
首先,打開(kāi)一個(gè)已有的Flash作品,例如"太陽(yáng)"作品。然后選中"太陽(yáng)"對(duì)象,在屬性面板中將太陽(yáng)元件的x坐標(biāo)和y坐標(biāo)都設(shè)置為0,并將實(shí)例名稱取名為"sun_mc"。
編寫代碼
在代碼圖層的第1幀右擊,選擇"動(dòng)作"選項(xiàng)。然后,我們需要聲明兩個(gè)整型變量numx和numy,用來(lái)存儲(chǔ)"太陽(yáng)"元件的x和y軸坐標(biāo)值,并賦初值0。接著,定義一個(gè)整型變量,用來(lái)存儲(chǔ)元件移動(dòng)一次的數(shù)值。
將"太陽(yáng)"元件的x軸和y軸坐標(biāo),分別設(shè)置為numx和numy。接下來(lái),自定義一個(gè)函數(shù)onSport用于控制"太陽(yáng)"元件的移動(dòng)。
在函數(shù)中,使存儲(chǔ)元件x軸坐標(biāo)的值numx增加一個(gè)moving的值,即移動(dòng)一次。然后,將"太陽(yáng)"元件的x軸坐標(biāo)更新為numx的值,即實(shí)現(xiàn)移動(dòng)一次。同樣地,使用相同的方法移動(dòng)y軸坐標(biāo),實(shí)現(xiàn)y軸坐標(biāo)移動(dòng)一個(gè)moving的值。
使用if語(yǔ)句判斷"太陽(yáng)"元件是否已到舞臺(tái)邊界,判斷條件為"太陽(yáng)"元件的y軸坐標(biāo)是否大于舞臺(tái)下邊界的值。如果是,則將"太陽(yáng)"元件的坐標(biāo)恢復(fù)到初始狀態(tài),即坐標(biāo)(0,0)。并將存儲(chǔ)坐標(biāo)值的變量恢復(fù)到初始狀態(tài),即0。
最后,使用setInterval函數(shù)定時(shí)重復(fù)執(zhí)行自定義函數(shù)onSport,每次執(zhí)行時(shí)間的間隔為20毫秒,并用"間隔標(biāo)記"標(biāo)記此函數(shù)。
測(cè)試結(jié)果
運(yùn)行程序,我們可以看到"太陽(yáng)"元件不斷重復(fù)沿對(duì)角線勻速運(yùn)動(dòng)的效果。
但是,如果想讓"太陽(yáng)"元件在到達(dá)舞臺(tái)下界后停止運(yùn)動(dòng),只需要修改代碼如下:
```
if (sun_mc.y > stageHeight) {
clearInterval(intervalID);
}
```
修改后的代碼中,通過(guò)判斷"太陽(yáng)"元件的y軸坐標(biāo)是否大于舞臺(tái)下邊界來(lái)決定是否停止運(yùn)動(dòng)。當(dāng)條件滿足時(shí),使用clearInterval函數(shù)清除之前設(shè)定的setInterval間隔標(biāo)記,從而停止運(yùn)動(dòng)。
重新運(yùn)行程序,我們可以看到"太陽(yáng)"元件在運(yùn)行一次后停在了左上角。
結(jié)語(yǔ)
現(xiàn)在你已經(jīng)掌握了使用setInterval函數(shù)在Flash中實(shí)現(xiàn)元件沿對(duì)角線移動(dòng)的方法。希望這個(gè)方法能給你帶來(lái)更多有趣的創(chuàng)作靈感??靹?dòng)手嘗試一下吧!