骨骼动画Skeleton播放回调问题

如题,想要获取播放回调,但是方法无效,大佬帮忙看看是写法写错了吗还是怎么回事?3种方式都没执行
com1(){

    // console.log(">播放缓动结束>>>",Helloworld.getinstance(),Helloworld.getinstance().arr)
    let no1=Helloworld.getinstance().arr[Helloworld.getinstance().index]
    let n:sp.Skeleton=no1.getComponent("sp.Skeleton") as sp.Skeleton;
    n.clearTracks();
    n.setStartListener(this.starPlay);

    let play1:sp.spine.TrackEntry=n.setAnimation(0,"attack1",false);
    n.setTrackEndListener(play1,this.endPlay)
    n.setCompleteListener(this.end2)
    n.setEndListener(this.end3);

}
starPlay(){
    console.log(">骨骼动画播放开始>>>",Helloworld.getinstance(),Helloworld.getinstance().arr)


}
endPlay(){
    console.log(">骨骼动画播放结束>>>",Helloworld.getinstance(),Helloworld.getinstance().arr)
}
end2(){

    console.log(">骨骼动画播放结束2222>>>",Helloworld.getinstance(),Helloworld.getinstance().arr)
}
end3(){

    console.log(">骨骼动画播放结束3333>>>",Helloworld.getinstance(),Helloworld.getinstance().arr)
}