关于动画监听的事件回调写法

callBackAnim_Dead:function (event) {
// 对象攻击动画后切默认状态动画
var uu = this;

    if (uu.is_unit_type(Unit.unit_type.UT_ROLE)) {
        uu.remove();
    }
},

你这个方法是在那个js下的,和你的on是同一个js么,为何用u.callBackAnim_Dead

这个event 回调,我发现用event获取不到node对象,animation.on(‘finished’, u.callBackAnim_Dead, u); 这个u传过去在回调里可以直接用this获取到,我是需要获取到node对象做播放下一个动画

你的u哪里来的callBackAnim_Dead方法

因为我获取不到node对象,昨天感谢您的帮助,我发现在node里加个sprite 动画就能播放,真的很费解

u 是一个继承了cc.Node的一个对象

动画是帧动画,就是一帧一帧播放图片,你的图片显示必须有个cc.Sprite组件

这个anmation on的正确用法是什么呢?监听播放完毕后回调,然后传参数,但我看官方api好像 on 无法传参

你的u没有callBackAnim_Dead方法的,你的方法是声明在你方法所在的js文件上的

1赞

这个是 整个方法
export var NextStep = function (frames,actionData,u,index,func) {
var animationclip = cc.AnimationClip.createWithSpriteFrames(frames, 5);
// animationclip.wrapMode = cc.WrapMode.Loop;
animationclip.name = actionData.Name;
var animate = u.ani_state_.m_pCharSprite.addComponent(cc.Animation);
animate.addClip(animationclip,actionData.Name);

// console.log(u);
animate.name = actionData.Name;
var  action = animate.getAnimationState(actionData.Name);


if (actionData.Looping=='TRUE') {
    if(actionData.Name == "celebrate_1" || actionData.Name == "celebrate_1"){
        //注册完成回调

        animate.on('finished',  u.callBackAnim_Celebrate,    u);

    }else{
        animate.repeatCount = Infinity;
    }
}else {
    if (actionData.Name == "attack_1" || actionData.Name == "attack_2" || actionData.Name == "attack_3") {
        animate.on('finished',  u.callBackAnim_Celebrate,    u);
    }
    else if(actionData.Name == "busy_1" || actionData.Name == "busy_2" || actionData.Name == "busy_3"){
        animate.on('finished',  u.callBackAnim_Busy,    u);
    }
    else if(actionData.Name == "die"){
        animate.on('finished',  u.callBackAnim_Dead,    u);

    }
    else if(actionData.Name == "steer_leftmiddle" || actionData.Name == "steer_middleright"
        || actionData.Name == "steer_rightmiddle" || actionData.Name == "steer_middleleft" || actionData.Name == "steer_leftright" || actionData.Name == "steer_rightleft" ||
        actionData.Name == "steer_leftmiddle_preattack" || actionData.Name == "steer_middleright_preattack"
        || actionData.Name == "steer_rightmiddle_preattack" || actionData.Name == "steer_middleleft_preattack" || actionData.Name == "steer_leftright_preattack" || actionData.Name == "steer_rightleft_preattack")
    {
        animate.on('finished',  u.callBackAnim_Steer,    u);
    }
}

// actionHasCreat(index,animate);
//
func(actionData.Name);

};

你的callBackAnim_Steer方法是在下面么

u里确实写了 回调方法,我截个图

你这个是u下面的js的一个方法吧

1赞

奇了怪了,我把方法挪回来,挪到一个js就可以了,我以前这么写的有问题才挪出去的。。奇怪。。
请教个事,on事件的 最后那个参数是不是能拿来传值,比如我用u

能传值的

感谢帮助,我觉得动画上我还有很多的坑要迈

1收购 手游代码 COCOS2D U3D H5 均可 诚收 有完整项目代码 出售联系 3288115436 价格满意。

在忙吗?我想x翻转 node,cc.flipX(true).setTarget(this.m_pCharSprite); 这样写会报错,这样写对吗

node.scaleX=-1

1赞