0514-86177077
9:00-17:00(工作日)
在 Cocos2d-Lua 中,存在很多異步或延遲的操作,例如后臺加載圖片、等待一定時間執行代碼等。這些功能的函數通常要求傳入一個 function 作為參數。
但如果我們希望這種回調支持一個對象方法,就有點小困難了。因為 Lua 的對象方法在調用時需要使用 object:method() 形式,而回調是無法支持這種格式的。
好在 Lua 強大的閉包功能不但好用而且對性能無影響,所以我們可以將代碼改寫為:
function MyClass:print() print("load hello.png completed") end
----
local my = MyClass.new()
display.addImageAsync("hello.png", function() my:print() end)
原理非常簡單,就是在匿名函數里調用對象方法而已。
Quick 框架里已經提供了更簡單的使用方法 handler() 函數:
標簽:金昌 德宏 天門 宣城 儋州 臺灣 天門 濰坊
上一篇:Lua 學習筆記之C API 遍歷 Table實現代碼
下一篇:Lua中變相實現continue跳出循環
Copyright ? 1999-2012 誠信 合法 規范的巨人網絡通訊始建于2005年
蘇ICP備15040257號-8