Flash AS 入門教程 事件處理函數(shù)及畫線語句

我們學(xué)過在按扭或者影片剪輯上添加事件,這些事件也可以很方便地寫在幀上,使用起來比較方便,有時(shí)也能起到簡(jiǎn)化腳本的作用。這些寫在幀上的事件在軟件中是位置是“內(nèi)置類影片MovieClip事件”。
一、 flash 2004提供了18個(gè)事件,我們?cè)谶@里主要介紹Button.onRelease和MovieClip.onEnterFrame這兩個(gè)件的用法。
1、Button.onRelease的用法:
my_btn.onRelease = function() {
// 此處是您的語句
}
這里my_btn是按扭的實(shí)例名。當(dāng)按下并松開按鈕時(shí)調(diào)用。注意,這里的事件都是以函數(shù)形式表示的,因此,我們可以叫做事件處理函數(shù)
2、MovieClip.onEnterFrame的用法:
my_mc.onEnterFrame = function() {
// 此處是您的語句
}
這里my_mc是影片剪輯的實(shí)例名。這個(gè)事件處理函數(shù)以 SWF 文件的幀頻持續(xù)調(diào)用,這個(gè)函數(shù)的作用和在mc上寫的事件onClipEvent (enterFrame)類同,但是,使用起來更方便更有效。
從用法中可以知道,必須定義一個(gè)在調(diào)用事件處理時(shí)執(zhí)行的函數(shù)。我們看一個(gè)實(shí)際例子。
例 3.2.1
前一節(jié)的例2中我們?cè)?ldquo;控制”按鈕、“小松鼠”影片剪輯或者“小球”影片剪輯上按下鼠標(biāo)時(shí),調(diào)用自定義函數(shù),使小松鼠和小球分別按照相反的方向運(yùn)動(dòng)。現(xiàn)在我們把這三個(gè)事件改為寫在幀上的事件函數(shù):
function yd() {
gotoAndPlay(1);
qiu_mc.gotoAndPlay(31);
}
shu_mc.onPress = function() {
yd();
};
qiu_mc.onPress = function() {
yd();
};
my_btn.onPress = function() {
yd();
};
這里另加了一個(gè)lqiu_mc,在幀上調(diào)用MovieClip.onEnterFrame,使這個(gè)小球在場(chǎng)景來會(huì)運(yùn)動(dòng)。
lqiu_mc.onEnterFrame = function() {//調(diào)用MovieClip.onEnterFrame事件函數(shù),
this._x += 10; //lqiu_mc的橫坐標(biāo)每次增加10;
web=this._x //在文本web中顯示lqiu_mc的橫坐標(biāo);
if (this._x>430) { //當(dāng)lqiu_mc的橫坐標(biāo)大于430時(shí);
this._x = 20; //讓lqiu_mc的橫坐標(biāo)為20;
}
};
這里我們可以看到,寫在幀上的MovieClip.onEnterFrame和寫在mc上的onClipEvent (enterFrame)可以起到完全相同的作用。并且,我們還可以在調(diào)用MovieClip.onEnterFrame事件函數(shù)時(shí)可以隨時(shí)刪去這個(gè)事件,以減少內(nèi)存的占用。例如在上面的事件函數(shù)時(shí),我們可以改
if (this._x>430) {
this._x = 20;
}為:
if (this._x>430) {
delete this.onEnterFrame
}
那么,這個(gè)事件被刪除,小球停止運(yùn)動(dòng)。
二、畫正玄圖象
1、新知識(shí)點(diǎn):
?。?)my_mc.createEmptyMovieClip(instanceName, depth)
創(chuàng)建作為現(xiàn)有影片剪輯(my_mc)子級(jí)的空影片剪輯;
instanceName:創(chuàng)建的子級(jí)影片剪輯的名稱;
depth:創(chuàng)建的子級(jí)影片剪輯的名稱.
(2)my_mc.lineStyle(線條寬度,線條顏色,線條透明度);
my_mc.moveTo(起點(diǎn)橫坐標(biāo), 起點(diǎn)縱坐標(biāo));
my_mc.lineTo(終點(diǎn)橫坐標(biāo), 終點(diǎn)縱坐標(biāo));
(3)正玄函數(shù)
y=sin(x)
其中y為-1到1之間。
2、例3.2.2 源程序腳本:(都寫在場(chǎng)景的第1幀)
i = 0; //變量初始化;
createEmptyMovieClip("mc", 5);//在主時(shí)間軸下創(chuàng)建影片mc,深度為1
with (mc) { //下面幾條都是對(duì)mc的操作
lineStyle(2, 0x00ff00, 100);//畫線條的寬度為2,色彩為綠色,透明度為100
moveTo(100, 50); //畫豎線的起點(diǎn)橫坐標(biāo)100,縱坐標(biāo)50
lineTo(100, 300); //畫豎線的終點(diǎn)橫坐標(biāo)100,縱坐標(biāo)300;
moveTo(50, 200); //畫橫線的起點(diǎn)橫坐標(biāo)50,縱坐標(biāo)200
lineTo(480, 200); //畫橫線的終點(diǎn)橫坐標(biāo)480,縱坐標(biāo)200
moveTo(100, 200); //畫正玄的起點(diǎn)
lineStyle(1, 0xff0000, 100);//正玄線的寬度為1,色彩為紅色,透明度為100
}
onEnterFrame = function () {//執(zhí)行主時(shí)間軸下的事件處理函數(shù)
x = 100+i; //橫軸表示角度,這里i為角度變化。計(jì)算正玄函數(shù)的橫坐標(biāo);100是坐標(biāo)原點(diǎn)橫坐標(biāo)
y = 200-100*Math.sin(i*Math.PI/180);//計(jì)算正玄的縱坐標(biāo);
mc.lineTo(x, y); //正玄線的下一點(diǎn)的坐標(biāo)
i++;
if (i>=360) { //正玄函數(shù)的一個(gè)周期360度
delete onEnterFrame;//刪去這個(gè)事件處理函數(shù)
}
};
3 作業(yè):
A :把上面的畫正玄函數(shù)改動(dòng)為:
?。?)坐標(biāo)原點(diǎn)為(100,100);
?。?)函數(shù)高度為50;
(3)每隔5度畫一點(diǎn)。
B: (選作)把上面的畫正玄函數(shù)改動(dòng)為:正玄圖象起點(diǎn)的橫坐標(biāo)、震幅、跨度由輸入文本控制如下圖的形式
相關(guān)文章
flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請(qǐng)看下文詳細(xì)的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡(jiǎn)單的例子,需要的朋友可以參考下http://chabaoo.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個(gè)Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡(jiǎn)單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置?
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置,教程講解的詳細(xì),感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11Flash怎么制作來回?fù)u擺的花朵的動(dòng)畫?
Flash怎么制作來回?fù)u擺的花朵的動(dòng)畫?Flash中想要給花朵制作一段搖擺的動(dòng)畫效果,該怎么制作呢?下面我們就來看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-05-23- Flash怎么制作流動(dòng)七彩色的文字?想要讓文字動(dòng)起來,該怎么使用flash給文字制作一個(gè)流動(dòng)七彩色的動(dòng)畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23