小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

談Flash中的鼠標(biāo)響應(yīng)

 重出江湖 2007-09-13
大家都知道,F(xiàn)lash動(dòng)畫能夠響應(yīng)鼠標(biāo)動(dòng)作,從而實(shí)現(xiàn)各式各樣的人機(jī)交互。常用的鼠標(biāo)都有左中右三個(gè)鍵。

  1.左鍵

  鼠標(biāo)左鍵在Windows系統(tǒng)下?lián)?fù)著神圣的職責(zé),在Flash中也不例外。Flash能夠自動(dòng)捕獲鼠標(biāo)左鍵的動(dòng)作,并根據(jù)捕獲的動(dòng)作激發(fā)內(nèi)置的鼠標(biāo)事件,再根據(jù)用戶為這些事件編寫的處理函數(shù)完成對(duì)鼠標(biāo)左鍵的響應(yīng)。

  按鈕和影片剪輯常常用來(lái)完成響應(yīng)鼠標(biāo)與實(shí)現(xiàn)交互的過(guò)程。對(duì)于按鈕,可以用關(guān)鍵字on定義的事件處理函數(shù)來(lái)響應(yīng)左鍵動(dòng)作。其中,press表示左鍵按下的事件,release表示左鍵釋放的事件,releaseOutside表示在按鈕外部釋放左鍵的事件等等。例如,要使按鈕對(duì)單擊事件做出響應(yīng),可以在按鈕的動(dòng)作面板中添加如下代碼:

on (release) {

trace("單擊了一下");

}

  這樣,在測(cè)試狀態(tài)下單擊該按鈕時(shí),F(xiàn)lash就會(huì)把信息“單擊了一下”發(fā)送到輸出窗口。

  對(duì)于影片剪輯,也可以為其添加on事件處理函數(shù),使其以按鈕的機(jī)制響應(yīng)鼠標(biāo)左鍵。此外,也可以用影片剪輯特有的onClipEvent事件處理函數(shù)對(duì)鼠標(biāo)左鍵做出響應(yīng)。例如,mouseDown表示左鍵按下的事件,mouseUp表示左鍵抬起的事件。與按鈕的press和release事件不同的是,mouseDown和mouseUp事件不要求光標(biāo)位于影片剪輯范圍內(nèi)。因此,如果要判斷鼠標(biāo)具體單擊的哪個(gè)影片剪輯,還需要對(duì)鼠標(biāo)位置進(jìn)行檢測(cè)。例如,下面的代碼使得影片剪輯響應(yīng)左鍵按下事件并在輸出窗口中顯示光標(biāo)的位置:

onClipEvent (mouseDown) {

trace("X坐標(biāo):"+_root._xmouse);

trace("Y坐標(biāo):"+_root._ymouse);

}

  這里,_root._xmouse和_root._ymouse分別表示光標(biāo)相對(duì)于主場(chǎng)景的X坐標(biāo)和Y坐標(biāo),如果省略_root,則得到光標(biāo)相對(duì)于影片剪輯自身的坐標(biāo)。

  2.右鍵

  鼠標(biāo)的右鍵和中鍵是Flash MX 2004新開(kāi)放的功能。對(duì)鼠標(biāo)右鍵的響應(yīng)主要體現(xiàn)在允許用戶自定義右鍵的快捷菜單。

  ContextMenu類表示快捷菜單,ContextMenuItem類表示快捷菜單中的菜單項(xiàng)。如下所示的代碼創(chuàng)建ContextMenu類的一個(gè)對(duì)象my_cm:

  var my_cm = new ContextMenu();

  ContextMenu類的customItems屬性是一個(gè)數(shù)組,該數(shù)組包含了快捷菜單中的所有菜單項(xiàng)。要把菜單項(xiàng)添加到菜單中,需要使用數(shù)組的push方法,如下所示:

my_cm.customItems.push(new ContextMenuItem("旋轉(zhuǎn)", func_rotate));

  這樣,就把“旋轉(zhuǎn)”菜單項(xiàng)添加到了快捷菜單中,func_rotate是一個(gè)函數(shù)名,它決定了選擇“旋轉(zhuǎn)”菜單時(shí)所要執(zhí)行的命令。下面定義該函數(shù):

function func_rotate(obj:Object, menu:ContextMenu) {

obj.onEnterFrame = function() {

this._rotation += 15;

};

}

  這里的參數(shù)obj是系統(tǒng)自動(dòng)捕獲并傳遞的,它就是對(duì)鼠標(biāo)右鍵做出響應(yīng)并顯示快捷菜單的對(duì)象。上面的函數(shù)使得選擇“旋轉(zhuǎn)”快捷菜單時(shí)對(duì)象以15°/幀的速度進(jìn)行旋轉(zhuǎn)。

  3.中鍵

  在Windows環(huán)境中,鼠標(biāo)中鍵常常用來(lái)滾屏——在使用Word的時(shí)候,瀏覽網(wǎng)頁(yè)的時(shí)候,甚至在一個(gè)下拉列表框中做出選擇的時(shí)候——現(xiàn)在,也包括觀看Flash的時(shí)候。當(dāng)然,這同樣也得歸功于Flash MX 2004。

  表示鼠標(biāo)的Mouse對(duì)象中并未定義中鍵滾動(dòng)事件,F(xiàn)lash MX 2004提供onMouseWheel偵聽(tīng)器來(lái)檢測(cè)中鍵滾動(dòng)。因此,要使得能夠?qū)κ髽?biāo)中鍵的滾動(dòng)做出響應(yīng),就必須向Mouse對(duì)象注冊(cè)onMouseWheel偵聽(tīng)器。代碼如下:

mouseListener = new Object();

mouseListener.onMouseWheel = function(delta) {

clip_mc._x += n * delta;

}

Mouse.addListener(mouseListener);

  其中,delta表示鼠標(biāo)中鍵的每個(gè)滾動(dòng)刻度使屏幕滾動(dòng)的行數(shù),它的值由系統(tǒng)決定,常在1~3之間。上面的代碼使得在鼠標(biāo)中鍵滾動(dòng)時(shí),實(shí)例clip_mc一次向左或向右移n*delta像素,移動(dòng)的方向是由中鍵滾動(dòng)的方向決定的。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多