flash AS3.0学习笔记----拖动棋子所停之处生成新的棋子
2016-04-10 14:40
253 查看
拖动棋子所停之处生成新的棋子
最近通过做项目对棋子拖动问题有了更深一步的了解学习。今天就来给大家分享一下,拖动棋子之后是如何再生成新棋子,然后完成继续拖动下棋的功能。大概流程:将棋碗里的棋子拖走之后,原来的位置立马生成一颗一模一样的新棋子。并且棋子下的位置都是网格交点上。拖动棋子吸附到网格上,这个之前的博客有讲,本博就不展开讲了。那现在来讲一下如何再原来的位置产生新的棋子呢?
对棋盘上那个棋子做一个监听事件。用MOUSE_DOWN让鼠标按下的时候产生一颗一模一样的棋子。new一个新的棋子,然后addChild到舞台上。具体代码:
import flash.events.MouseEvent; import flashx.textLayout.formats.WhiteSpaceCollapse; stop(); mc1.addEventListener(MouseEvent.MOUSE_DOWN,f1) mc2.addEventListener(MouseEvent.MOUSE_DOWN,f2) var g,h:int; var ww=new white(); var xx:Number=500; //新的黑子生成的位置x坐标 var yy:Number=480; //新的黑子生成的位置y坐标 var xxx:Number=555; //白子 var yyy:Number=480; var chess:int = 40; var chessboard1 = new Point(53,102); var bb=new black(); var chessboard:Array = new Array(); var m,n:int; function f1(e:MouseEvent):void { bb=new black(); bb.x=xx; bb.y=yy; bb.width=30; bb.height=30; stage.addChild(bb); mc1.startDrag(); mc1.addEventListener(MouseEvent.MOUSE_UP,f3) bb.startDrag(); bb.addEventListener(MouseEvent.MOUSE_UP,f3) }由上面的代码可以看出来,接着又对mc1(黑子)加了一个MOUSE_UP的监听事件。作用是松开鼠标的时候将棋子吸附到网格点上,不能随便落子!
function f3(e:MouseEvent):void { m = int((e.stageX - chessboard1.x+ chess/2)/chess); n = int((e.stageY - chessboard1.y + chess/2)/chess); e.target.stopDrag(); bb.x=m*chess+chessboard1.x; bb.y=n*chess+chessboard1.y; mc1.removeEventListener(MouseEvent.MOUSE_UP,f3); }
相关文章推荐
- adb shell获取root权限
- studyjams notes 1B--width and height
- java循环练习:输入一个字符串,统计该字符串中分别包含多少个数字,多少个字母,多少个其他字符
- LeetCode *** 203. Remove Linked List Elements
- Quartz任务调度基本使用
- Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: Connectio
- python练习_12
- 2016-4-10
- 编译原理学习导论-作者四川大学唐良(转)初学者必看
- ModernUI教程:独立显示器DPI感知
- 删除链表中重复的结点
- 微软 Font Size
- 使用Autotools构建C++项目
- 定时器的实现、java定时器Timer和Quartz介绍与Spring中定时器的配置
- 清除mysql表中数据
- Android 5.0 新控件的属性介绍
- CSS3--- 颜色
- Ceph存储系统(ceph安装,inkscope安装)--未完
- 欢迎使用CSDN-markdown编辑器
- Android Studio常用快捷键及设置