lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10774|回复: 4
打印 上一主题 下一主题

求助关于鼠标点击事件

[复制链接]

6

主题

0

好友

64

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2014-2-14 11:45:15 |只看该作者 |倒序浏览
有两个按钮A和B
A绑定functionC,B绑定functionD
单独点击A,B,分别可以执行各自的方法,

现将两按钮部分区域重叠,B在A上,点击重叠区域,只会执行functionD
如何才能functionC和functionD都执行?

还有鼠标容器如何使用?
LMouseEventContainer.set(LMouseEvent.MOUSE_UP, true);添加以上代码后,也不能实现需求

麻烦介绍下鼠标容器的使用,最好附上代码。谢谢
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2014-2-14 23:27:17 |只看该作者
使用鼠标容器就能实现你的要求了。
如果你的鼠标事件是鼠标抬起事件的话,那么下面的设置是没有错的。
  1. LMouseEventContainer.set(LMouseEvent.MOUSE_UP, true);
复制代码
所以,看看鼠标容器的设置与鼠标事件加载的顺序是否有误,这个设置必须在你加载鼠标事件之前,注意是事件加载之前,不是事件发生之前
不回答与技术和引擎不相关的问题
回复

使用道具 举报

6

主题

0

好友

64

积分

士兵

Rank: 1

板凳
发表于 2014-2-17 11:44:09 |只看该作者
                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的未触发
求教

回复

使用道具 举报

6

主题

0

好友

64

积分

士兵

Rank: 1

地板
发表于 2014-2-19 18:04:58 |只看该作者
有方法解决没?急需

用的是1.8.7
回复

使用道具 举报

37

主题

8

好友

9312

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

5#
发表于 2014-2-20 13:33:34 |只看该作者
Darex 发表于 2014-2-19 18:04
有方法解决没?急需

用的是1.8.7

真是不好意思
我检查了下源码,发现我竟然真的加了遮罩了
现在如果要实现你说的效果的话,只能把鼠标时间加到父级对象上了,我写了个效果你可以参考一下
效果如下
http://lufylegend.com/demo/test/20.html
下面是完整代码
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>lufylegend.js</title>
  6.     <script src="http://lufylegend.com/js/lufylegend-1.8.7.min.js" type="text/javascript"></script>
  7.     <script src="http://lufylegend.com/js/lib/lufylegend.ui-0.5.0.min.js" type="text/javascript"></script>
  8. </head>
  9.     <body style="margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;">
  10.         <div id="mvclegend">loading</div>
  11.         <script>
  12.         init(10,"mvclegend",320,480,main);
  13.                 function main(){
  14.                         LMouseEventContainer.set(LMouseEvent.MOUSE_UP,true);
  15.                         var layer = new LSprite();
  16.                         layer.x = layer.y = 100;
  17.                         addChild(layer);
  18.                        
  19.                         var btnA = new LButtonSample1("测试按钮1",20);
  20.                         btnA.x = 10;
  21.                         btnA.y = 10;
  22.                         btnA.mouseUpListener = function(){
  23.                                 alert("A");
  24.                         };
  25.                         layer.addChild(btnA);
  26.                         var btnB = new LButtonSample1("测试按钮2");
  27.                         btnB.x = 20;
  28.                         btnB.y = 20;
  29.                         btnB.mouseUpListener = function(){
  30.                                 alert("B");
  31.                         };
  32.                         layer.addChild(btnB);
  33.                        
  34.             layer.addEventListener(LMouseEvent.MOUSE_UP, function (event) {
  35.                     var self = event.clickTarget;
  36.                     var childList = self.childList;
  37.                                 for(var i=0,l=childList.length;i<l;i++){
  38.                                         var child = childList[i];
  39.                                         if(event.selfX > child.x && event.selfX < child.x + child.getWidth() &&
  40.                                         event.selfY > child.y && event.selfY < child.y + child.getHeight()){
  41.                                                 if(typeof child.mouseUpListener == "function"){
  42.                                                         child.mouseUpListener(event);
  43.                                                 }
  44.                                         }
  45.                                 }
  46.                         });
  47.                 }
  48.         </script>
  49.     </body>
  50. </html>
复制代码
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-7 16:03 , Processed in 0.049360 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部