diff --git a/packages/flame/lib/src/components/input/sprite_button_component.dart b/packages/flame/lib/src/components/input/sprite_button_component.dart index 71ab8ad472..721497c3b9 100644 --- a/packages/flame/lib/src/components/input/sprite_button_component.dart +++ b/packages/flame/lib/src/components/input/sprite_button_component.dart @@ -47,30 +47,29 @@ class SpriteButtonComponent extends SpriteGroupComponent set button(Sprite value) { _button = value; - updateSprite(ButtonState.up, value); + if (isLoaded) { + updateSprite(ButtonState.up, value); + } } set buttonDown(Sprite value) { _buttonDown = value; - updateSprite(ButtonState.down, value); - } - - @override - void onLoad() { - super.onLoad(); - sprites = { - ButtonState.up: button, - ButtonState.down: buttonDown, - }; + if (isLoaded) { + updateSprite(ButtonState.down, value); + } } @override void onMount() { - super.onMount(); assert( _button != null, 'The button sprite has to be set either in onLoad or in the constructor', ); + sprites = { + ButtonState.up: _button!, + ButtonState.down: buttonDown, + }; + super.onMount(); } @override