lufy's legend
标题:
求助关于鼠标点击事件
[打印本页]
作者:
Darex
时间:
2014-2-14 11:45
标题:
求助关于鼠标点击事件
有两个按钮A和B
A绑定functionC,B绑定functionD
单独点击A,B,分别可以执行各自的方法,
现将两按钮部分区域重叠,B在A上,点击重叠区域,只会执行functionD
如何才能functionC和functionD都执行?
还有鼠标容器如何使用?
LMouseEventContainer.set(LMouseEvent.MOUSE_UP,
true
);添加以上代码后,也不能实现需求
麻烦介绍下鼠标容器的使用,最好附上代码。谢谢
作者:
lufy
时间:
2014-2-14 23:27
使用鼠标容器就能实现你的要求了。
如果你的鼠标事件是鼠标抬起事件的话,那么下面的设置是没有错的。
LMouseEventContainer.set(LMouseEvent.MOUSE_UP, true);
复制代码
所以,看看鼠标容器的设置与鼠标事件加载的顺序是否有误,这个设置必须在你加载鼠标事件之前,注意是事件加载之前,不是事件发生之前
作者:
Darex
时间:
2014-2-17 11:44
LMouseEventContainer.set(LMouseEvent.MOUSE_UP, true);
var btnA = getButton("A");
btnA.addEventListener(LMouseEvent.MOUSE_UP, function () {
alert(1);
});
backLayer.addChild(setCoordinate(btnA, 440, 400));
var btnB = getButton("B");
btnB.addEventListener(LMouseEvent.MOUSE_UP, function () {
alert(2);
});
backLayer.addChild(setCoordinate(btnB, 500, 400));
我是如上使用的,btnA和btnB部分重叠,点击重叠部分,只触发的btnB的事件,btnA的未触发
求教
作者:
Darex
时间:
2014-2-19 18:04
有方法解决没?急需
用的是1.8.7
作者:
lufy
时间:
2014-2-20 13:33
Darex 发表于 2014-2-19 18:04
有方法解决没?急需
用的是1.8.7
真是不好意思
我检查了下源码,发现我竟然真的加了遮罩了
现在如果要实现你说的效果的话,只能把鼠标时间加到父级对象上了,我写了个效果你可以参考一下
效果如下
http://lufylegend.com/demo/test/20.html
下面是完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>lufylegend.js</title>
<script src="http://lufylegend.com/js/lufylegend-1.8.7.min.js" type="text/javascript"></script>
<script src="http://lufylegend.com/js/lib/lufylegend.ui-0.5.0.min.js" type="text/javascript"></script>
</head>
<body style="margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;">
<div id="mvclegend">loading</div>
<script>
init(10,"mvclegend",320,480,main);
function main(){
LMouseEventContainer.set(LMouseEvent.MOUSE_UP,true);
var layer = new LSprite();
layer.x = layer.y = 100;
addChild(layer);
var btnA = new LButtonSample1("测试按钮1",20);
btnA.x = 10;
btnA.y = 10;
btnA.mouseUpListener = function(){
alert("A");
};
layer.addChild(btnA);
var btnB = new LButtonSample1("测试按钮2");
btnB.x = 20;
btnB.y = 20;
btnB.mouseUpListener = function(){
alert("B");
};
layer.addChild(btnB);
layer.addEventListener(LMouseEvent.MOUSE_UP, function (event) {
var self = event.clickTarget;
var childList = self.childList;
for(var i=0,l=childList.length;i<l;i++){
var child = childList[i];
if(event.selfX > child.x && event.selfX < child.x + child.getWidth() &&
event.selfY > child.y && event.selfY < child.y + child.getHeight()){
if(typeof child.mouseUpListener == "function"){
child.mouseUpListener(event);
}
}
}
});
}
</script>
</body>
</html>
复制代码
欢迎光临 lufy's legend (http://lufylegend.com/forum/)
Powered by Discuz! X2.5