加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x lua 使用http(下载图片, POST JSON)

发布时间:2020-12-14 21:27:14 所属栏目:百科 来源:网络整理
导读:cocos2d-x lua 使用http(下载图片,POST JSON) version: cocos2d-x 3.6 1.使用http post json与服务器交互 require ( "src/cocos/cocos2d/json" ) require ( "src/cocos/network/NetworkConstants" ) -- post json local xhr = cc.XMLHttpRequest:new()xhr.re

cocos2d-x lua 使用http(下载图片,POST JSON)

version: cocos2d-x 3.6

1.使用http post json与服务器交互

require("src/cocos/cocos2d/json")
require("src/cocos/network/NetworkConstants")

-- post json
local xhr = cc.XMLHttpRequest:new()
xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_JSON
xhr:setRequestHeader("Content-Type","application/json")
xhr:open("POST","www.baidu.com")
local function loginCallback()
    print("xhr.readyState is:",xhr.readyState,"xhr.status is: ",xhr.status)
    if xhr.readyState == 4 and (xhr.status >= 200 and xhr.status < 207) then
        local response = xhr.response
        local output = json.decode(response)
        -- print
        table.foreach(output,function(i,v) print (i,v) end)

        -- success ...
    else
        -- fail ...
    end
end
xhr:registerScriptHandler(loginCallback)
xhr:send(sendJson)

2.使用http get下载网络图片

-- get (image)

pSprite:retain()  -- a sprite
local xhr = cc.XMLHttpRequest:new()

-- tag
xhr._urlFileName = urlFileName
xhr._urlSprite = pSprite

xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_STRING
xhr:open("GET","http://cocos2d-x.org/s/images/img-cocos2dx.jpg")
local function onDownloadImage()
    print("xhr.readyState is:",xhr.status)
    if xhr.readyState == 4 and (xhr.status >= 200 and xhr.status < 207) then
        local fileData = xhr.response
        local fullFileName = cc.FileUtils:getInstance():getWritablePath() .. "/" .. xhr._urlFileName
        local file = io.open(fullFileName,"wb")
        file:write(fileData)
        file:close()
        local texture2d = cc.Director:getInstance():getTextureCache():addImage(fullFileName)
        local pSprite = xhr._urlSprite
        if texture2d then
            pSprite:setTexture(texture2d)
        end
        pSprite:release() -- be careful
    end
end
xhr:registerScriptHandler(onDownloadImage)
xhr:send()
  • 在使用xhr时,可以添加自己的数据(如:xhr._urlSprite = pSprite),存放用户的临时数据,方便返回时使用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读