lufy's legend

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

移除图层,重新加入。会丢失子图层下子图层里按钮的事件

[复制链接]

8

主题

0

好友

104

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2014-10-16 18:53:39 |只看该作者 |倒序浏览
简约如下:
var  Layer1 = new LSprite() ;
var Layer1Bt = new LButton();
Layer1Bt.addEventListener(LMouseEvent.MOUSE_DOWN,function(){consonle.log('layer1')});
Layer1.addChild(Layer1Bt );

var childLayer = new LSprite() ;
var childBt = new LButton();
childBt .addEventListener(LMouseEvent.MOUSE_DOWN,function(){consonle.log('childLayer')});
childLayer .addChild(childBt );

Layer1.addChild(childLayer );

addChild(Layer1);
这里Layer1和childLayer下的按钮都有效。
removeChild(Layer1 );
addChild(Layer1);

这里开始childLayer下的按钮就失效了。layer1的按钮还有效。

我主要是想这样做场景切换。有部分场景基本是不会改变,但是却是经常使用的(菜单场景和关卡选择场景)。今天做切换的时候,出现了这样的问题。或者是我哪里写的不对。






回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

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

沙发
发表于 2014-10-16 23:37:54 |只看该作者
为了节约内存,任何对象被移除的时候都会被彻底释放掉
如果你不想对象被释放掉,那可以通过LGlobal.destroy 来控制,比如下面
  1. LGlobal.destroy = false;
  2. //removeChild等删除动作
  3. LGlobal.destroy = true;
复制代码
不回答与技术和引擎不相关的问题
回复

使用道具 举报

8

主题

0

好友

104

积分

士兵

Rank: 1

板凳
发表于 2014-10-17 10:02:39 |只看该作者
lufy 发表于 2014-10-16 23:37
为了节约内存,任何对象被移除的时候都会被彻底释放掉
如果你不想对象被释放掉,那可以通过LGlobal.destroy ...

我重新加载,不是应该把childList的对象和对象注册的事件重新一起加载进来吗?
怎么在多层嵌套后,离最顶层最远的节点图层事件丢失了。
是remove应该是会把对象mouselist清空?
回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

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

地板
发表于 2014-10-17 11:24:13 |只看该作者
Ramsey 发表于 2014-10-17 10:02
我重新加载,不是应该把childList的对象和对象注册的事件重新一起加载进来吗?
怎么在多层嵌套后,离最顶 ...

LGlobal.destroy = false;的话不会清空事件
不回答与技术和引擎不相关的问题
回复

使用道具 举报

8

主题

0

好友

104

积分

士兵

Rank: 1

5#
发表于 2014-10-17 11:50:33 |只看该作者
lufy 发表于 2014-10-17 11:24
LGlobal.destroy = false;的话不会清空事件

3q  (:  
回复

使用道具 举报

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

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

Archiver|lufy's legend

GMT+8, 2024-5-21 23:29 , Processed in 0.048465 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部