列表中复制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上也失败。具体原因暂未找到。从以上分析测试得出