ctor method
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);
}