FLASH AS鼠标拖拽与旋转MC教程
在网上看到某个游戏,它要求玩家同时拖拽和旋转一个名为mc的物体。游戏规定拖拽功能通过鼠标事件实现,而旋转则需要按住shift键并单击鼠标触发。这让我感到有些麻烦,于是我开始寻找一种只用鼠标就能实现这两种功能的方法。
经过研究,我发现MOUSE_DOWN和MOUSE_UP的组合竟然相当于一次CLICK事件。这就意味着,每次玩家松开鼠标左键停止拖拽时,mc会自动旋转一次。这显然不是我想要的效果。
于是我开始理解,那位程序员之所以添加shift键的侦听,是为了区分纯粹的点击和拖拽操作。我们是否可以不依赖shift键来实现这种区分呢?我开始思考如何区分MOUSE_DOWN+MOUSE_UP与CLICK事件。
经过尝试,我发现一个有效的方法:使用鼠标的相对位置。如果在拖拽过程中,mc没有发生位置移动,那么我们就可以将其视为click事件。这个解决方案似乎非常合理。
基于这个思路,我编写了一段代码来实现这个功能。这段代码定义了一个名为main的类,它继承了Sprite类并包含一个名为mc的子对象。还定义了一些辅助变量如clickOffset和mouseLoc来记录点击位置和偏移量。
在main函数中,我为mc添加了一些事件监听器来处理点击、拖拽和旋转功能。具体来说,当玩家点击mc时,会触发rot函数使mc旋转;当玩家按下鼠标按钮时,会触发startdrag函数记录点击位置并计算偏移量;在每一帧更新时,都会触发drag函数根据鼠标位置和偏移量更新mc的位置;当玩家松开鼠标按钮时,会触发stopdrag函数清除偏移量。
通过判断鼠标的相对位置,我们可以在玩家松开鼠标按钮时判断是否执行旋转操作。只有当mc的位置没有发生变化时,才会执行旋转操作。这样就实现了只用鼠标就能同时实现拖拽和旋转功能的效果。这段代码被渲染在了名为“body”的元素中。
这段代码通过巧妙地处理鼠标事件和相对位置,实现了在不需要额外按键的情况下同时拖拽和旋转一个物体。这种设计使得操作更加便捷,提高了用户体验。
网站源码
- FLASH AS鼠标拖拽与旋转MC教程
- win10开始菜单设置打不开了-
- CAD怎么连接两条垂直不相交的线段-
- SQL注入黑客防线网站实例分析
- debian 9.4 安装教程 linux系统debian9.4图文详细安装步
- 全部行货 21款ThinkPad T400型号查询
- InDesign CS6图片怎么制作成对页效果-
- 保留原装系统轻松搞定HP本本分区
- 利用HTML、CSS 实现带表情的评论框的制作教程
- GTX 1050 MAX-Q吃鸡卡不卡 小米笔记本Pro GTX实战绝地
- 帮助你快速发现有价值域名的一些工具
- 笔记本怎么创建Intel RAID
- 你必须要知道的几个CSS技巧
- Win10怎么关闭自带杀毒软件?2招彻底关闭Windows
- 电话卡实名制这么久 这次规定算史上最严
- htnl基础知识之网页页面的初步了解