spineRunTime for cocos2dx v3 中删除animation,发现下面写法会崩溃:

    spine::SkeletonAnimation* animationNode = spine::SkeletonAnimation::createWithFile("explosion/explosion.json", "explosion/explosion.atlas", 1);

animationNode->setAnimation(0, "animation", false);

animationNode->setPosition(ccp(x,y));

   animationNode->setEndListener( [animationNode] (int trackIndex) {

     //spTrackEntry* entry = spAnimationState_getCurrent(animationNode->getState(), trackIndex);

//const char* t_animationName = (entry && entry->animation) ? entry->animation->name : 0;

//string animationName=t_animationName==0?"":t_animationName;

//CCLOG("%d end: %s", trackIndex, animationName.c_str());

animationNode->removeFromParentAndCleanup(true);

});

于是只好通过加一个延迟来避免崩溃,下面是可用的写法:

   spine::SkeletonAnimation* animationNode = spine::SkeletonAnimation::createWithFile("explosion/explosion.json", "explosion/explosion.atlas", 1);

animationNode->setAnimation(0, "animation", false);

animationNode->setPosition(ccp(x,y));

   animationNode->setEndListener( [animationNode] (int trackIndex) {

     //spTrackEntry* entry = spAnimationState_getCurrent(animationNode->getState(), trackIndex);

//const char* t_animationName = (entry && entry->animation) ? entry->animation->name : 0;

//string animationName=t_animationName==0?"":t_animationName;

//CCLOG("%d end: %s", trackIndex, animationName.c_str());

animationNode->runAction(CCSequence::create(CCDelayTime::create(0.01),CCRemoveSelf::create(),NULL));

});

或者用completeListener,仍然需要加延迟:

animationNode->setCompleteListener( [animationNode] (int trackIndex, int loopCount) {

//spTrackEntry* entry = spAnimationState_getCurrent(animationNode->getState(), trackIndex);

//const char* t_animationName = (entry && entry->animation) ? entry->animation->name : 0;

//string animationName=t_animationName==0?"":t_animationName;

//CCLOG("%d complete: %s %d", trackIndex, animationName.c_str(),loopCount);

animationNode->runAction(CCSequence::create(CCDelayTime::create(0.01),CCRemoveSelf::create(),NULL));

});

spineRunTime for cocos2dx v3 中动画播完删除animation的更多相关文章

  1. spineRuntTime for cocos2dx v3,attack播完后回到idle

    spineRuntTime for cocos2dx v3,attack播完后回到idle. _animationNode = spine::SkeletonAnimation::createWith ...

  2. css3中动画(transition)和过渡(animation)详析

    css3中动画(transition)和过渡(animation)详析

  3. [Cocos2d-x v3.x]序列帧动画

      简单介绍 Cocos2d-x中.动画的详细内容是依靠精灵显示出来的,为了显示动态图片,我们须要不停切换精灵显示的内容.通过把静态的精灵变为动画播放器从而实现动画效果. 动画由帧组成,每一帧都是一个 ...

  4. Cocos2d-x Lua中帧动画

    帧动画就是按一定时间间隔.一定的顺序.一帧一帧地显示帧图片.我们的美工要为精灵的运动绘制每一帧图片,因此帧动画会由很多帧组成,按照一定的顺序切换这些图片就可以了. 在Cocos2d-x Lua中播放帧 ...

  5. Cocos2d-x v3.11 中的新内存模型

    Cocso2d-x v3.11 一项重点改进就是 JSB 新内存模型.这篇文章将专门介绍这项改进所带来的新研发体验和一些技术细节. 1. 成果 在 Cocos2d-x v3.11 之前的版本中,使用 ...

  6. 使用cocos2d-x v3.1开发小游戏(基本框架)

    小游戏的组成 欢迎界面 在游戏资源未全部加载完之前就需要载入,避免进入游戏会有一段黑屏时间. 可以用来展示游戏名称或者开发者logo. 开始菜单界面 一般用于显示游戏名称和关卡选择(或者称游戏难度选择 ...

  7. Cocos2d-x v3.6制作射箭游戏(二)

    原文 Cocos2d-x v3.6制作射箭游戏(二) 六 24, 2015by RENSHANin COCOS2D-X 上章我们创建并加载了游戏地图,接下来的两章我们将实现如下的效果. 在开始之前,先 ...

  8. cocos2dx v3.x lua绑定分析

    打算新项目转到cocos2dx v3上了,下载代码浏览过后发现改动真是非常大,结构性调整很多. 比如tolua绑定这一块,就几乎全翻新了. 胶水代码的生成,改成了全自动式的,通过clang来分析c++ ...

  9. Cocos2d-x v3.1 Hello world程序(四)

    Cocos2d-x v3.1 Hello world程序(四) 在上一篇文章中我们我们已经使用Cocos-Console工具生成了工程,本机生成的目录为:"D:\CocosProject\T ...

随机推荐

  1. IE11与Cognos怪谈

    想必大家都知道高版本的IE运行Cognos相关组件的时候要设置兼容性,安全级别相对调低等设置.但是升级了win10系统后,默认的IE版本是IE11的,装了Cognos10.2.1之后,进行了一个常规的 ...

  2. 数据需求统计常用awk命令

    原文:http://www.5iops.com/html/2013/script_0418/267.html 1.将时间转换为时间戳 select unix_timestamp('2009-10-26 ...

  3. COM中的HRESULT

  4. Graphical vi-vim Cheat Sheet and Tutorial

    主要内容: VIM编辑器的快捷命令cheat sheet(小抄),一共七张图,简单明了地介绍了vim的快捷命令,相比于满满的图表,分成七小块更易于记住. 更多关于vim的cheat sheet以及相关 ...

  5. php之phpstorm入门

    入门篇!见这章

  6. 子查询三(在FROM子句中使用子查询)

    FROM子句中使用子查询一般都是返回多行多列,可以将其当作一张数据表 示例一.查询出每个部门的编号,名称,位置,部门人数,平均工资 SELECT d.deptno,d.dname,d.loc,temp ...

  7. 王立平--include在Android中的应用

    一个布局中包括还有一个布局 1.在layout下定义activity_other.xml布局 2.代码中的包括例如以下: <LinearLayout xmlns:android="ht ...

  8. 算法笔记_169:历届试题 兰顿蚂蚁(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种. 平面上的正方形格子被填上黑色或白色.在其中一格正方形内有一只“蚂 ...

  9. windows安装sqlite

    1.下载 sqlite的官方下载地址为http://www.sqlite.org/download.html  (sqlite-shell-win32-x86-3090200) 2.将sqlite加入 ...

  10. 解决ios微信内置浏览器触发事件有问题方案

    你的问题原因是事件冒泡导致找不到或者找到多个事件导致的, 你这样去写! $(“#div1").on("click",".k1",function(){ ...