校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

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

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


復制代碼 代碼如下:

-- 在后臺加載一個圖像,加載完成后輸出消息
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)


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

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


復制代碼 代碼如下:

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

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

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

巨人網絡通訊聲明:本文標題《Lua中讓回調函數支持回調對象方法的解決方法》,本文關鍵詞  Lua,中,讓,回調,函數,支持,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua中讓回調函數支持回調對象方法的解決方法》相關的同類信息!
  • 本頁收集關于Lua中讓回調函數支持回調對象方法的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 许昌县| 东安县| 陈巴尔虎旗| 新津县| 从江县| 定安县| 马鞍山市| 金坛市| 奉新县| 大同县| 陆丰市| 泽库县| 洪洞县| 荔波县| 三亚市| 石渠县| 卓资县| 余江县| 靖边县| 阿拉善左旗| 沙田区| 中阳县| 当雄县| 崇礼县| 甘泉县| 康定县| 平南县| 武夷山市| 共和县| 沈丘县| 琼海市| 尚志市| 江孜县| 神木县| 镇赉县| 乳山市| 宝清县| 茂名市| 旺苍县| 高碑店市| 浦城县|