Corona SDK和Lua Socket阻塞动画。

这是我的网络处理程序:https://gist.github.com/anonymous/22fc110ad126ef3a2c5f

问题在于当数据接收时,它会阻塞我的动画(即当请求数据时,我有一个旋转的轮盘),因此看起来应用程序已崩溃,然后在接收到数据后约1或2秒后,它就像魔术一样运行。

这一行似乎确保等待答案时应用程序不会冻结:

本地输入,输出= socket.select({self.sock},nil0) - 这是一种不阻塞运行时读取插座的方式。零超时可以解决问题

这里是另一个超时设置:

self.sock: settimeout(0

我试图将它们更改为0.01和0.001,但没有运气。我不太确定如何使动画不冻结。

也许我应该更改为Corona内置的异步网络处理程序(带有回调函数之一)或者是否可以修改此网络处理程序以使动画不冻结?

点赞
用户1300186
用户1300186

如果你能使用Corona的 network.* api,它是异步的,所以你不会有任何阻塞调用。

文档链接:http://docs.coronalabs.com/daily/api/library/network/index.html

2014-07-07 12:20:06