如何解决NoSuchMethodError:null 上的无效成员:'findAncestorStateOfType'
我对颤振和火焰还是很陌生,但我正在开发一个游戏,我需要能够在扩展 BaseGame 的类中传递 BuilerContext 上下文,我目前正在使用一种方法来添加一个小部件组件到名为“addWidgetoverlay”的屏幕。我知道这个错误通常是在 BuilderContext 上下文没有在小部件内部调用时引起的,但我不完全确定我的类在何处扩展 BaseGame 而不是有状态或无状态小部件。提前致谢!
import 'package:flame/components/parallax_component.dart';
import 'package:flame/components/text_component.dart';
import 'package:flame/game.dart';
import 'package:Flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'gamesfdafdsafdsa.dart';
class NewMenu extends BaseGame with HasWidgetsOverlay {
final SharedPreferences storage;
TextComponent _text;
ParallaxComponent _parallaxComponent;
// BuildContext context;
NewMenu(this.storage,BuildContext context) {
// TEMP BACKGROUND
_parallaxComponent = ParallaxComponent([
ParallaxImage('Layer_0010_1.png'),],baseSpeed: Offset(100,0),layerDelta: Offset(20,0));
// ADDS THE PLAY BUTTON
addWidgetoverlay('Play Button',Center(
child: TextButton(
onpressed: () {
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) => GamePlay(),),);
},child: Text('Play')),);
// ParaLLAX COMPONENT
add(_parallaxComponent);
// HIGHscore TEXT
_text = TextComponent('${storage.getInt('highscore') ?? 0}');
add(_text);
}
}
解决方法
我通过创建一个单独的类解决了这个问题,该类扩展了一个有状态的小部件,并通过使用 Future builder 小部件来帮助显示我共享首选项中存储的值来重做整个主菜单。我仍然不能 100% 确定如何使用扩展 BaseGame 的类在屏幕之间导航,因此我建议只使用有状态小部件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。