Example #1
0
void XflParser::ParseFrame (Parser::Iterator iter, Frame& frame)
{
  frame.SetFirstFrame (get<size_t> (*iter, "index"));
  frame.SetDuration   (get<size_t> (*iter, "duration", 1));

  for (Parser::NamesakeIterator i = iter->First ("elements.DOMSymbolInstance"); i; ++i)
    ParseFrameElement (i, frame.Elements (), FrameElementType_SymbolInstance);

  for (Parser::NamesakeIterator i = iter->First ("elements.DOMBitmapInstance"); i; ++i)
    ParseFrameElement (i, frame.Elements (), FrameElementType_ResourceInstance);

  Parser::Iterator animation_core_iter = iter->First ("motionObjectXML.AnimationCore");

  if (animation_core_iter)
  {
    AnimationCore animation_core;

    ParseAnimationCore (animation_core_iter, animation_core);

    frame.SetAnimation (animation_core);
  }
  else
  {
    AnimationCore animation_core;

    animation_core.SetDuration (0);

    frame.SetAnimation (animation_core);
  }
}
Example #2
0
//печать кадра анимации
void dump (const Frame& frame, int level)
{
  print_space (level++);
  printf      ("Frame:\n");
  print_space (level);
  printf      ("First frame: %u\n", frame.FirstFrame ());
  print_space (level);
  printf      ("Duration:    %u\n", frame.Duration ());
  print_space (level);
  printf      ("Animation:\n");
  dump        (frame.Animation (), level);

  dump ("frame elements", frame.Elements (), level);
}