废话不多说,先上代码先。
local function playMagic(refereeControl , selfControl ,target , targetCount)
local url = Resource.RES_SKILL_ROOT_PATH..skillId.."/Magic"..skillId
local skillAni = Tools.getAnimation(url)
if(target == nil ) then
skillAni:setPosition(400,400)
else
skillAni:setPosition(target.getX() ,target.getY())
end
skillAni:getAnimation():setFrameEventCallFunc(function( bone,evt,originFrameIndex,currentFrameIndex)
if(target) then
target.byAttack(selfControl , 100)
else
local targetList = refereeControl.getRoleList()
for i = 1 , i <= 3 do
targetList.get(i).byAttack(selfControl , 100)
end
end
end)
skillAni:getAnimation():setMovementEventCallFunc( function (obj , movementType , name)
if(movementType == 2 ) then
obj:getAnimation():stop()
obj:setVisible(false)
refereeControl.getBattleControl():removeChild(obj)
end
end)
skillAni:getAnimation():play("magic" )
refereeControl.getBattleControl():addChild(skillAni)
end
```
上述代码中,
getBattleControl 是一个layer层对象
skillAni 是一个cocosStudio导出的一个动画(CCArmature)对象
上述代码,在函数中创建一个局部动画变量,添加到一个layer中,可等到动画结束的时候,我去removeChild这个已经添加到layer里面的动画时, 窗口就白屏。
如果是cocos 的自动管理内存把这个skillAni释放了,但也不应该啊,我已经添加到一个layer里面,也不应该翻译这个对象啊。
还望求大神指点迷津 运行第27行,就直接白屏。不知道什么原因啊啊啊
我的联系QQ380494215