flash AS3.0学习笔记-拖动棋子(吸附)到棋盘对应网格中心
来源:互联网 发布:4g网络优化师 编辑:程序博客网 时间:2024/06/05 10:31
博主目前在做一个小项目:将棋子拖动到棋盘上,并且松掉鼠标的时候棋子被吸附到网格点上。
刚开始没有什么思路,不过经大神爆爆粒指导之后发现了套路,现在将该方法分享给大家!
先来看一下我的代码:
import flash.events.MouseEvent;stop();white.addEventListener(MouseEvent.MOUSE_UP,w1)black.addEventListener(MouseEvent.MOUSE_UP,b1)white.addEventListener(MouseEvent.MOUSE_DOWN,w2)black.addEventListener(MouseEvent.MOUSE_DOWN,b2)function w2(e:MouseEvent){ e.target.startDrag();//开始拖动}function w1(e:MouseEvent){ e.target.stopDrag();//停止拖动 e.target.x=(int)((mouseX-120)/19.1)*19.1+110;//落在网格点上 e.target.y=(int)((mouseY-92)/19.1)*19.1+82;//落在网格点上}function b2(e:MouseEvent){ e.target.startDrag();//开始拖动}function b1(e:MouseEvent){ e.target.stopDrag();//停止拖动 e.target.x=(int)((mouseX-120)/19.1)*19.1+110;//落在网格点上 e.target.y=(int)((mouseY-92)/19.1)*19.1+82;//落在网格点上}
代码很简洁明了,就是有一个叫white的影片剪辑(白子),和一个叫black的影片剪辑(黑子)。先都给他们做个监听,MOUSE_UP,MOUSE_DOWN。通过:
e:target.startDrag();
e:target.stopDrog();
这两句代码先实现拖动和放置。
接下俩就可以研究一下如何让它放置在网格点上了。
首先,我们要量一下棋盘的左上角的那个网格点的实际坐标,然后通过这样一个算法:来确保棋子落在网格点上。
e.target.x=(int)((mouseX-120)/19.1)*19.1+110;//落在网格点上 e.target.y=(int)((mouseY-92)/19.1)*19.1+82;//落在网格点上
前面用int();强制将坐标转换成1.2.3.这样的整数。但是最后一定要乘以网格的宽度。
再加上左上角的实际坐标(刚刚量的),!!!这里会有一些误差导致棋子不能落在具体的网格点上,但是运行出来
之后可以看出来已经有吸附的功能了,所以接着自己看着改改加减的数来调试一下就OK了。就是这样,现在大家应该知道如何吸附了吧。
0 0
- flash AS3.0学习笔记-拖动棋子(吸附)到棋盘对应网格中心
- flash AS3.0学习笔记----拖动棋子所停之处生成新的棋子
- flash As3.0 学习笔记 第一课
- Flash As3.0 学习笔记 第二课-编写元件类-将元件添加到场景中
- flash学习笔记-拖动问题
- Flash AS3 学习11 - 拖动
- FLASH AS3.0 鼠标拖动技术 startDrag();stopDrag();
- Flash游戏学习笔记:鼠标拖动
- as3.0 学习笔记
- as3.0学习笔记
- 棋盘上放棋子(任意两个棋子不相邻)
- GEF学习系列之二:网格吸附与几何对齐
- flash as3.0笔记:获取用户输入
- 学习flash as3 (一)
- 学习flash as3 (二)
- 学习flash as3 (三)
- Flash AS3 学习-1
- Flash as3事件学习
- LevelDb
- 第二次作业
- LevelDb
- 视频转gif图片格式-好用的软件
- hdu 2112 HDU Today 最短路spfa+容器map
- flash AS3.0学习笔记-拖动棋子(吸附)到棋盘对应网格中心
- 英伟达硬件加速解码器在 FFMPEG 中的使用
- Java内存区域与内存溢出异常
- android 图像渲染(Shader)
- 南阳题目206-矩形的个数
- HDU2045 RPG难题
- 第4周项目5-用递归方法求解3
- bash shell 编程练习二
- Mybatis 配置实体类的别名