使用控制器参数 flutter 时 Flare Actor 突然消失

Flare Actor suddenly disappears when using controller parameter flutter

我尝试在我的应用程序中使用 flare 来设计一个带有进度条的评分屏幕,但我遇到了一个错误 "whenever I try to add controller parameter the flare suddenly disappears"。

getter 'duration' 被调用为 null。

接收方:空

试过通话:时长

我在下面附上了所需的代码

  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,
        ),
      );

FlareRate 控制器 class 是

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" return null

我找到了这个 rate app speed 代码并复制了,因为我需要有关代码的更多信息。这就是我发现的:

您的代码正在为您的 ActorAnimation 获取动画,例如 "Slide"。尝试更改 "Slide" 参数并设置 "slide"(小写的 s)

然后再次运行您的应用程序并告诉我您是否收到了它。