ctor method

  1. @override
Future ctor()
override

Implementation

@override
Future ctor() async {
  await super.ctor();
  // normal
  sprite = ui.Sprite(normal.texture);
  sprite!.setAnchorPoint(Point<double>(0, 0));
  sprite!.setContentSize(getContentSize() -
      Point<double>((padding ?? 0) * 2, (padding ?? 0) * 2));
  _swapState('normal');
  await addChild(sprite!);
  var eventMouse = ui.EventMouse();
  eventMouse.setMouseDown((eventMouse, _) async {
    var hover = getWorldIntersectBox();
    if (hover != null && hover.containsPoint(eventMouse.position) == true) {
      eventMouse.setCapture(this);
      _swapState('selected');
      return true;
    } else {
      _swapState('normal');
    }
    return false;
  });
  eventMouse.setMouseUp((eventMouse, _) async {
    _swapState('normal');
    if (eventMouse.isCapture(this)) {
      var hover = getWorldIntersectBox();
      eventMouse.removeCapture();
      if (hover != null && hover.containsPoint(eventMouse.position) == true) {
        if (onClick != null) {
          await onClick!(this);
        }
      }
      return true;
    }
    return false;
  });
  eventMouse.setMouseMove((eventMouse, _) async {
    if (eventMouse.isCapture(this)) {
      var hover = getWorldIntersectBox();
      if (hover != null && hover.containsPoint(eventMouse.position) == true) {
        _swapState('selected');
      } else {
        _swapState('normal');
      }
      return true;
    }
    return false;
  });
  addEvent(eventMouse);
}