Cocos Studio的csb文件中clone列表子元素,但动画未随之克隆的分析

列表中复制UI元素(附有动画)并同时复制动画问题和杨帆讨论的2套方案:

1.列表子元素,子元素动画与列表界面在同一UI文件中(宋胜磊):

TimeLine:对应一个元素的完整动画的全部数据,

TimeLine里的多种类型Frame则是动画关键帧。

元素根据不同动画表现形式有多种存储动画数据的TimeLine分别包含多种动画类型的Frame数据-旋转,缩放,位置,颜色,显示等

这多种Frame继承自一个Frame接口。

在cocos读取到这些数据后,根据TimeLine以及Frames以及Frames里的node(ui元素)执行动画。

拷贝动画就要保证这三项数据无误。TimeLine,Frames,以及运行时node。

TimeLine里有FramesVector存储全部Frame,runAction之后可以设置Frame里对应node元素。

问题在于在拷贝对应TimeLine(根据ActionTag可以找到元素对应的TimeLine)里的Frames(Vector<接口>)时无法获知该Frame是何种类型的Frame。

不同Frame的成员函授不同,不可能在ColorFrame中调用PositionFrame才有的getX获取动画的起始点。

得不到作为默认元素的坐标就无法设置clone自它的新的元素的坐标。

虽然在符合一些特殊条件的关键帧数据(比如只改变透明度,没有位置,旋转等变动),根据默认元素的动画数据拷贝可以达到想要的全部拷贝效果。

但这点在ListView中成功,在GridView上也失败。具体原因暂未找到。从以上分析测试得出࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值