标签:
在lua中,cocos2dx 建立的栈只能被一个线程(主线程)访问,如果在c++建立子线程,然后通过c++调用lua回调函数实现异步加载就会报错。
如果试图通过c++子线程直接实现加载资源,返回一个布尔值或者number类型通知lua实现回调,过程是不会显示问题,但c++开辟的子线程加载的
资源文件的内存地址,跟lua开辟的主线程加载资源文件的内存地址不一样,虽然已经加载,图片等资源信息已经存在代码内存中,但是主线程还是访问不到
资源内存,所以子线程加载的图片new 成Sprite都是黑色的。
所以lua通过异步加载是实现不了的,只能通过协同程序实现实现类似异步加载的效果,就是(加载一点,进度条增加一点),
代码地址如下链接:https://github.com/caolan/async
cocos2dx 3.x for lua "异步加载"实现过程
标签:
原文地址:http://www.cnblogs.com/HemJohn/p/4661357.html