|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
AdobeFlashPlayerforIE是IE浏览器专用的flash播放器插件,可以播放AdobeFlash制作的flash文件。
poluoluo中心提醒:不必shift键就不克不及完成这类功效吗?我入手下手思索怎样辨别MOUSE_DOWN+MOUSE_UP与CLICK.
在网上看到某个游戏既要拖拽mc又要扭转mc,拖拽用鼠标事务完成,而扭转必要用shift+鼠标click事务。总以为太贫苦了。故而但愿本人能找到一种只用鼠标就可以同时完成拖拽与扭转功效的办法。
了局发明MOUSE_DOWN+MOUSE_UP居然相称于一次CLICK事务。即每次开释鼠标左键,中断拖拽时,mc会扭转一次,而这个明显不是预期的效果。
因而,入手下手分明了,谁人程序员为何要增加shift键的侦听了。
但是,不必shift键就不克不及完成这类功效吗?我入手下手思索怎样辨别MOUSE_DOWN+MOUSE_UP与CLICK.。
办法一:设置工夫距离。工夫不太好掌控,pass失落。
办法二:用鼠标的绝对地位。倘使mc未挪动则视为click事务。正解!
package{
importflash.display.*;
importflash.geom.Point;
importflash.events.*;
publicclassmainextendsSprite{
privatevarmc:MC;
privatevarclickOffset:Point;
privatevarmouseLoc:Point;
publicfunctionmain(){
mc=newMC();
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);
}
privatefunctionstartdrag(e:MouseEvent){
mouseLoc=newPoint(e.stageX,e.stageY);
clickOffset=newPoint(e.stageX-mc.x,e.stageY-mc.y);
}
privatefunctiondrag(e:Event){
if(clickOffset==null)return;
mc.x=mouseX-clickOffset.x;
mc.y=mouseY-clickOffset.y;
}
privatefunctionstopdrag(e:MouseEvent){
clickOffset=null;
}
privatefunctionrot(e:MouseEvent){
if(!mouseLoc.equals(newPoint(e.stageX,e.stageY)))return;
mc.rotation+=30;
}
}
}
您是否有着精彩的Flash作品,您是否想把他转化为屏保程序。 |
|