动画最后一帧事件setLastFrameCallFunc方法不执行?

setLastFrameCallFunc这个方法在动画播放完后,不会执行,在cocostudio里面有设置了帧事件,setFrameEventCallFunc这个方法是会执行的。

local act = cc.CSLoader:createTimeline("eft/RunEft.csb");
self.csNode:runAction(act);
act:gotoFrameAndPlay(0, 25, false); 

– act:setFrameEventCallFunc(function(frame)

– local event = frame:getEvent();
– print("=========",event);
– end)

act:setLastFrameCallFunc(function(frame)
    print("calll action==========")
end)

有人回复一下么?

我使用quick-lua 3.5的
设置setLastFrameCallFunc方法会crash

使用setFrameEventCallFunc可以回调,
在指定帧上设置帧事件时要勾选自动记录帧选项

quick 3.5的源代码:
do {
// Lambda binding for lua is not supported.
assert(false);
} while(0)
;

说不支持Lambda,直接就assert了,不知道在动画播放完成之后,如果自己要加一些处理的话怎么办
通过在最后一帧加一个帧事件嘛?

我没有解决这个问题,我使用另外一种方式,可能有点麻烦,但自由一些
看我的实现方式:
http://blog.csdn.net/xue_huashan/article/details/48520159

根据这篇文章实现了最后一帧回调:http://blog.k-res.net/archives/1882.html/qq截图20150731104206

但是有个问题,假设一个角色有好几个动作,比如行走、攻击、死亡,我目前摸索的是他们只能在一个时间轴上做,
也就是行走动作是0-60帧, 攻击是70-130, 死亡是140-200帧

这样的话,表明这个角色总共有200帧的动画,setLastFrameCallFunc这个函数只有在死亡动作播完也就是200帧的时候才会回调
不知道如何实现每个动作播完都有回调

我没有使用那个方式,只能帮你到这了:11:

所有动作的关键帧是都做在一个时间轴上,但是每一个动作应该在动作列表里面单独列出起始帧和结束帧,播放的时候播的是每一个动作而不是整个timeline,也就是每一个动作到达最后一帧后都会触发LastFrameCallFunc