如何在cocostudio 2.0 的帧动画播放完之后,回调函数

我用cocostudio2.0 产生了一个只有MainScene的csb文件,其中有几个精灵同时在做帧动画,在cocos2dx rc0中调用。但是不知道如何在帧动画都放完之后回调函数。
我看到有地方说用setFrameEventCallFunc,但是我如果在cocostudio里面设置FrameEvent,这个精灵的所有frame都被标识了这个event,那么如何在最后一帧结束的时候调用函数呢?

我看论坛里,引用CocosGUI.h",写的是直接引用,我怎么引用需要这么长的路径,#include “cocos2d\cocos\ui\CocosGUI.h” 并且引进来后 Node* node = CSLoader::createNode(“ActionTest/MainScene.csb”); 这里的CSLoader提示是类名或命名空间

我的为什么是这样,你知道吗

我也遇到了这个问题,ActionTimeline只有帧事件,没有以前那样动画播放完毕的回调方法

设置frame事件需要开启自动记录帧事件。

@lqss20 只需要引用cocostudio/CocoStudio.h
可以参考下这个帖子
http://www.cocoachina.com/bbs/read.php?tid-265757.html

@chenkai 暂时没有播放完毕的通知。

帧事件的回调函数在那一帧之后的每一帧都会调用,传进的frame相同,这个是bug吗?

setLastFrameCallFunc 这个接口是 播放完毕的事件

帧事件的回调函数在那一帧之后的每一帧都会调用,传进的frame相同: 不正常,有可能是你代码逻辑问题

最后一个帧事件会出现我说的重复调用,比如现在cocos2d-x github上的最新ccpTest 里的ActionTimeline/boy_1.ExportJson 有3个帧事件 没有出现问题是因为最后一个帧事件是第60帧 而他播放的时候设置的就是60帧 action->gotoFrameAndPlay(0, 60, false); 在这里播放帧数加大(这个动画本来就不止60帧)或者在ActionTimeline/boy_1.ExportJson里把最后一个帧事件去掉,就能看到重复调用的问题了
请斑竹进来看看

.exportJson 对应是 1.6.x之前版本的编辑器吧,对应的动画播放应该是CCArmature CCArmatureAnimation 那一套(而不是actiontimeline)。

同时我也仔细看了 cpptest 里面 boy_1已经没有在 ccpptest里面有用到啊。

我用 ccptest 里面的 TestTimelineFrameEvent 测试你所说的重复调用问题, 没有发现在你说的问题。
这是我的测试代码:
Node* node = CSLoader::createNode(“ActionTimeline/DemoPlayer.csb”);
ActionTimeline* action = CSLoader::createTimeline(“ActionTimeline/DemoPlayer.csb”);
auto timeline = Timeline::create();
auto frame = EventFrame::create();
frame->setEvent(“changeColor”);
frame->setFrameIndex(30);
timeline->addFrame(frame);
auto frameTwo = EventFrame::create();
frameTwo->setEvent(“endChangeColor”);
frameTwo->setFrameIndex(40);
timeline->addFrame(frameTwo);
action->addTimeline(timeline);
node->runAction(action);
action->gotoFrameAndPlay(0, 60, true);

如果还有问题, 及时反馈,并提供更详细的信息, 谢谢!

https://github.com/cocos2d/cocos2d-x/commit/5b0e2f0304d48e3936a25d3099455755ccb25573
在这里修复过了,
是我的版本太低
能联系到html5版本的团队把这一块修复同步到js那里么。。