0

编写游戏时,我遇到了一个问题,即在加载任何内容(图像/声音效果)后,触摸屏会出现大量延迟。我点击屏幕,不久之后,该点击被注册。这在 iPhone 4 或 iPad 上几乎看不到,但在任何较旧的设备(尤其是 2G 设备)上,我在触摸注册前的几秒钟内查看!

为了清楚起见,我点击……然后将手指从屏幕上移开,大约 5 秒后,我点击的图标记录了点击。

它似乎只在加载大量图像后发生(我在每个级别开始时以及返回前端时都会这样做)。一旦它“赶上”,一切都会再次正常工作。

有没有办法在加载后刷新触摸缓冲区(我假设必须存在一个!)?

提前致谢

4

1 回答 1

0

听起来您想做的是“清除缓存”。加载大图像会占用大量内存,众所周知,智能手机内存是一种宝贵的商品……您就是无法获得足够的内存。特别是如果您正在使用处理堆存储和垃圾收集的运行时语言进行编程。当可用 RAM 没有为所有“缓冲”请求提供足够的可寻址空间时,您经常会看到您得到的行为。您遇到的另一个问题是处理能力和核心......尽管现代手机变得相当不错,但与标准计算设备相比,它们仍然可以使用。如果您用完了线程,应用程序必须等到有一个线程空闲。这也可能导致您遇到的问题......事实上,我敢打赌这就是问题所在。我之前读过一篇论坛帖子可能会有所帮助:

我们什么时候应该删除 iPhone 应用程序中的缓存数据?

您可以按如下方式清除缓存......但我不确定这会解决您的问题。如果您保留这些图像,您是否打算将它们存储到手机的闪存中?请记住,如果您从内存中删除图像,那么您将需要再次将它们恢复。如果我们在这里谈论背景图像,那么减小图像的大小可能是一个更好的建议……或者加载更大的图像并使用 DIV 跨越它。由于我不确定您是如何构建“游戏”的,因此我无法推断出最佳选择。

于 2011-09-16T11:00:53.007 回答