AS3语言,如何获取鼠标单击事件当前目标的坐标及对象(在线等)
我在做一个滑动的拼图Flash游戏,使用AS3语言。我做了11个位图的小图片,因为之前我查了下资料,貌似MovieCilp的位图不能添加鼠标侦听器,所以我把这11个小图片...
我在做一个滑动的拼图Flash游戏,使用AS3语言。
我做了11个位图的小图片,因为之前我查了下资料,貌似MovieCilp的位图不能添加鼠标侦听器,所以我把这11个小图片放到了Sprite容器里,每个图片都有一个独立的容器。
问题:
我单击其中一个小图片的时候,如何取得该图片的坐标及其对象? 请把代码写出来,谢谢
public function btnMovePiece(e:MouseEvent)
{
//请在这里写如何获取当前鼠标单击的图片坐标,及其对象。
} 展开
我做了11个位图的小图片,因为之前我查了下资料,貌似MovieCilp的位图不能添加鼠标侦听器,所以我把这11个小图片放到了Sprite容器里,每个图片都有一个独立的容器。
问题:
我单击其中一个小图片的时候,如何取得该图片的坐标及其对象? 请把代码写出来,谢谢
public function btnMovePiece(e:MouseEvent)
{
//请在这里写如何获取当前鼠标单击的图片坐标,及其对象。
} 展开
4个回答
展开全部
你的11个图片都有自己的Sprite容器对吧?这11个容器的名字是什么?没有名字的话,起码也要有个数组储存对它们的引用吧?
Bitmap不继承InteractiveObject类,所以不听你的鼠标操作,监听事件要注册给它们的Sprite容器才行啊。要通过操作它们的容器的坐标,间接地改变它们自己的坐标。
public function btnMovePiece(e:MouseEvent)
{
Sprite(e.currentTarget)就是它的Sprite容器
Sprite(e.currentTarget).x\ Sprite(e.currentTarget).y就是坐标。
}
Bitmap不继承InteractiveObject类,所以不听你的鼠标操作,监听事件要注册给它们的Sprite容器才行啊。要通过操作它们的容器的坐标,间接地改变它们自己的坐标。
public function btnMovePiece(e:MouseEvent)
{
Sprite(e.currentTarget)就是它的Sprite容器
Sprite(e.currentTarget).x\ Sprite(e.currentTarget).y就是坐标。
}
展开全部
public function btnMovePiece(e:MouseEvent)
{
//请在这里写如何获取当前鼠标单击的图片坐标,及其对象。
var obj:Object=e.currentTarget;//这个就是对象
trace(obj.x);//坐标
trace(obj.y);
}
{
//请在这里写如何获取当前鼠标单击的图片坐标,及其对象。
var obj:Object=e.currentTarget;//这个就是对象
trace(obj.x);//坐标
trace(obj.y);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for (var i:uint=0; i<20; i++) {
var A:Rect=new Rect();
A.x = Math.random() * 450 + 50;
A.y = Math.random() * 300 + 50;
addChild(A)
A.addEventListener(MouseEvent.CLICK,go)
}
function go(event:MouseEvent){
trace("实例名称"+event.currentTarget.name)
trace("X值"+event.currentTarget.x+":"+"Y值"+event.currentTarget.y)
}
var A:Rect=new Rect();
A.x = Math.random() * 450 + 50;
A.y = Math.random() * 300 + 50;
addChild(A)
A.addEventListener(MouseEvent.CLICK,go)
}
function go(event:MouseEvent){
trace("实例名称"+event.currentTarget.name)
trace("X值"+event.currentTarget.x+":"+"Y值"+event.currentTarget.y)
}
更多追问追答
追问
提示访问的属性 event 未定义
追答
如果你连函数定义错误都不能解决的话,说明你只是把我的代码粘到了你的代码中,前后不一定义不一样肯定出错,不信你把我的代码放到一个新文件里测试。如果还出错,那就见鬼了。其实你只需要把
public function btnMovePiece(e:MouseEvent)
你的这行小括号里的e 换成event就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public function btnMovePiece(e:MouseEvent)
{
trace("实例名称:"+e.currentTarget.name)
trace("X值:"+e.currentTarget.x + "Y值:"+e.currentTarget.y)
}
楼上那位朋友说的很明白了。
{
trace("实例名称:"+e.currentTarget.name)
trace("X值:"+e.currentTarget.x + "Y值:"+e.currentTarget.y)
}
楼上那位朋友说的很明白了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询