– 测试代码
local AnimationTable = require(“csb.action.wait”).create()
local action_wait = AnimationTable"root"]
local actn = AnimationTable'animation']
actn:startWithTarget(play_1)
play_1:runAction(actn)
actn:play("animation_wait", true)
void ActionTimeline::startWithTarget(Node *target)
{
Action::startWithTarget(target);
this->setTag(target->getTag());
foreachNodeDescendant(target,
(Node* child)
{
ObjectExtensionData* data = dynamic_cast<ObjectExtensionData*>(child->getUserObject());
if(data)
{
int actionTag = data->getActionTag();
if(_timelineMap.find(actionTag) != _timelineMap.end())
{
auto timelines = this->_timelineMap;
for (auto timeline : timelines)
{
timeline->setNode(child);
}
}
}
});
}
ObjectExtensionData* data = dynamic_cast<ObjectExtensionData*>(child->getUserObject());
想重用timeline动画,data一直是nil,没法重新设置target,有同学碰到过吗