anchor.diff:      _context.game.world.addChild(this);
       _context.game.world.addChild(buttonText);
     }
  -  
  +
     /**
      * Get state which the button was made.
      */
     State get context => _context;
   
  +  Map<String, bool> _isDownBy = new Map<String, bool>();
  +
  +  /**
  +   * Checks if the button is held down by touch.
  +   */
  +  bool isDownByTouch() {
  +    if (!_isDownBy.containsKey('touch')) {
  +      _isDownBy['touch'] = false;
  +      onTouchBegin.listen((_) {
  +        _isDownBy['touch'] = true;
  +      });
  +      onTouchEnd.listen((_) {
  +        _isDownBy['touch'] = false;
  +      });
  +
  +    }
  +    return _isDownBy['touch'];
  +
  +  }
  +
   }
  
positive.code:    * * text: label of the button
     * * addToStage: add the button to the stage?
     */
    Button.bitmapdata(State stateContext, StageXL.BitmapData bitmapData, String
        text, {bool addToWorld: true}) : super(bitmapData) {
      _context = stateContext;
  
      buttonText = new Text(stateContext, text, addToWorld: false)
  
negative.code:         ..mouseEnabled = false;
      buttonText
          ..defaultTextFormat.topMargin = (buttonText.height -
              buttonText.textHeight) ~/
              2
          ..text = text;
  
      if (addToWorld) {
        this.addToWorld();
      }
    }
  
    /**
     * Create a Button object from an image.
     * 
     * * resourceName: name of the image in the resourcesManager
     */
    Button.image(State stateContext, String resourceName, String text,
        {bool addToWorld: true})
        : this.bitmapdata(
            stateContext,
            stateContext.game.resourceManager.getBitmapData(resourceName),
            text,
            addToWorld: addToWorld);
  
    /**
     * Create Button from an image inside a texture atlas.
     * 
     * * textureAtlasName: name of the texture atlas in the resourceManager
     * * resourceName: name of the resource in the texture atlas(image name without extension)
     */
    Button.textureatlas(State stateContext, String resourceName,
        String textureAtlasName, String text, {bool addToWorld: true})
        : this.bitmapdata(
            stateContext,
            stateContext.game.resourceManager.getTextureAtlas(
                textureAtlasName).getBitmapData(resourceName),
            text,
            addToWorld: addToWorld);
  
    set x(int x) {
      super.x = x;
      buttonText.x = x;
    }
  
    set y(int y) {
      super.y = y;
      buttonText.y = y;
    }
  
    /**
     * Add button to the world.
     */
  