FLASH AS鼠標(biāo)拖拽與旋轉(zhuǎn)MC教程

在網(wǎng)上看到某個(gè)游戲既要拖拽mc又要旋轉(zhuǎn)mc,拖拽用鼠標(biāo)事件實(shí)現(xiàn),而旋轉(zhuǎn)需要用shift+鼠標(biāo)click事件??傆X(jué)得太麻煩了。故而希望自己能找到一種只用鼠標(biāo)就能同時(shí)實(shí)現(xiàn)拖拽與旋轉(zhuǎn)功能的方法。
結(jié)果發(fā)現(xiàn)MOUSE_DOWN+MOUSE_UP竟然相當(dāng)于一次CLICK事件。即每次釋放鼠標(biāo)左鍵,停止拖拽時(shí),mc會(huì)旋轉(zhuǎn)一次,而這個(gè)顯然不是預(yù)期的效果。
于是,開始明白了,那個(gè)程序員為什么要添加shift鍵的偵聽了。
可是,不用shift鍵就不能實(shí)現(xiàn)這種功能嗎?我開始考慮如何區(qū)分MOUSE_DOWN+MOUSE_UP與CLICK.。
方法一:設(shè)置時(shí)間間隔。時(shí)間不太好把握,pass掉。
方法二:用鼠標(biāo)的相對(duì)位置。倘若mc未移動(dòng)則視為click事件。正解!
import flash.display .*;
import flash.geom .Point;
import flash.events.*;
public class main extends Sprite{
private var mc:MC;
private var clickOffset:Point;
private var mouseLoc:Point;
public function main(){
mc=new MC();
addChild(mc);
mc.x=200;
mc.y=200;
mc.addEventListener(MouseEvent.CLICK ,rot);
mc.addEventListener(MouseEvent.MOUSE_DOWN,startdrag);
mc.addEventListener(Event.ENTER_FRAME. ,drag);
stage.addEventListener(MouseEvent.MOUSE_UP,stopdrag);
}
private function startdrag(e:MouseEvent ){
mouseLoc=new Point(e.stageX,e.stageY);
clickOffset=new Point(e.stageX-mc.x,e.stageY-mc.y);
}
private function drag(e:Event){
if(clickOffset==null) return;
mc.x=mouseX-clickOffset.x;
mc.y=mouseY-clickOffset.y;
}
private function stopdrag(e:MouseEvent ){
clickOffset=null;
}
private function rot(e:MouseEvent){
if(!mouseLoc.equals(new Point(e.stageX,e.stageY)))return;
mc.rotation+=30;
}
}
}
相關(guān)文章
flash如何做雨滴下落的動(dòng)畫效果? Flash8做一個(gè)下雨效果的技巧
flash如何做雨滴下落的動(dòng)畫效果?想要做一個(gè)逼真的雨滴落下的效果,該怎么做雨滴落下水花擴(kuò)散的效果呢?下面我們就來(lái)看看Flash8做一個(gè)下雨效果的技巧2022-08-18flash理發(fā)店旋轉(zhuǎn)彩燈動(dòng)畫效果怎么做? 理發(fā)店旋轉(zhuǎn)燈制作技巧
flash理發(fā)店旋轉(zhuǎn)彩燈動(dòng)畫效果怎么做?經(jīng)常使用flash制作動(dòng)畫效果,該怎么制作旋轉(zhuǎn)燈效果,下面我們就來(lái)看看理發(fā)店旋轉(zhuǎn)燈制作技巧,詳細(xì)請(qǐng)看下文介紹2022-07-23flash怎么把形狀變成文字? flash星星變文字動(dòng)畫的實(shí)現(xiàn)方法
flash怎么把形狀變成文字?flash繪制的星星想要慢慢變成文字,該怎么將圖形變文字呢?下面我們就來(lái)看看flash星星變文字動(dòng)畫的實(shí)現(xiàn)方法,詳細(xì)請(qǐng)看下文介紹2022-06-06flash怎么制作補(bǔ)間動(dòng)畫? flash變形動(dòng)畫的實(shí)現(xiàn)方法
flash怎么制作補(bǔ)間動(dòng)畫?flash中想要制作形狀變化的動(dòng)畫效果,該怎么制作補(bǔ)間動(dòng)畫呢?下面我們就來(lái)就來(lái)看看flash變形動(dòng)畫的實(shí)現(xiàn)方法2022-02-06FLASH怎么讓搖曳的荷花更逼著? flash制作風(fēng)吹荷花動(dòng)畫的技巧
FLASH怎么讓搖曳的荷花更逼?flash中想要制作風(fēng)吹荷花的動(dòng)畫熊愛(ài)國(guó),該怎么制作這個(gè)效果呢?下面我們就來(lái)看看flash制作風(fēng)吹荷花動(dòng)畫的技巧2022-02-06flash怎么制作荷花在荷花池里搖擺的動(dòng)畫? FLASH做擺動(dòng)荷花的技巧
flash怎么制作荷花在荷花池里搖擺的動(dòng)畫??flash中想要制作荷花搖擺的動(dòng)畫,該怎么制作荷花搖曳的動(dòng)畫呢?下面我們就來(lái)看看FLASH做擺動(dòng)荷花的技巧2022-02-06flash怎么做徑向彩虹文字動(dòng)畫? 文字添加彩虹動(dòng)畫效果的技巧
flash怎么做徑向彩虹文字動(dòng)畫?flash椎間盤買個(gè)輸入的文字,想要添加動(dòng)畫效果,該怎么添加徑向彩虹文字效果呢?下面我們就來(lái)看看flash文字添加彩虹動(dòng)畫效果的技巧,詳細(xì)請(qǐng)2021-11-09flash怎么做眨眼動(dòng)畫效果? flash動(dòng)漫人物眨眼動(dòng)畫的做法
flash怎么做眨眼動(dòng)畫效果?flash中想要制作一個(gè)動(dòng)漫人物的眼睛眨眼動(dòng)畫,該怎么制作呢?下面我們就來(lái)看看flash動(dòng)漫人物眨眼動(dòng)畫的做法2021-11-08flash怎么制作火焰文字效果? flash做火焰字體動(dòng)畫的技巧
flash怎么制作火焰文字效果?flash中想要制作一個(gè)熊熊燃燒的活顏文字,該怎么制作這個(gè)文字效果呢?下面我們就來(lái)看看flash做火焰字體動(dòng)畫的技巧2021-11-01flash怎么做文字動(dòng)畫logo? 閃動(dòng)的片頭動(dòng)畫flash的實(shí)現(xiàn)方法
flash怎么做文字動(dòng)畫logo?flash中想要制作一個(gè)文字logo的動(dòng)畫,讓文字閃爍,該怎么制作這個(gè)效果呢?下面我們就來(lái)看看flash制作文字動(dòng)畫的技巧2021-10-29