武陵观察网 问答 FLASH AS鼠标拖拽与旋转MC的教程是什么

FLASH AS鼠标拖拽与旋转MC的教程是什么

在网上看到某个游戏既要拖拽喊麦又要旋转mc,拖拽用鼠标事件实现,而旋转需要用变化鼠标点击事件。总觉得太麻烦了。故而希望自己能找到一种只用鼠标就能同时实现拖拽与旋转功能的方法。

结果发现鼠标按下鼠标抬起竟然相当于一次点击事件。即每次释放鼠标左键,停止拖拽时,mc会旋转一次,而这个显然不是预期的效果。

于是,开始明白了,那个程序员为什么要添加变化键的侦听了。

可是,不用变化键就不能实现这种功能吗?开始考虑如何区分鼠标按下鼠标抬起与点击。

方法一:设置时间间隔。时间不太好把握,通过掉。

方法二:用鼠标的相对位置。倘若喊麦未移动则视为点击事件。正解!

复制代码

代码如下:

包{

导入闪光灯.显示器.*;

导入flash.geom .点;

导入闪光。事件。*;

公共类主要的扩展雪碧{

私有var MC:MC;

私有var点击偏移量:点;

私有var鼠标锁定:点;

公共函数main(){

MC=new MC();

addChild(MC);

mc.x=200

mc.y=200

mc.addEventListener(MouseEvent .点击,烂);

mc.addEventListener(MouseEvent .MOUSE_DOWN,开始拖动);

mc.addEventListener(事件回车_帧.拖);

舞台。addevent侦听器(鼠标事件.MOUSE_UP,停止拖动);

}

私有函数startdrag(e:MouseEvent ){

mouseLoc=新点(e.stageX,e . stagey);

点击偏移量=新点(e stagex-MC . x,e stagey-MC。y);

}

私有函数拖动(e:事件){

if(clickOffset==null)返回;

MC。x=鼠标单击偏移量。x;

MC。y=鼠标点击偏移量。y;

}

私有函数stopdrag(e:MouseEvent ){

clickOffset=null

}

私有函数rot(e:MouseEvent){

如果(!鼠标锁定。等于(新点(e . stagex,e.stageY)))返回;

mc.rotation=30

}

}

}

本文来自网络,不代表本站立场,转载请注明出处:https:

FLASH,AS鼠标拖拽与旋转MC的教程是什么

武陵观察网后续将为您提供丰富、全面的关于FLASH,AS鼠标拖拽与旋转MC的教程是什么内容,让您第一时间了解到关于FLASH,AS鼠标拖拽与旋转MC的教程是什么的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。