anchor.diff:    num _halfSize;
   
     Shape _background;
  +  Shape _progress;
   
     CountdownSkin([this._size = 120, this._border = 10]) {
       _halfSize = _size / 2;
  
positive.code:     _background.applyCache(0, 0, _background.width.toInt(), _background.height.toInt());
      bar.addChild(_background);
  
      _label = new TextField()
          ..defaultTextFormat.bold = true
          ..defaultTextFormat.color = Color.White
  
negative.code:         ..autoSize = TextFieldAutoSize.CENTER
          ..text = "-";
      bar.addChild(_label);
    }
  
    @override
    repaint() {
      var bar = target as ProgressBar;
      _progress
          ..removeCache()
          ..graphics.clear()
          ..graphics.arc(_halfSize, _halfSize, _halfSize - _border, -Math.PI / 2, TWO_PI * bar.percent - Math.PI / 2, false)
          ..graphics.strokeColor(0xffffcc00, _border);
      _progress.applyCache(0, 0, _size, _size);
  
      _label.text = bar.value.toString();
      _label.x = (bar.width - _label.width) / 2;
      _label.y = (bar.height - _label.height) / 2;
    }
  }
  