在游戏中有一个openDialog 和 openNetDialog,前者的话,直接就弹出界面了,不管你加载数据了没有。后者等数据加载完毕才会显示出来。
代码:
--分步打开对话框
--网络消息回来后需要调用self:resume()进行恢复
function UIManager:openNetDialog( dialog , zorder , withOpenAnimation )
self.netDialog = dialog
local co = coroutine.create( function()
dialog:retain()
NetManager:registerNet( dialog )
coroutine.yield( )
self:openDialog( dialog , zorder , withOpenAnimation )
dialog:release()
self.netDialog = nil
end)
dialog.co = co
function dialog:resume()
if self.co then
coroutine.resume( self.co )
end
end
coroutine.resume( co )
end