--------------------------------------------------------------------
--
-- TextureAsync
--
--------------------------------------------------------------------
local function TextureAsync()
local ret = createTestLayer("Texture Async Load",
"Textures should load while an animation is being run")
local m_nImageOffset = 0
local size =cc.Director:getInstance():getWinSize()
local label = cc.Label:createWithTTF("Loading...", s_markerFeltFontPath, 32)
label:setAnchorPoint(cc.p(0.5, 0.5))
label:setPosition(cc.p( size.width/2, size.height/2))
ret:addChild(label, 10)
local scale = cc.ScaleBy:create(0.3, 2)
local scale_back = scale:reverse()
local seq = cc.Sequence:create(scale, scale_back)
label:runAction(cc.RepeatForever:create(seq))
local function imageLoaded(texture)
local director = cc.Director:getInstance()
local sprite = cc.Sprite:createWithTexture(texture)
sprite:setAnchorPoint(cc.p(0,0))
ret:addChild(sprite, -1)
local size = director:getWinSize()
local i = m_nImageOffset * 32
sprite:setPosition(cc.p( i % size.width, math.floor((i / size.width)) * 32 ))
m_nImageOffset = m_nImageOffset + 1
cclog("Image loaded:...")-- %p", tex)
end
local function loadImages(dt)
local i = 0
local j = 0
for i=0, 7 do
for j=0, 7 do
local szSpriteName = string.format(
"Images/sprites_test/sprite-%d-%d.png", i, j)
cc.Director:getInstance():getTextureCache():addImageAsync(
szSpriteName, imageLoaded)
end
end
cc.Director:getInstance():getTextureCache():addImageAsync("Images/background1.jpg", imageLoaded)
cc.Director:getInstance():getTextureCache():addImageAsync("Images/background2.jpg", imageLoaded)
cc.Director:getInstance():getTextureCache():addImageAsync("Images/background.png", imageLoaded)
cc.Director:getInstance():getTextureCache():addImageAsync("Images/atlastest.png", imageLoaded)
cc.Director:getInstance():getTextureCache():addImageAsync("Images/grossini_dance_atlas.png",imageLoaded)
ret:unscheduleUpdate()
end
local function onNodeEvent(event)
if event == "enter" then
ret:scheduleUpdateWithPriorityLua(loadImages,0)
elseif event == "exit" then
ret:unscheduleUpdate()
cc.Director:getInstance():getTextureCache():removeAllTextures()
end
end
ret:registerScriptHandler(onNodeEvent)
return ret
end
待学习 异步加载 纹理 addImageAsync
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。