整理一下xlua中的async_tosync()
參考xlua案例7
async_to_sync()
將一個傳遞過來的方法包裝成一個需要在協程中執行的方法,
通過這個方法調用參數中的方法時會自動添加一個回調函數的參數 並調用這個原方法,原方法執行完即掛起這個協程(執行原方法的方法)
當原方法執行傳入的回調函數之后,再次啟動掛起的該協程,並最終執行完畢,回調函數執行的時候的參數返回調用的函數。
在coroutine執行前作為方法 使用xxx() 調用, 在回調函數執行完成后做為變量接收返回值
高能注意: 不能在主線程中調用coroutine.yield()會報錯LuaException: attempt to yield from outside a coroutine,其實自己並沒有調用yield,但是async_to_sync中使用了這個方法
所以需要使用util.coroutine_call() 來開啟一個協程,在這個協程里使用async_tosync() 而不是直接調用
return后邊不能有代碼了。會報錯 error loading module “腳本名” from resource
下邊是例子 一共兩個按鈕,一個是標簽為StartButton的,一個是標簽為Button的

xlua腳本在Resources下
也可以寫成一個腳本,下邊這樣
OK
記錄一下