anchor.diff:      onMouseDown.listen((e) {
         if (stage != null) {
           _stopScrolling();
  -        _showScrollBars();
           _lastPos.setTo(e.stageX, e.stageY);
           stage.onMouseMove.listen(_stageMouseMoveHandler);
           stage.onMouseUp.listen(_stageMouseUpHandler);
  
positive.code: part of valorzhong_bones;
  
  
  
  
  class ScrollView extends Container {
  
    Sprite _content;
    Point _lastPos;
    int _backgroundColor = Color.White;
  
negative.code:   void _adjustViewport() {
      _viewport.setTo(_bounds.right - _content.width, _bounds.bottom - _content.height);
      _hbar
        ..width = _bounds.width
        ..y = _bounds.bottom - _hbar.height
        ..range = _bounds.width
        ..maximum = _content.width;
      _vbar
        ..height = _bounds.height
        ..x = _bounds.right - _vbar.width
        ..range = _bounds.height
        ..maximum = _content.height;
      _showScrollBars();
    }
  
    _showScrollBars() {
      _hbar.visible = hbarVisible;
      _vbar.visible = vbarVisible;
    }
  
    int get overScrollModel => _overScrollModel;
  
    void set overScrollModel(int val) {
      _overScrollModel = val;
      _showScrollBars();
    }
  
    bool get hbarVisible {
      if(_overScrollModel == OVER_SCROLL_ALWAYS) return true;
      if(_overScrollModel == OVER_SCROLL_IF_CONTENT_SCROLLS) return _content.width > _bounds.width;
      return false;
    }
  
    bool get vbarVisible {
      if(_overScrollModel == OVER_SCROLL_ALWAYS) return true;
      if(_overScrollModel == OVER_SCROLL_IF_CONTENT_SCROLLS) return _content.height > _bounds.height;
      return false;
    }
  }
  