主頁 > 知識庫 > Lua中讓回調函數(shù)支持回調對象方法的解決方法

Lua中讓回調函數(shù)支持回調對象方法的解決方法

熱門標簽:漳州智云呼電話機器人 怎么去除地圖標注 地圖標注大廈 百度地圖標注早餐區(qū)域 新岸線智能電銷機器人 清朝地圖標注哈爾濱 個人怎么在地圖標注需要的店鋪 冀州市地圖標注 武漢外呼防封系統(tǒng)多少錢

在 Cocos2d-Lua 中,存在很多異步或延遲的操作,例如后臺加載圖片、等待一定時間執(zhí)行代碼等。這些功能的函數(shù)通常要求傳入一個 function 作為參數(shù)。


復制代碼 代碼如下:

-- 在后臺加載一個圖像,加載完成后輸出消息
display.addImageAsync("hello.png", function()
    print("load hello.png completed")
end)


但如果我們希望這種回調支持一個對象方法,就有點小困難了。因為 Lua 的對象方法在調用時需要使用 object:method() 形式,而回調是無法支持這種格式的。

好在 Lua 強大的閉包功能不但好用而且對性能無影響,所以我們可以將代碼改寫為:


復制代碼 代碼如下:

local MyClass = class("MyClass")

function MyClass:print()
    print("load hello.png completed")
end

----

local my = MyClass.new()

display.addImageAsync("hello.png", function()
    my:print()
end)


原理非常簡單,就是在匿名函數(shù)里調用對象方法而已。

Quick 框架里已經(jīng)提供了更簡單的使用方法 handler() 函數(shù):


復制代碼 代碼如下:

display.addImageAsync("hello.png", hander(my, my.print))

您可能感興趣的文章:
  • Lua中的string庫(字符串函數(shù)庫)總結
  • Lua中的模塊與module函數(shù)詳解
  • Lua中的函數(shù)相關知識點整理匯總

標簽:金昌 德宏 天門 宣城 儋州 臺灣 天門 濰坊

巨人網(wǎng)絡通訊聲明:本文標題《Lua中讓回調函數(shù)支持回調對象方法的解決方法》,本文關鍵詞  Lua,中,讓,回調,函數(shù),支持,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua中讓回調函數(shù)支持回調對象方法的解決方法》相關的同類信息!
  • 本頁收集關于Lua中讓回調函數(shù)支持回調對象方法的解決方法的相關信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章