egret白鹭使用exml关联id获取不到对象

在使用exml关联id的时候死活获取不到对象,实在是找不到哪里的问题,怎么打印出来都是undefined,真的是哭了

class SceneBegin extends eui.Component implements  eui.UIComponent {

	public beginBtn:eui.Button;

	public constructor() {
		super();
		this.touchEnabled = true;
	}

	protected partAdded(partName:string,instance:any):void
	{
		super.partAdded(partName,instance);
	}


	protected childrenCreated():void
	{
		super.childrenCreated();
		this.init();
	}

	private init() {
		// 这里的 once 其实就是 addEventListener 的意思,只不过它只监听一次
		this.beginBtn.once(egret.TouchEvent.TOUCH_TAP, this.start, this);
	}

	private start() {
		// 在舞台中添加游戏场景
		this.parent.addChild(new SceneGame());
		// 在舞台中移除初始场景
		this.parent.removeChild(this);
	}
	
}

后来发现exml是异步的,页面出现的时候异步还未加载完成,在childrenCreated中加一个完成的监听事件

//将this.init();改成下面的

//这里加一个完成的监听事件,因为exml变成了异步加载,资源没有被加载完成所以就监听不成功
		this.addEventListener(eui.UIEvent.COMPLETE,this.init,this);

真的好坑!!!文档写了个寂寞
令人哭泣在这里插入图片描述
第二天写完项目打包后发现又没反应了,好的我知道了。然后把这个又改回来this.init()就可以了,再去调试就只能用this.init()这是一个bug吧
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值