Flutter 使用控制器参数颤振时,Flare Actor突然消失

Flutter 使用控制器参数颤振时,Flare Actor突然消失,flutter,flutter-animation,flare,Flutter,Flutter Animation,Flare,我尝试在我的应用程序中使用flare来设计一个带有进度条的分级屏幕,但我遇到了一个错误:“每当我尝试添加控制器参数时,flare就会突然消失”,并出现一个错误 对null调用了getter“duration” 收件人:空 尝试呼叫:持续时间 我已在下面附上所需代码 FlareRateController _flareController; void updateDragPosition(Offset offset) { setState(() { _dragPercen

我尝试在我的应用程序中使用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,
        ),
      );

FLARE控制器类是

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中(已对谎言进行了注释)

您的Flare Actor将消失,因为属性“duration”返回null

我找到了这个速度应用程序的速度代码和副本,因为我需要更多关于代码的信息。这就是我发现的:

您的代码正在为您的ActorAnimation获取动画,如“幻灯片”。尝试更改“Slide”参数并设置“Slide”(小写s)

然后再次运行你的应用程序,并告诉我你是否得到了它