class YourComponent extends Component with HasGameRef<MyGame> {
@override
Future<void> onLoad() {
// Only runs once, when the component is loaded.
print(gameRef.size.y);
}
@override
void onMount() {
// Runs every time that the component is added to the component tree.
print(gameRef.size.y);
}
}
2条答案
按热度按时间eimct9ow1#
只要
Component
被挂载到组件树中,你就只能访问gameRef
。所以你不能在构造函数中访问它,或者在组件被移除之后(直到它再次被完全添加到树中)。如果需要在第一次加载组件时访问
onLoad
,则覆盖onLoad
;如果需要在每次将组件添加到组件树时访问onMount
,则覆盖onMount
。pgvzfuti2#
对于具有HasGameRef的组件访问游戏引用
1.组件需要像这样添加到游戏类中的游戏中:
如果组件被移除,它将失去对引用的访问,因此有一个替代方案
1.使用find game method,这样你的组件就可以使用这个方法来找到游戏引用,即使它已经被删除了,就像这样: