LayaBox1.7.16 TiledMap 销毁的问题,TiledMap销毁后屏幕变灰,不能显示

本文档探讨了在使用LayaBox1.7.16时遇到的一个TiledMap销毁问题,即在销毁地图后,屏幕变灰且无法显示新的UI元素,尽管UI按钮仍然可点击。通过代码审查,发现TiledMap的destroy方法中,GridSprite的clearAll方法存在错误,导致GridSprite节点未正确销毁,从而引起问题。修复这段代码后,问题得到解决。
摘要由CSDN通过智能技术生成

LayaBox1.7.16 TiledMap 销毁的问题,TiledMap销毁后屏幕变灰,不能显示

问题的表现是,当我销毁地图后,再次创建一个ui节点到场景上,这个时候屏幕是灰色的,什么都不能显示,但是ui的按钮可以点击。

我的代码:

var _map:TiledMap = new TiledMap();
var viewRect:Rectangle =  new Rectangle(0,0,8600,1800);
_map.createMap("res/race.json",viewRect);`

我的游戏销毁的代码:

_map.destroy();
_map = null;
Laya.stage.addChild(new Plazz());

经过排查后发现问题出现在TiledMap相关的代码里面
在TiledMap的destroy方法内

/**
		 * 销毁地图
		 */
		public function destroy():void {
			.......
			
			//这里是销毁地图层的代码
			var tLayer:MapLayer;
			for (i = 0; i < _layerArray.length; i++) {
				tLayer = _layerArray[i];
				tLayer.clearAll();
			}
			
			........
		}
然后在MapLayer的clearAll()里面会去销毁子节点GridSprite
/**
		 * @private
		 * 清理当前对象
		 */
		public function clearAll():void {
		    .......
			var tGridSprite:GridSprite;
			for (i &#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值