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

前端之家收集整理的这篇文章主要介绍了cocos2d-x lua 使用http(下载图片, POST JSON)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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),存放用户的临时数据,方便返回时使用。
原文链接:https://www.f2er.com/cocos2dx/342761.html

猜你在找的Cocos2d-x相关文章