濮阳杆衣贸易有限公司

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

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

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

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


復(fù)制代碼 代碼如下:

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


但如果我們希望這種回調(diào)支持一個(gè)對(duì)象方法,就有點(diǎn)小困難了。因?yàn)?Lua 的對(duì)象方法在調(diào)用時(shí)需要使用 object:method() 形式,而回調(diào)是無法支持這種格式的。

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


復(fù)制代碼 代碼如下:

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)


原理非常簡(jiǎn)單,就是在匿名函數(shù)里調(diào)用對(duì)象方法而已。

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


復(fù)制代碼 代碼如下:

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

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

標(biāo)簽:金昌 德宏 天門 宣城 儋州 臺(tái)灣 天門 濰坊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中讓回調(diào)函數(shù)支持回調(diào)對(duì)象方法的解決方法》,本文關(guān)鍵詞  Lua,中,讓,回調(diào),函數(shù),支持,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua中讓回調(diào)函數(shù)支持回調(diào)對(duì)象方法的解決方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua中讓回調(diào)函數(shù)支持回調(diào)對(duì)象方法的解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    晋州市| 南郑县| 敦煌市| 定西市| 阿巴嘎旗| 南通市| 重庆市| 辉县市| 霞浦县| 桂平市| 乌兰察布市| 德阳市| 彩票| 天等县| 南安市| 化隆| 北宁市| 新龙县| 焉耆| 逊克县| 宜君县| 黑山县| 德兴市| 庆云县| 丹棱县| 合水县| 平昌县| 道孚县| 陕西省| 修武县| 华安县| 嘉禾县| 牡丹江市| 平度市| 客服| 普格县| 南昌县| 江安县| 景谷| 盘锦市| 宁阳县|