如果UI动画比较简单那还是写代码比较好,如果是复杂的动画也可以先在编辑器里做好效果,然后在代码里再重写一次。Cocos Studio目前输出的ExportJson文件对于动画部分的支持有不少欠考虑的地方,指不定什么时候就掉坑里了,所以暂时最好先不用。
比如,如果一个Image控件在一个相对定位的Panel里,程序运行后这个Panel的大小被改变了,那么这个Image控件的UI动画就会错位,因为导出的ExportJson文件里的positionx/positiony等值都是根据画布设计时的Panel原大小计算出来的。按照道理,positionx/positiony这样的值就不应该被应用在相对定位的控件上,但是目前还没有狠好的解决办法。
另外一个坑在这里:cocos2d-x 3.2的ActionManagerEx存在bug,重复播放UI动画会崩溃
所以,干脆还是手动创建动画代码是最保险的,而且也简单,之前没这么干是不太会写动画代码,但写了一段之后发现其实挺简单的:
local image = ccui.Helper:seekWidgetByName(uiNode,"Image_1") local fadeOutAction = cc.FadeOut:create(1) local delayAction = cc.DelayTime:create(1) local fadeInAction = cc.FadeIn:create(1) local sequenceAction = cc.Sequence:create({fadeOutAction,delayAction,fadeInAction,delayAction}) local repeatAction = cc.RepeatForever:create(sequenceAction) image:runAction(repeatAction)