cocos2d-x技術(shù)群新群:117871561
c++技術(shù)交流群:593010226
1,為了在游戲中流暢的播放幀動(dòng)畫 在進(jìn)入場(chǎng)景時(shí)先緩存動(dòng)畫幀 趁仙。當(dāng)播放動(dòng)畫時(shí) 就不用每次都要重新加載動(dòng)畫幀 了巢墅,但是要在退出場(chǎng)景時(shí)要remove掉铐懊,減少內(nèi)存消耗
--注冊(cè)layer的 進(jìn)入 退出事件
--進(jìn)入場(chǎng)景時(shí)觸發(fā)此函數(shù)
local function onNodeEvent(event)
if event == "exit" then
self:onExit()
elseif event == "enter" then
self:onEnter()
end
end
self:registerScriptHandler(onNodeEvent)
--在進(jìn)入場(chǎng)景時(shí)緩存動(dòng)畫幀
function GameViewLayer:onEnter()
print("... GameViewLayer:onEnter ...")
for i=0,5 do
local name = string.format("operate_action/buhua_%d.png",i)
local sp = cc.Sprite:create(name)
cc.SpriteFrameCache:getInstance():addSpriteFrame(sp:getSpriteFrame(),name)
end
end
--播放動(dòng)畫幀
function GameViewLayer:showBuxi(viewId)
local frames = {}
--讀取緩存幀到 frames
for i=1,5 do
local name = string.format("operate_action/buhua_%d.png",i)
frames[i] =
cc.SpriteFrameCache:getInstance():getSpriteFrame(name)
end
--創(chuàng)建Animation (幀table狮鸭,播放間隔 )
local animation = cc.Animation:createWithSpriteFrames(frames, 0.06)
--創(chuàng)建Animate
local animate = cc.Animate:create(animation)
display.newSprite(animation[1])
:move(0, 90)
:runAction(animate)
end
-- 退出場(chǎng)景時(shí)刪除動(dòng)畫緩存幀
function GameViewLayer:onExit()
print("GameViewLayer onExit")
for i=0,5 do
local name = string.format("operate_action/buhua_%d.png",i)
cc.SpriteFrameCache:getInstance():removeSpriteFrameByName(name)
end
end