国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

運(yùn)用Actions語句實(shí)現(xiàn)Flash中的熱區(qū)交互

2009-03-02 02:43
關(guān)鍵詞:熱區(qū)指針鼠標(biāo)

杜 娟

熱區(qū),通俗地講就是一個(gè)看不見的交互區(qū)域,通過單擊、滑過等響應(yīng)方式觸發(fā)其包含的其他響應(yīng)。在Flash中沒有明確這種功能,但是我們可以綜合運(yùn)用元件(影片、按鈕)和Actions語句來實(shí)現(xiàn)。

一、熱區(qū)的建立

(一)特殊按鈕法

Flash中按鈕制作共包括四幀,依次為:彈起(release)、指針經(jīng)過(pass)、按下(down)和單擊(press)。如果在前三幀不做任何設(shè)置,而只在第四幀中繪制形狀或?qū)胍环鶊D片,如五角星、動(dòng)物、地圖等,那么就制作了一個(gè)“無形”的特殊按鈕。這種按鈕放在場(chǎng)景中是看不到的,但一樣可以實(shí)現(xiàn)按鈕的交互,在繪制的形狀范圍內(nèi)單擊,熱區(qū)響應(yīng)就實(shí)現(xiàn)了,響應(yīng)的區(qū)域就是這些隱藏的圖形。

(二)元件透明法

在Flash6.0以后的版本中,圖形、影片元件是可以進(jìn)行類似于按鈕交互的。即通過給圖片、影片元件加上Actions語句實(shí)現(xiàn)一些特殊的功能,而元件可以設(shè)置多種屬性,所以我們說賦予語句的元件在某種意義上是增強(qiáng)型的按鈕。如將圖片元件的透明度(Alpha)設(shè)置為“0”并且給其加上交互語句,此時(shí)圖片就是一個(gè)熱區(qū)。再如,將動(dòng)態(tài)影片元件進(jìn)行透明度設(shè)置的話,那么熱區(qū)也在不停地變化。從而使熱區(qū)更加豐富多彩。需要提示的是:這一方法同樣適用于按鈕元件,雖然做法不同,但可以達(dá)到和前一種方法一樣的效果。

二、熱區(qū)的響應(yīng)

(一)鼠標(biāo)與熱區(qū)的響應(yīng)

當(dāng)鼠標(biāo)指向某一熱區(qū)時(shí),屏幕上會(huì)給出明顯的變化對(duì)用戶進(jìn)行提示,通常采用的方式是出現(xiàn)一段解釋文字、鼠標(biāo)外形的變化或播放聲音等。

1.文字注釋響應(yīng)

即當(dāng)鼠標(biāo)進(jìn)入由按鈕制作的隱藏區(qū)域中,出現(xiàn)文字提示。此效果可利用控制元件的透明度alhpa來完成,可以給按鈕加上如下語句實(shí)現(xiàn)提示:首先確保提示的文字內(nèi)容是一個(gè)影片元件,為其命名為實(shí)例名instancename,并將其alpha值設(shè)定為0,即不透明。在按鈕的“動(dòng)作”面板中編寫如下的Active腳本:

on (rollOver) {

instancename._alpha = 100;

}

on (rollOut) {

instancename._alpha = 0;

}

2.用自定義鼠標(biāo)注釋響應(yīng)

要?jiǎng)?chuàng)建自定義指針,可在舞臺(tái)上設(shè)計(jì)某種影片剪輯。再在動(dòng)作腳本中隱藏標(biāo)準(zhǔn)指針,并跟蹤自定義指針的移動(dòng)。要隱藏標(biāo)準(zhǔn)指針,可使用內(nèi)置Mouse類的Mouse.hide()方法。要使用影片剪輯作為自定義指針,可使用startDrag()動(dòng)作。創(chuàng)建影片剪輯,將其用做自定義指針并將該剪輯的實(shí)例放置在舞臺(tái)上。在“動(dòng)作”面板中鍵入以下內(nèi)容:

on (rollOver) {

Mouse.hide();

newmouse._alpha = 100;

startDrag(newmouse, true);

updateAfterEvent();

}

on (rollOut) {

Mouse.show();

newmouse._alpha = 0;

}

3.聲音注釋響應(yīng)

當(dāng)鼠標(biāo)進(jìn)入熱區(qū)范圍,通過一段聲音提示。這種方式往往用于低年級(jí)識(shí)字教學(xué)中。其做法是:首先將某段聲音導(dǎo)入到舞臺(tái)上。打開庫,選中剛剛導(dǎo)入的聲音,單擊右鍵,點(diǎn)擊“鏈接”,在彈出的“鏈接屬性”對(duì)話框中,輸入聲音的標(biāo)識(shí)符,如soundlable,并將“作為動(dòng)作腳本”的復(fù)選框勾中,點(diǎn)擊“確定”按鈕確認(rèn)?;氐轿枧_(tái)上,選擇“窗口”→“開發(fā)面板”→“行為”,在行為屬性框中添加聲音行為,即選擇“+”,選擇“聲音”→“從庫加載聲音”,在對(duì)話框中輸入聲音鏈接的ID,也就是聲音的標(biāo)識(shí)符sound- lable,以及聲音的實(shí)例名稱,如instancename。接下來點(diǎn)擊“確定”按鈕即可。這時(shí),會(huì)發(fā)現(xiàn)“行為”屬性面板上增加了“釋放時(shí)”的行為,只需要將其改為“移入時(shí)”即可。同樣的操作方法,“移出時(shí)”的行為是停止聲音。該部分的Active腳本如下:

on (rollOver) {

//Play Internal Sound Behavior

if(_global.Behaviors == null)_global.Behaviors = {};

if(_global.Behaviors.Sound == null)_global.Behaviors.Sound = {};

if(typeof this.createEmptyMovieClip == 'undefined'){

this._parent.createEmptyMovieClip('BS_instancename',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );

_global.Behaviors.Sound.instancename = new Sound(this._parent.BS_instancename);

} else {

this.createEmptyMovieClip('_instancename_',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );

_global.Behaviors.Sound.instancename = new Sound(this.BS_instancename);

}

_global.Behaviors.Sound.instancename.attachSound("soundlable");

if (true) {

_global.Behaviors.Sound.instancename.start(0,1);

}

//End Behavior

on (rollOut) {

//Stop Sound Behavior

_global.Behaviors.Sound.instancename.stop("soundlable");

}

以上都是以鼠標(biāo)移入熱區(qū)為例進(jìn)行熱區(qū)響應(yīng)的,其實(shí)還可以利用語句實(shí)現(xiàn)其他方式的響應(yīng)。如在熱區(qū)內(nèi)按下鼠標(biāo):MovieorbuttonName.onPress;單擊熱區(qū):MovieorbuttonName.onRelease;按下鼠標(biāo):MovieorbuttonName.onMouseDown;移動(dòng)鼠標(biāo):MovieorbuttonName.onMouseMove;鼠標(biāo)到達(dá)熱區(qū)上:MovieorbuttonName.onRollOver;鼠標(biāo)從影片移到熱區(qū)外:MovieorbuttonName.onRollOut。

(二)元件與熱區(qū)的響應(yīng)

這種響應(yīng)不僅僅是鼠標(biāo)與熱區(qū)之間的交互,而增加了第三方,也就是當(dāng)某個(gè)物體被移動(dòng)到熱區(qū)上時(shí)產(chǎn)生交互,這種方式在一些實(shí)驗(yàn)或游戲中經(jīng)常能夠見到。一般是當(dāng)物體移動(dòng)到熱區(qū)上時(shí)響應(yīng)交互,當(dāng)沒有到達(dá)熱區(qū)上時(shí)物體返回到原來的位置。

首先制作兩個(gè)元件——被拖動(dòng)的物體和熱區(qū),物體的實(shí)例名為Object,熱區(qū)的實(shí)例名為Hotarea。再為元件所在的幀加上如下Actions語句:

_root.object.onPress = function() {

_root.object.startDrag();

x0=_root.hotarea._x;

y0=_root.hotarea._y ;

x1=_root.object._x;

y1=_root.object._y;

};

_root.object.onRelease = function(){

_root.object.stopDrag();

if(_root.hotarea.hitTest(_root.object))

{

_root.object._x = x0;

_root.object._y = y0;

_root.object.stopDrag();

trace("到達(dá)目標(biāo)區(qū)域");

}

else

{ _root.object._x = x1;

_root.object._y = y1;

trace("沒有到達(dá)");

}

};

trace語句可以替換為需要的提示方式。如:gotoandplay()、music.start()等。

(作者單位:遼寧電化教育館)

猜你喜歡
熱區(qū)指針鼠標(biāo)
不忘初心繼往開來譜寫熱作新篇章
——《熱區(qū)特色農(nóng)業(yè)產(chǎn)業(yè)發(fā)展與關(guān)鍵技術(shù)??房渍Z
Progress in Neural NLP: Modeling, Learning, and Reasoning
區(qū)域活動(dòng)中“冷區(qū)”向“熱區(qū)”的轉(zhuǎn)變
基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
定向退火條件下柱狀晶形成及連續(xù)擴(kuò)展的相場(chǎng)模擬
ARM Cortex—MO/MO+單片機(jī)的指針變量替換方法
滇西熱區(qū)柚早結(jié)豐產(chǎn)栽培關(guān)鍵技術(shù)
超能力鼠標(biāo)
鼠標(biāo)也可以是這樣的
丽江市| 蒙城县| 蕲春县| 宣恩县| 霍邱县| 新营市| 贵港市| 舞阳县| 张家港市| 乳源| 将乐县| 九寨沟县| 云林县| 拜泉县| 民权县| 孝感市| 永胜县| 若羌县| 乌兰察布市| 海宁市| 通榆县| 西乌| 彭州市| 翁源县| 四会市| 无棣县| 牙克石市| 隆德县| 垦利县| 山阳县| 富阳市| 罗平县| 灵璧县| 叙永县| 北票市| 定安县| 福海县| 临汾市| 南汇区| 张家港市| 萝北县|