1.预加载
由于spine使用的是atlas和json格式,与之前项目使用的plist并不相同,所以之前的预加载功能就无效了。为此,通过实现createWithData方法来高效的创建重复的对象。
2.换装
本身的setAttachment方法确实可以换slot,但是当动画重复播放的时候,就会被复原。在网上查到某位哥哥的解决方案是直接换skin,这个skin只设置你需要换的部位,其余部位通过代码来加载之前的skin设置。似乎也不是很好用,毕竟要创建n套skin。目前只好使用规避的手段,即在侦听到动画completed的时候再setAttachment。效果虽然是一样的,就是有点傻。
3。给某个slot绑定一个node。
实现方法是,创建一个结构体包含slot和对应node,当创建skeleton时,对应每一个slot创建一个node。drawSkeleton方法中,将slot的位置,颜色,旋转等状态复制给node。这个node就是当前slot的基本信息,并随着slot状态变化而更新。