我在Android和Cocossharp项目中遇到了这种奇怪的行为。我有一个从CCNode继承的类。在AddedToScene()中,我要添加背景图像,标签和按钮。 在iOS中,一切正常。但是,在Android中,该应用程序挂起,据我所知,没有任何理由。没有异常被抛出。
例如,以下原因导致应用程序挂起。
var background = new CCSprite("questionbackground.png");
该图像与其他所有正常工作的图像位于同一文件夹中。如果我告诉它加载非常小的图像(12.3 KB),则它可以工作。我正在尝试的图像只有53.2 KB。为了进行测试,我将图像的大小减小到19.2 KB,但仍然没有成功。
我还看到CCLabel和字体有类似的行为。
questionLabel = new CCLabel(questionInfo.Question, "MAGNETOB.TTF", 30);
这最终有效,但有时会挂起一段时间。同一行代码在游戏的其他部分中,并且立即返回。
更新
我将加载图像的调用移至ScheduleOnce调用,并删除了异步。这样可以正常工作,但是加载图像仍然需要很长时间,大约需要4秒钟。对于标签,我收到消息说无法加载字体,然后继续尝试其他字体。最终也要花费一些时间。 显示对话框时,标签毕竟使用了正确的字体。
整个AddedToScene大约需要8秒钟。 在iPhone上,一切正常运行,没有任何延迟。所有图像和字体均已加载,整个通话时间不到1秒。