Я пытаюсь понять, как работает customPaint, я хочу нарисовать индивидуальную покадровую анимацию на холсте.
Я могу заставить ее работать, перерисовывая виджет каждые 1/60 секунды, но это звучит не очень эффективно. Я хотел бы рендерить CustomPainter каждые 1/60 секунды, но это, похоже, не работает. Любая заметка или замечание очень важно, чтобы помочь мне понять, как я должен достичь этого. Спасибо.
Это код, с которым я работаю:
class CustomAnimatedWidgetState extends State<CustomAnimatedWidget> {
CustomPaint _paint=null;
MyCustomPainter _painter=null;
double animationFrame=0;
void tick() {
//called eery 1/60 seconds
animationFrame+=1/60;
_painter.setAnimationFrame(animationFrame);
_paint.METHOD_I_DONT_KNOW_TO_FORCE_REDRAW();
// I want to avoid setState({animationFrame+=1/60;}); which works actually, but that doesn't sound very efficient to redraw the widget every 1/60 seconds, unless it's the right way to do it ?
}
@override
Widget build(BuildContext context) {
//developer.log('axis='+axis.toString(), name: 'DEBUG');
_painter=MyCustomPainter();
_painter.setAnimationFrame(animationFrame);
_paint=CustomPaint(
painter: _painter,
child: Container(),
);
return _paint;
}
}