我尝试在我的应用程序中使用flare 来设计一个带有进度条的评分屏幕,但我遇到了一个错误“每当我尝试添加控制器参数时,flare 就会突然消失”并出现错误。
在 null 上调用了 getter 'duration'。
接收方:空
尝试调用:持续时间
我在下面附上了所需的代码
FlareRateController _flareController;
void updateDragPosition(Offset offset) {
setState(() {
_dragPercent = (offset.dx / sliderWidth).clamp(0.0, 1.0);
_flareController.updatePercent(_dragPercent);
});
}
void initState() {
super.initState();
_flareController = FlareRateController();
SystemChrome.setEnabledSystemUIOverlays([]);
}
_buildFlareActor() => SizedBox(
width: 1100.w,
height: 680.h,
child: FlareActor(
"assets/rate.flr",
artboard: "Artboard",
controller: _flareController,
),
);
FlareRatecontroller 类是
class FlareRateController extends FlareController {
FlutterActorArtboard _artboard;
ActorAnimation _rateAnimation;
double _slidePercent = 0.0;
double _currentSlide = 0.0;
double _smoothTime = 5;
void updatePercent(double val) {
_slidePercent = val;
}
@override
void initialize(FlutterActorArtboard artboard) {
if (artboard.name.compareTo("Artboard") == 0) {
_artboard = artboard;
_rateAnimation = artboard.getAnimation("Slide");
}
}
@override
bool advance(FlutterActorArtboard artboard, double elapsed) {
if (artboard.name.compareTo("Artboard") == 0) {
_currentSlide += (_slidePercent - _currentSlide) *
math.min(
1,
elapsed * _smoothTime,
);
_rateAnimation.apply(
_currentSlide * _rateAnimation.duration, artboard, 1); //error here in duration
}
return true;
}
@override
void setViewTransform(Mat2D viewTransform) {
// TODO: implement setViewTransform
}
}
错误在 _rateAnimation.duration 中(已经评论了谎言)